From acc67ca34c7aa1f2da67f8422bee216372239cc6 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Sat, 4 Mar 2023 00:17:18 +0000 Subject: [PATCH 1/8] ci: regenerated with OpenAPI Doc 2.1.0, Speakeay CLI 1.8.2 --- bankfeeds/README.md | 9 +- bankfeeds/RELEASES.md | 10 +- bankfeeds/USAGE.md | 5 +- bankfeeds/files.gen | 5 +- bankfeeds/gen.yaml | 6 +- bankfeeds/pylintrc | 638 ++++++++++++++++++ bankfeeds/setup.py | 3 +- bankfeeds/src/codat/__init__.py | 2 +- .../src/codat/bank_account_transactions.py | 59 +- bankfeeds/src/codat/bank_feed_accounts.py | 77 +-- .../src/codat/models/operations/__init__.py | 6 +- .../models/operations/create_bank_feed.py | 55 ++ .../get_bank_account_push_options.py | 134 ++-- .../codat/models/operations/get_bank_feeds.py | 28 +- .../list_all_bank_transactionscount.py | 154 ----- .../list_bank_account_transactions.py | 150 ++++ .../operations/post_bank_transactions.py | 112 ++- .../codat/models/operations/put_bank_feeds.py | 59 -- .../models/operations/update_bank_feed.py | 28 +- bankfeeds/src/codat/models/shared/__init__.py | 2 +- bankfeeds/src/codat/models/shared/security.py | 3 +- bankfeeds/src/codat/sdk.py | 30 +- bankfeeds/src/codat/utils/retries.py | 54 +- bankfeeds/src/codat/utils/utils.py | 209 +++--- 24 files changed, 1231 insertions(+), 607 deletions(-) create mode 100755 bankfeeds/pylintrc create mode 100755 bankfeeds/src/codat/models/operations/create_bank_feed.py delete mode 100755 bankfeeds/src/codat/models/operations/list_all_bank_transactionscount.py create mode 100755 bankfeeds/src/codat/models/operations/list_bank_account_transactions.py delete mode 100755 bankfeeds/src/codat/models/operations/put_bank_feeds.py diff --git a/bankfeeds/README.md b/bankfeeds/README.md index f3430b843..8723c3351 100755 --- a/bankfeeds/README.md +++ b/bankfeeds/README.md @@ -17,14 +17,11 @@ from codat.models import operations, shared s = codat.Codat() s.config_security( 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", @@ -52,13 +49,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..63bbed94c 100644 --- a/bankfeeds/RELEASES.md +++ b/bankfeeds/RELEASES.md @@ -14,4 +14,12 @@ 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 \ No newline at end of file diff --git a/bankfeeds/USAGE.md b/bankfeeds/USAGE.md index c802447be..a63853781 100755 --- a/bankfeeds/USAGE.md +++ b/bankfeeds/USAGE.md @@ -6,14 +6,11 @@ from codat.models import operations, shared s = codat.Codat() s.config_security( 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", 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..44e1c65b9 100644 --- a/bankfeeds/gen.yaml +++ b/bankfeeds/gen.yaml @@ -1,14 +1,14 @@ configVersion: 1.0.0 management: - docChecksum: 2850b50909854a03af955e915ac1f608 + docChecksum: 08c0251d8610aa1d4ef568082a3bf157 docVersion: 2.1.0 - speakeasyVersion: 1.7.1 + speakeasyVersion: 1.8.2 generation: telemetryEnabled: false sdkClassName: codat sdkFlattening: true python: - version: 0.1.1 + version: 0.2.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..9b2a14fa9 --- /dev/null +++ b/bankfeeds/pylintrc @@ -0,0 +1,638 @@ +[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, + _ + +# 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=20 + +# 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 + +# 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..97e02198e 100755 --- a/bankfeeds/setup.py +++ b/bankfeeds/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-bankfeeds", - version="0.1.1", + version="0.2.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..0b8a461f4 100755 --- a/bankfeeds/src/codat/bank_account_transactions.py +++ b/bankfeeds/src/codat/bank_account_transactions.py @@ -18,8 +18,7 @@ def __init__(self, client: requests.Session, security_client: requests.Session, 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(base_url, '/companies/{companyId}/connections/{connectionId}/options/bankAccounts/{accountId}/bankTransactions', request.path_params) query_params = utils.get_query_params(request.query_params) - 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(base_url, '/companies/{companyId}/connections/{connectionId}/data/bankAccounts/{accountId}/bankTransactions', request.path_params) query_params = utils.get_query_params(request.query_params) - 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(base_url, '/companies/{companyId}/connections/{connectionId}/push/bankAccounts/{accountId}}/bankTransactions', request.path_params) 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 + if req_content_type not in ('multipart/form-data', 'multipart/mixed'): + headers['content-type'] = req_content_type query_params = utils.get_query_params(request.query_params) - 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..11e8fceb3 100755 --- a/bankfeeds/src/codat/bank_feed_accounts.py +++ b/bankfeeds/src/codat/bank_feed_accounts.py @@ -18,62 +18,59 @@ def __init__(self, client: requests.Session, security_client: requests.Session, 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(base_url, '/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts', request.path_params) + headers = {} + req_content_type, data, form = utils.serialize_request_body(request) + 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(base_url, '/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts', request.path_params) - 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(base_url, '/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts/{bankAccountId}', request.path_params) 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 + 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..76b7dfa54 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","CreateBankFeedPathParams","CreateBankFeedRequest","CreateBankFeedResponse","GetBankAccountPushOptionsPathParams","GetBankAccountPushOptionsPushOption","GetBankAccountPushOptionsPushOptionOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation","GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfoPushFieldValidation","GetBankAccountPushOptionsPushOptionPushValidationInfo","GetBankAccountPushOptionsPushOptionPushValidationInfoPushFieldValidation","GetBankAccountPushOptionsQueryParams","GetBankAccountPushOptionsRequest","GetBankAccountPushOptionsResponse","GetBankFeedsBankFeedBankAccount","GetBankFeedsBankFeedBankAccountAccountTypeEnum","GetBankFeedsPathParams","GetBankFeedsRequest","GetBankFeedsResponse","ListBankAccountTransactionsLinks","ListBankAccountTransactionsLinksLinks","ListBankAccountTransactionsLinksLinksCurrent","ListBankAccountTransactionsLinksLinksNext","ListBankAccountTransactionsLinksLinksPrevious","ListBankAccountTransactionsLinksLinksSelf","ListBankAccountTransactionsLinksResults","ListBankAccountTransactionsLinksResultsTransactions","ListBankAccountTransactionsLinksResultsTransactionsTransactionTypeEnum","ListBankAccountTransactionsPathParams","ListBankAccountTransactionsQueryParams","ListBankAccountTransactionsRequest","ListBankAccountTransactionsResponse","PostBankTransactions200ApplicationJSON","PostBankTransactions200ApplicationJSONChanges","PostBankTransactions200ApplicationJSONChangesPushOperationRecordRef","PostBankTransactions200ApplicationJSONChangesTypeEnum","PostBankTransactions200ApplicationJSONData","PostBankTransactions200ApplicationJSONDataTransactions","PostBankTransactions200ApplicationJSONDataTransactionsTransactionTypeEnum","PostBankTransactions200ApplicationJSONStatusEnum","PostBankTransactions200ApplicationJSONValidation","PostBankTransactions200ApplicationJSONValidationValidationItem","PostBankTransactionsPathParams","PostBankTransactionsQueryParams","PostBankTransactionsRequest","PostBankTransactionsRequestBody","PostBankTransactionsRequestBodyTransactions","PostBankTransactionsRequestBodyTransactionsTransactionTypeEnum","PostBankTransactionsResponse","UpdateBankFeedBankFeedBankAccount","UpdateBankFeedBankFeedBankAccountAccountTypeEnum","UpdateBankFeedPathParams","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..9c712e358 --- /dev/null +++ b/bankfeeds/src/codat/models/operations/create_bank_feed.py @@ -0,0 +1,55 @@ +from __future__ import annotations +import dataclasses +import dateutil.parser +import requests +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 CreateBankFeedPathParams: + 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 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: + path_params: CreateBankFeedPathParams = dataclasses.field() + request: 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.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..5aa8d6f67 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 from codat import utils from dataclasses_json import Undefined, dataclass_json from enum import Enum @@ -21,16 +22,10 @@ class GetBankAccountPushOptionsQueryParams: query: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'query', 'style': 'form', 'explode': True }}) -@dataclasses.dataclass -class GetBankAccountPushOptionsSecurity: - api_key: str = dataclasses.field(metadata={'security': { 'scheme': True, 'type': 'apiKey', 'sub_type': 'header', 'field_name': 'Authorization' }}) - - @dataclasses.dataclass class GetBankAccountPushOptionsRequest: path_params: GetBankAccountPushOptionsPathParams = dataclasses.field() query_params: GetBankAccountPushOptionsQueryParams = dataclasses.field() - security: GetBankAccountPushOptionsSecurity = dataclasses.field() class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum(str, Enum): ARRAY = "Array" @@ -46,28 +41,28 @@ 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 }}) + details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('details') }}) + field: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('field') }}) + 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 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 }}) + information: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('information'), 'exclude': lambda f: f is None }}) + warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation]] = 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 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 }}) + 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: GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }}) + value: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('value') }}) + rel: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('rel'), 'exclude': lambda f: f is None }}) + validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }}) class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum(str, Enum): ARRAY = "Array" @@ -83,29 +78,29 @@ 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 }}) + details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('details') }}) + field: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('field') }}) + 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 }}) + information: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('information'), 'exclude': lambda f: f is None }}) + warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation]] = 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 }}) + 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: GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }}) + value: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('value') }}) + options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('options'), 'exclude': lambda f: f is None }}) + rel: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('rel'), 'exclude': lambda f: f is None }}) + validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }}) class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoiceOptionTypeEnum(str, Enum): ARRAY = "Array" @@ -121,29 +116,29 @@ 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 }}) + details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('details') }}) + field: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('field') }}) + 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 }}) + information: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('information'), 'exclude': lambda f: f is None }}) + warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation]] = 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 }}) + 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: GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoiceOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }}) + value: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('value') }}) + options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('options'), 'exclude': lambda f: f is None }}) + rel: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('rel'), 'exclude': lambda f: f is None }}) + validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }}) class GetBankAccountPushOptionsPushOptionPushOptionChoiceOptionTypeEnum(str, Enum): ARRAY = "Array" @@ -159,29 +154,29 @@ 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 }}) + details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('details') }}) + field: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('field') }}) + 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 }}) + information: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('information'), 'exclude': lambda f: f is None }}) + warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfoPushFieldValidation]] = 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 }}) + 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: GetBankAccountPushOptionsPushOptionPushOptionChoiceOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }}) + value: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('value') }}) + options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('options'), 'exclude': lambda f: f is None }}) + rel: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('rel'), 'exclude': lambda f: f is None }}) + validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfo] = 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" @@ -197,28 +192,28 @@ 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 }}) + details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('details') }}) + field: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('field') }}) + 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 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 }}) + information: Optional[list[GetBankAccountPushOptionsPushOptionPushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('information'), 'exclude': lambda f: f is None }}) + warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushValidationInfoPushFieldValidation]] = 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 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 }}) + 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: GetBankAccountPushOptionsPushOptionOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }}) + options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('options'), 'exclude': lambda f: f is None }}) + rel: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('rel'), 'exclude': lambda f: f is None }}) + validation: Optional[GetBankAccountPushOptionsPushOptionPushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass @@ -226,4 +221,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.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..490d11bc6 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 from codat import utils from dataclasses_json import Undefined, dataclass_json from datetime import datetime @@ -15,15 +16,9 @@ class GetBankFeedsPathParams: 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" @@ -38,16 +33,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 +50,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.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..488803bac --- /dev/null +++ b/bankfeeds/src/codat/models/operations/list_bank_account_transactions.py @@ -0,0 +1,150 @@ +from __future__ import annotations +import dataclasses +import dateutil.parser +import requests +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 ListBankAccountTransactionsPathParams: + 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 ListBankAccountTransactionsQueryParams: + 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 ListBankAccountTransactionsRequest: + path_params: ListBankAccountTransactionsPathParams = dataclasses.field() + query_params: ListBankAccountTransactionsQueryParams = dataclasses.field() + + +@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.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..9203b0e0f 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 from codat import utils from dataclasses_json import Undefined, dataclass_json from datetime import datetime @@ -45,17 +46,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 +81,23 @@ 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' }}) @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 +110,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 +138,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 +173,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 +187,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 +199,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 +227,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.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..2f0bd6a43 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 from codat import utils from dataclasses_json import Undefined, dataclass_json from datetime import datetime @@ -28,27 +29,21 @@ 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' }}) @@ -57,4 +52,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.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..523891ffd 100755 --- a/bankfeeds/src/codat/sdk.py +++ b/bankfeeds/src/codat/sdk.py @@ -1,4 +1,10 @@ +__doc__ = """ 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) """ import requests from . import utils from .bank_account_transactions import BankAccountTransactions @@ -9,34 +15,39 @@ "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 _server_url: str = SERVERS[0] _language: str = "python" - _sdk_version: str = "0.1.1" - _gen_version: str = "1.7.1" + _sdk_version: str = "0.2.0" + _gen_version: str = "1.8.2" 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]): + def config_server_url(self, server_url: str, params: dict[str, str] = None): if params is not None: - self._server_url = utils.replace_parameters(server_url, params) + self._server_url = utils.template_url(server_url, params) else: self._server_url = server_url self._init_sdks() + def config_client(self, client: requests.Session): self._client = client @@ -45,15 +56,12 @@ def config_client(self, client: requests.Session): self._security_client = utils.configure_security_client(self._client, self._security) self._init_sdks() - def config_security(self, security: shared.Security): self._security = security 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 +79,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..d900928b2 100755 --- a/bankfeeds/src/codat/utils/utils.py +++ b/bankfeeds/src/codat/utils/utils.py @@ -42,7 +42,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) @@ -138,60 +138,62 @@ def _parse_basic_auth_scheme(client: SecurityClient, scheme: dataclass): 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') + for field in path_param_fields: + 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 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,12 +202,12 @@ 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]]: @@ -215,12 +217,12 @@ def get_query_params(query_params: dataclass) -> 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') + for field in param_fields: + metadata = field.metadata.get('query_param') if not metadata: continue - param_name = f.name + param_name = field.name f_name = metadata.get("field_name") serialization = metadata.get('serialization', '') if serialization != '': @@ -246,16 +248,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 +285,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 +299,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 +319,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 @@ -348,9 +350,9 @@ def serialize_request_body(request: dataclass) -> Tuple[str, any, any]: 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": + request_metadata = field.metadata.get('request') break if request_metadata is not None: @@ -358,25 +360,25 @@ def serialize_request_body(request: dataclass) -> Tuple[str, any, any]: 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) + for field in request_fields: + req = getattr(request_val, field.name) if req is None: continue - request_metadata = f.metadata.get('request') + request_metadata = field.metadata.get('request') if request_metadata is None: raise Exception( - f'missing request tag on request body field {f.name}') + f'missing request tag on request body field {field.name}') - return serialize_content_type(f.name, request_metadata.get('media_type', 'application/octet-stream'), req) + return serialize_content_type(field.name, request_metadata.get('media_type', 'application/octet-stream'), req) 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 +436,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 +448,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 +489,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 +506,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 +525,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 +539,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 +555,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 +591,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 +606,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 +620,86 @@ 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) From d4fd6b8f4f460fbb22ec19cc23f2ed6eb6c14366 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Mon, 6 Mar 2023 00:19:23 +0000 Subject: [PATCH 2/8] ci: regenerated with OpenAPI Doc 2.1.0, Speakeay CLI 1.8.4 --- bankfeeds/RELEASES.md | 10 +++++++++- bankfeeds/gen.yaml | 4 ++-- bankfeeds/setup.py | 2 +- bankfeeds/src/codat/sdk.py | 4 ++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/bankfeeds/RELEASES.md b/bankfeeds/RELEASES.md index 63bbed94c..04a85cf85 100644 --- a/bankfeeds/RELEASES.md +++ b/bankfeeds/RELEASES.md @@ -22,4 +22,12 @@ 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 \ No newline at end of file +- [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 \ No newline at end of file diff --git a/bankfeeds/gen.yaml b/bankfeeds/gen.yaml index 44e1c65b9..80c36f1e8 100644 --- a/bankfeeds/gen.yaml +++ b/bankfeeds/gen.yaml @@ -2,13 +2,13 @@ configVersion: 1.0.0 management: docChecksum: 08c0251d8610aa1d4ef568082a3bf157 docVersion: 2.1.0 - speakeasyVersion: 1.8.2 + speakeasyVersion: 1.8.4 generation: telemetryEnabled: false sdkClassName: codat sdkFlattening: true python: - version: 0.2.0 + version: 0.2.1 author: Speakeasy description: Python Client SDK Generated by Speakeasy packageName: codat-bankfeeds diff --git a/bankfeeds/setup.py b/bankfeeds/setup.py index 97e02198e..e0a045705 100755 --- a/bankfeeds/setup.py +++ b/bankfeeds/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-bankfeeds", - version="0.2.0", + version="0.2.1", author="Speakeasy", description="Python Client SDK Generated by Speakeasy", long_description=long_description, diff --git a/bankfeeds/src/codat/sdk.py b/bankfeeds/src/codat/sdk.py index 523891ffd..e46a414a0 100755 --- a/bankfeeds/src/codat/sdk.py +++ b/bankfeeds/src/codat/sdk.py @@ -31,8 +31,8 @@ class Codat: _security: shared.Security _server_url: str = SERVERS[0] _language: str = "python" - _sdk_version: str = "0.2.0" - _gen_version: str = "1.8.2" + _sdk_version: str = "0.2.1" + _gen_version: str = "1.8.4" def __init__(self) -> None: self._client = requests.Session() From 48639093e7139cabcb0e5bc41db06f50bfae8bb3 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Tue, 7 Mar 2023 00:19:41 +0000 Subject: [PATCH 3/8] ci: regenerated with OpenAPI Doc 2.1.0, Speakeay CLI 1.8.5 --- bankfeeds/RELEASES.md | 10 +++++++++- bankfeeds/gen.yaml | 6 +++--- bankfeeds/pylintrc | 3 ++- bankfeeds/setup.py | 2 +- bankfeeds/src/codat/bank_account_transactions.py | 8 ++++---- bankfeeds/src/codat/bank_feed_accounts.py | 8 ++++---- .../codat/models/operations/create_bank_feed.py | 4 ++-- .../operations/get_bank_account_push_options.py | 4 ++-- .../codat/models/operations/get_bank_feeds.py | 4 ++-- .../operations/list_bank_account_transactions.py | 4 ++-- .../models/operations/post_bank_transactions.py | 4 ++-- .../codat/models/operations/update_bank_feed.py | 4 ++-- bankfeeds/src/codat/sdk.py | 16 ++++++++-------- 13 files changed, 43 insertions(+), 34 deletions(-) diff --git a/bankfeeds/RELEASES.md b/bankfeeds/RELEASES.md index 04a85cf85..12f3c717d 100644 --- a/bankfeeds/RELEASES.md +++ b/bankfeeds/RELEASES.md @@ -30,4 +30,12 @@ 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 \ No newline at end of file +- [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 \ No newline at end of file diff --git a/bankfeeds/gen.yaml b/bankfeeds/gen.yaml index 80c36f1e8..fd654d699 100644 --- a/bankfeeds/gen.yaml +++ b/bankfeeds/gen.yaml @@ -1,14 +1,14 @@ configVersion: 1.0.0 management: - docChecksum: 08c0251d8610aa1d4ef568082a3bf157 + docChecksum: f3ec1388bf09a41f7c97bfcbfce3c399 docVersion: 2.1.0 - speakeasyVersion: 1.8.4 + speakeasyVersion: 1.8.5 generation: telemetryEnabled: false sdkClassName: codat sdkFlattening: true python: - version: 0.2.1 + version: 0.2.2 author: Speakeasy description: Python Client SDK Generated by Speakeasy packageName: codat-bankfeeds diff --git a/bankfeeds/pylintrc b/bankfeeds/pylintrc index 9b2a14fa9..041a2c165 100755 --- a/bankfeeds/pylintrc +++ b/bankfeeds/pylintrc @@ -184,7 +184,8 @@ good-names=i, k, ex, Run, - _ + _, + id # Good variable names regexes, separated by a comma. If names match any regex, # they will always be accepted diff --git a/bankfeeds/setup.py b/bankfeeds/setup.py index e0a045705..748fcb01b 100755 --- a/bankfeeds/setup.py +++ b/bankfeeds/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-bankfeeds", - version="0.2.1", + version="0.2.2", author="Speakeasy", description="Python Client SDK Generated by Speakeasy", long_description=long_description, diff --git a/bankfeeds/src/codat/bank_account_transactions.py b/bankfeeds/src/codat/bank_account_transactions.py index 0b8a461f4..26881a399 100755 --- a/bankfeeds/src/codat/bank_account_transactions.py +++ b/bankfeeds/src/codat/bank_account_transactions.py @@ -1,17 +1,17 @@ -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 diff --git a/bankfeeds/src/codat/bank_feed_accounts.py b/bankfeeds/src/codat/bank_feed_accounts.py index 11e8fceb3..537e5855d 100755 --- a/bankfeeds/src/codat/bank_feed_accounts.py +++ b/bankfeeds/src/codat/bank_feed_accounts.py @@ -1,17 +1,17 @@ -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 diff --git a/bankfeeds/src/codat/models/operations/create_bank_feed.py b/bankfeeds/src/codat/models/operations/create_bank_feed.py index 9c712e358..418e6e74b 100755 --- a/bankfeeds/src/codat/models/operations/create_bank_feed.py +++ b/bankfeeds/src/codat/models/operations/create_bank_feed.py @@ -1,7 +1,7 @@ from __future__ import annotations import dataclasses import dateutil.parser -import requests +import requests as requests_http from codat import utils from dataclasses_json import Undefined, dataclass_json from datetime import datetime @@ -51,5 +51,5 @@ 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.Response] = 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 5aa8d6f67..1925143ad 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,6 +1,6 @@ from __future__ import annotations import dataclasses -import requests +import requests as requests_http from codat import utils from dataclasses_json import Undefined, dataclass_json from enum import Enum @@ -221,5 +221,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.Response] = 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 490d11bc6..259b0c18e 100755 --- a/bankfeeds/src/codat/models/operations/get_bank_feeds.py +++ b/bankfeeds/src/codat/models/operations/get_bank_feeds.py @@ -1,7 +1,7 @@ from __future__ import annotations import dataclasses import dateutil.parser -import requests +import requests as requests_http from codat import utils from dataclasses_json import Undefined, dataclass_json from datetime import datetime @@ -50,5 +50,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.Response] = 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_bank_account_transactions.py b/bankfeeds/src/codat/models/operations/list_bank_account_transactions.py index 488803bac..06bf559fe 100755 --- a/bankfeeds/src/codat/models/operations/list_bank_account_transactions.py +++ b/bankfeeds/src/codat/models/operations/list_bank_account_transactions.py @@ -1,7 +1,7 @@ from __future__ import annotations import dataclasses import dateutil.parser -import requests +import requests as requests_http from codat import utils from dataclasses_json import Undefined, dataclass_json from datetime import datetime @@ -146,5 +146,5 @@ class ListBankAccountTransactionsResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() links: Optional[ListBankAccountTransactionsLinks] = dataclasses.field(default=None) - raw_response: Optional[requests.Response] = 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 9203b0e0f..7a5632e66 100755 --- a/bankfeeds/src/codat/models/operations/post_bank_transactions.py +++ b/bankfeeds/src/codat/models/operations/post_bank_transactions.py @@ -1,7 +1,7 @@ from __future__ import annotations import dataclasses import dateutil.parser -import requests +import requests as requests_http from codat import utils from dataclasses_json import Undefined, dataclass_json from datetime import datetime @@ -227,5 +227,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.Response] = 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/update_bank_feed.py b/bankfeeds/src/codat/models/operations/update_bank_feed.py index 2f0bd6a43..86bbd8915 100755 --- a/bankfeeds/src/codat/models/operations/update_bank_feed.py +++ b/bankfeeds/src/codat/models/operations/update_bank_feed.py @@ -1,7 +1,7 @@ from __future__ import annotations import dataclasses import dateutil.parser -import requests +import requests as requests_http from codat import utils from dataclasses_json import Undefined, dataclass_json from datetime import datetime @@ -52,5 +52,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.Response] = 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/sdk.py b/bankfeeds/src/codat/sdk.py index e46a414a0..d541a8f32 100755 --- a/bankfeeds/src/codat/sdk.py +++ b/bankfeeds/src/codat/sdk.py @@ -5,7 +5,7 @@ [Read more...](https://docs.codat.io/bank-feeds-api/overview) [See our OpenAPI spec](https://github.com/codatio/oas) """ -import requests +import requests as requests_http from . import utils from .bank_account_transactions import BankAccountTransactions from .bank_feed_accounts import BankFeedAccounts @@ -26,17 +26,17 @@ class Codat: bank_account_transactions: BankAccountTransactions bank_feed_accounts: BankFeedAccounts - _client: requests.Session - _security_client: requests.Session + _client: requests_http.Session + _security_client: requests_http.Session _security: shared.Security _server_url: str = SERVERS[0] _language: str = "python" - _sdk_version: str = "0.2.1" - _gen_version: str = "1.8.4" + _sdk_version: str = "0.2.2" + _gen_version: str = "1.8.5" def __init__(self) -> None: - self._client = requests.Session() - self._security_client = requests.Session() + self._client = requests_http.Session() + self._security_client = requests_http.Session() self._init_sdks() def config_server_url(self, server_url: str, params: dict[str, str] = None): @@ -49,7 +49,7 @@ def config_server_url(self, server_url: str, params: dict[str, str] = None): - def config_client(self, client: requests.Session): + def config_client(self, client: requests_http.Session): self._client = client if self._security is not None: From 5ed00e577cad4b394b873f245ef0004d15f1e95f Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Wed, 8 Mar 2023 00:18:55 +0000 Subject: [PATCH 4/8] ci: regenerated with OpenAPI Doc 2.1.0, Speakeay CLI 1.8.6 --- bankfeeds/RELEASES.md | 10 +++++++++- bankfeeds/gen.yaml | 4 ++-- bankfeeds/setup.py | 2 +- bankfeeds/src/codat/sdk.py | 4 ++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/bankfeeds/RELEASES.md b/bankfeeds/RELEASES.md index 12f3c717d..a7cfc2f18 100644 --- a/bankfeeds/RELEASES.md +++ b/bankfeeds/RELEASES.md @@ -38,4 +38,12 @@ 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 \ No newline at end of file +- [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 \ No newline at end of file diff --git a/bankfeeds/gen.yaml b/bankfeeds/gen.yaml index fd654d699..edfa2640b 100644 --- a/bankfeeds/gen.yaml +++ b/bankfeeds/gen.yaml @@ -2,13 +2,13 @@ configVersion: 1.0.0 management: docChecksum: f3ec1388bf09a41f7c97bfcbfce3c399 docVersion: 2.1.0 - speakeasyVersion: 1.8.5 + speakeasyVersion: 1.8.6 generation: telemetryEnabled: false sdkClassName: codat sdkFlattening: true python: - version: 0.2.2 + version: 0.2.3 author: Speakeasy description: Python Client SDK Generated by Speakeasy packageName: codat-bankfeeds diff --git a/bankfeeds/setup.py b/bankfeeds/setup.py index 748fcb01b..b1cde006c 100755 --- a/bankfeeds/setup.py +++ b/bankfeeds/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-bankfeeds", - version="0.2.2", + version="0.2.3", author="Speakeasy", description="Python Client SDK Generated by Speakeasy", long_description=long_description, diff --git a/bankfeeds/src/codat/sdk.py b/bankfeeds/src/codat/sdk.py index d541a8f32..5b63d0599 100755 --- a/bankfeeds/src/codat/sdk.py +++ b/bankfeeds/src/codat/sdk.py @@ -31,8 +31,8 @@ class Codat: _security: shared.Security _server_url: str = SERVERS[0] _language: str = "python" - _sdk_version: str = "0.2.2" - _gen_version: str = "1.8.5" + _sdk_version: str = "0.2.3" + _gen_version: str = "1.8.6" def __init__(self) -> None: self._client = requests_http.Session() From 05310063429bb81426c4b8b7da6dd30bca71c742 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Thu, 9 Mar 2023 00:19:02 +0000 Subject: [PATCH 5/8] ci: regenerated with OpenAPI Doc 2.1.0, Speakeay CLI 1.8.7 --- bankfeeds/RELEASES.md | 10 +- bankfeeds/gen.yaml | 6 +- bankfeeds/pylintrc | 2 +- bankfeeds/setup.py | 2 +- .../src/codat/models/operations/__init__.py | 2 +- .../get_bank_account_push_options.py | 183 ++++++++++++------ bankfeeds/src/codat/sdk.py | 4 +- 7 files changed, 138 insertions(+), 71 deletions(-) diff --git a/bankfeeds/RELEASES.md b/bankfeeds/RELEASES.md index a7cfc2f18..4de776c9b 100644 --- a/bankfeeds/RELEASES.md +++ b/bankfeeds/RELEASES.md @@ -46,4 +46,12 @@ 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 \ No newline at end of file +- [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 \ No newline at end of file diff --git a/bankfeeds/gen.yaml b/bankfeeds/gen.yaml index edfa2640b..5b8adacd6 100644 --- a/bankfeeds/gen.yaml +++ b/bankfeeds/gen.yaml @@ -1,14 +1,14 @@ configVersion: 1.0.0 management: - docChecksum: f3ec1388bf09a41f7c97bfcbfce3c399 + docChecksum: 5d482fdc77beeaca660224bb3f31b4ec docVersion: 2.1.0 - speakeasyVersion: 1.8.6 + speakeasyVersion: 1.8.7 generation: telemetryEnabled: false sdkClassName: codat sdkFlattening: true python: - version: 0.2.3 + version: 0.2.4 author: Speakeasy description: Python Client SDK Generated by Speakeasy packageName: codat-bankfeeds diff --git a/bankfeeds/pylintrc b/bankfeeds/pylintrc index 041a2c165..385b994c7 100755 --- a/bankfeeds/pylintrc +++ b/bankfeeds/pylintrc @@ -297,7 +297,7 @@ max-locals=15 max-parents=7 # Maximum number of public methods for a class (see R0904). -max-public-methods=20 +max-public-methods=25 # Maximum number of return / yield for function / method body. max-returns=6 diff --git a/bankfeeds/setup.py b/bankfeeds/setup.py index b1cde006c..d5f8549de 100755 --- a/bankfeeds/setup.py +++ b/bankfeeds/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-bankfeeds", - version="0.2.3", + version="0.2.4", author="Speakeasy", description="Python Client SDK Generated by Speakeasy", long_description=long_description, diff --git a/bankfeeds/src/codat/models/operations/__init__.py b/bankfeeds/src/codat/models/operations/__init__.py index 76b7dfa54..0b0b47bb0 100755 --- a/bankfeeds/src/codat/models/operations/__init__.py +++ b/bankfeeds/src/codat/models/operations/__init__.py @@ -5,4 +5,4 @@ from .post_bank_transactions import * from .update_bank_feed import * -__all__ = ["CreateBankFeedBankFeedBankAccount","CreateBankFeedBankFeedBankAccountAccountTypeEnum","CreateBankFeedPathParams","CreateBankFeedRequest","CreateBankFeedResponse","GetBankAccountPushOptionsPathParams","GetBankAccountPushOptionsPushOption","GetBankAccountPushOptionsPushOptionOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation","GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfoPushFieldValidation","GetBankAccountPushOptionsPushOptionPushValidationInfo","GetBankAccountPushOptionsPushOptionPushValidationInfoPushFieldValidation","GetBankAccountPushOptionsQueryParams","GetBankAccountPushOptionsRequest","GetBankAccountPushOptionsResponse","GetBankFeedsBankFeedBankAccount","GetBankFeedsBankFeedBankAccountAccountTypeEnum","GetBankFeedsPathParams","GetBankFeedsRequest","GetBankFeedsResponse","ListBankAccountTransactionsLinks","ListBankAccountTransactionsLinksLinks","ListBankAccountTransactionsLinksLinksCurrent","ListBankAccountTransactionsLinksLinksNext","ListBankAccountTransactionsLinksLinksPrevious","ListBankAccountTransactionsLinksLinksSelf","ListBankAccountTransactionsLinksResults","ListBankAccountTransactionsLinksResultsTransactions","ListBankAccountTransactionsLinksResultsTransactionsTransactionTypeEnum","ListBankAccountTransactionsPathParams","ListBankAccountTransactionsQueryParams","ListBankAccountTransactionsRequest","ListBankAccountTransactionsResponse","PostBankTransactions200ApplicationJSON","PostBankTransactions200ApplicationJSONChanges","PostBankTransactions200ApplicationJSONChangesPushOperationRecordRef","PostBankTransactions200ApplicationJSONChangesTypeEnum","PostBankTransactions200ApplicationJSONData","PostBankTransactions200ApplicationJSONDataTransactions","PostBankTransactions200ApplicationJSONDataTransactionsTransactionTypeEnum","PostBankTransactions200ApplicationJSONStatusEnum","PostBankTransactions200ApplicationJSONValidation","PostBankTransactions200ApplicationJSONValidationValidationItem","PostBankTransactionsPathParams","PostBankTransactionsQueryParams","PostBankTransactionsRequest","PostBankTransactionsRequestBody","PostBankTransactionsRequestBodyTransactions","PostBankTransactionsRequestBodyTransactionsTransactionTypeEnum","PostBankTransactionsResponse","UpdateBankFeedBankFeedBankAccount","UpdateBankFeedBankFeedBankAccountAccountTypeEnum","UpdateBankFeedPathParams","UpdateBankFeedRequest","UpdateBankFeedResponse"] +__all__ = ["CreateBankFeedBankFeedBankAccount","CreateBankFeedBankFeedBankAccountAccountTypeEnum","CreateBankFeedPathParams","CreateBankFeedRequest","CreateBankFeedResponse","GetBankAccountPushOptionsPathParams","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","GetBankAccountPushOptionsQueryParams","GetBankAccountPushOptionsRequest","GetBankAccountPushOptionsResponse","GetBankFeedsBankFeedBankAccount","GetBankFeedsBankFeedBankAccountAccountTypeEnum","GetBankFeedsPathParams","GetBankFeedsRequest","GetBankFeedsResponse","ListBankAccountTransactionsLinks","ListBankAccountTransactionsLinksLinks","ListBankAccountTransactionsLinksLinksCurrent","ListBankAccountTransactionsLinksLinksNext","ListBankAccountTransactionsLinksLinksPrevious","ListBankAccountTransactionsLinksLinksSelf","ListBankAccountTransactionsLinksResults","ListBankAccountTransactionsLinksResultsTransactions","ListBankAccountTransactionsLinksResultsTransactionsTransactionTypeEnum","ListBankAccountTransactionsPathParams","ListBankAccountTransactionsQueryParams","ListBankAccountTransactionsRequest","ListBankAccountTransactionsResponse","PostBankTransactions200ApplicationJSON","PostBankTransactions200ApplicationJSONChanges","PostBankTransactions200ApplicationJSONChangesPushOperationRecordRef","PostBankTransactions200ApplicationJSONChangesTypeEnum","PostBankTransactions200ApplicationJSONData","PostBankTransactions200ApplicationJSONDataTransactions","PostBankTransactions200ApplicationJSONDataTransactionsTransactionTypeEnum","PostBankTransactions200ApplicationJSONStatusEnum","PostBankTransactions200ApplicationJSONValidation","PostBankTransactions200ApplicationJSONValidationValidationItem","PostBankTransactionsPathParams","PostBankTransactionsQueryParams","PostBankTransactionsRequest","PostBankTransactionsRequestBody","PostBankTransactionsRequestBodyTransactions","PostBankTransactionsRequestBodyTransactionsTransactionTypeEnum","PostBankTransactionsResponse","UpdateBankFeedBankFeedBankAccount","UpdateBankFeedBankFeedBankAccountAccountTypeEnum","UpdateBankFeedPathParams","UpdateBankFeedRequest","UpdateBankFeedResponse"] 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 1925143ad..d08f99893 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 @@ -27,7 +27,7 @@ class GetBankAccountPushOptionsRequest: path_params: GetBankAccountPushOptionsPathParams = dataclasses.field() query_params: GetBankAccountPushOptionsQueryParams = dataclasses.field() -class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum(str, Enum): +class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionChoiceOptionTypeEnum(str, Enum): ARRAY = "Array" OBJECT = "Object" STRING = "String" @@ -40,31 +40,54 @@ class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOpt @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass -class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation: - details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('details') }}) - field: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('field') }}) - ref: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ref'), 'exclude': lambda f: f is None }}) +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 GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionChoiceOptionTypeEnum(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.get_field_name('information'), 'exclude': lambda f: f is None }}) - warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('warnings'), '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 GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoice: - 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: GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }}) - value: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('value') }}) - rel: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('rel'), 'exclude': lambda f: f is None }}) - validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), '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 GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum(str, Enum): +class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionChoiceOptionTypeEnum(str, Enum): ARRAY = "Array" OBJECT = "Object" STRING = "String" @@ -77,32 +100,50 @@ class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOpt @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass -class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation: +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 GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyOptionTypeEnum(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 GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfoPushFieldValidation: details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('details') }}) - field: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('field') }}) + 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.get_field_name('information'), 'exclude': lambda f: f is None }}) - warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_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: +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: GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }}) - value: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('value') }}) - options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('options'), 'exclude': lambda f: f is None }}) - rel: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('rel'), 'exclude': lambda f: f is None }}) - validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }}) + 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" @@ -115,32 +156,31 @@ class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoiceOptionT @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass -class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation: +class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfoPushFieldValidation: details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('details') }}) - field: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('field') }}) + 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.get_field_name('information'), 'exclude': lambda f: f is None }}) - warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_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: +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: GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoiceOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }}) - value: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('value') }}) - options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('options'), 'exclude': lambda f: f is None }}) - rel: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('rel'), 'exclude': lambda f: f is None }}) - validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }}) + 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" @@ -153,32 +193,31 @@ class GetBankAccountPushOptionsPushOptionPushOptionChoiceOptionTypeEnum(str, Enu @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass -class GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfoPushFieldValidation: +class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushValidationInfoPushFieldValidation: details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('details') }}) - field: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('field') }}) + 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.get_field_name('information'), 'exclude': lambda f: f is None }}) - warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_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: +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: GetBankAccountPushOptionsPushOptionPushOptionChoiceOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }}) - value: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('value') }}) - options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('options'), 'exclude': lambda f: f is None }}) - rel: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('rel'), 'exclude': lambda f: f is None }}) - validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }}) + 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" @@ -191,29 +230,49 @@ class GetBankAccountPushOptionsPushOptionOptionTypeEnum(str, Enum): @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass -class GetBankAccountPushOptionsPushOptionPushValidationInfoPushFieldValidation: +class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushValidationInfoPushFieldValidation: details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('details') }}) - field: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('field') }}) + 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 GetBankAccountPushOptionsPushOptionPushValidationInfo: - information: Optional[list[GetBankAccountPushOptionsPushOptionPushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('information'), 'exclude': lambda f: f is None }}) - warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('warnings'), 'exclude': lambda f: f is None }}) +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 GetBankAccountPushOptionsPushOption: +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: 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') }}) - options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('options'), 'exclude': lambda f: f is None }}) - rel: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('rel'), 'exclude': lambda f: f is None }}) - validation: Optional[GetBankAccountPushOptionsPushOptionPushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), '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 }}) + 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 diff --git a/bankfeeds/src/codat/sdk.py b/bankfeeds/src/codat/sdk.py index 5b63d0599..9e22384b7 100755 --- a/bankfeeds/src/codat/sdk.py +++ b/bankfeeds/src/codat/sdk.py @@ -31,8 +31,8 @@ class Codat: _security: shared.Security _server_url: str = SERVERS[0] _language: str = "python" - _sdk_version: str = "0.2.3" - _gen_version: str = "1.8.6" + _sdk_version: str = "0.2.4" + _gen_version: str = "1.8.7" def __init__(self) -> None: self._client = requests_http.Session() From 18e4663c24ec598e83182cb158eab3fd68336d1c Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Fri, 10 Mar 2023 00:18:49 +0000 Subject: [PATCH 6/8] ci: regenerated with OpenAPI Doc 2.1.0, Speakeay CLI 1.9.1 --- bankfeeds/RELEASES.md | 10 +++++++++- bankfeeds/gen.yaml | 4 ++-- bankfeeds/pylintrc | 3 ++- bankfeeds/setup.py | 2 +- bankfeeds/src/codat/sdk.py | 4 ++-- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/bankfeeds/RELEASES.md b/bankfeeds/RELEASES.md index 4de776c9b..e21bbee98 100644 --- a/bankfeeds/RELEASES.md +++ b/bankfeeds/RELEASES.md @@ -54,4 +54,12 @@ 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 \ No newline at end of file +- [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 \ No newline at end of file diff --git a/bankfeeds/gen.yaml b/bankfeeds/gen.yaml index 5b8adacd6..aea71c67e 100644 --- a/bankfeeds/gen.yaml +++ b/bankfeeds/gen.yaml @@ -2,13 +2,13 @@ configVersion: 1.0.0 management: docChecksum: 5d482fdc77beeaca660224bb3f31b4ec docVersion: 2.1.0 - speakeasyVersion: 1.8.7 + speakeasyVersion: 1.9.1 generation: telemetryEnabled: false sdkClassName: codat sdkFlattening: true python: - version: 0.2.4 + version: 0.3.0 author: Speakeasy description: Python Client SDK Generated by Speakeasy packageName: codat-bankfeeds diff --git a/bankfeeds/pylintrc b/bankfeeds/pylintrc index 385b994c7..a69e8e4e1 100755 --- a/bankfeeds/pylintrc +++ b/bankfeeds/pylintrc @@ -436,7 +436,8 @@ disable=raw-checker-failed, too-many-branches, chained-comparison, duplicate-code, - trailing-newlines + trailing-newlines, + too-many-public-methods # 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 diff --git a/bankfeeds/setup.py b/bankfeeds/setup.py index d5f8549de..9a3751f75 100755 --- a/bankfeeds/setup.py +++ b/bankfeeds/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-bankfeeds", - version="0.2.4", + version="0.3.0", author="Speakeasy", description="Python Client SDK Generated by Speakeasy", long_description=long_description, diff --git a/bankfeeds/src/codat/sdk.py b/bankfeeds/src/codat/sdk.py index 9e22384b7..b085023d2 100755 --- a/bankfeeds/src/codat/sdk.py +++ b/bankfeeds/src/codat/sdk.py @@ -31,8 +31,8 @@ class Codat: _security: shared.Security _server_url: str = SERVERS[0] _language: str = "python" - _sdk_version: str = "0.2.4" - _gen_version: str = "1.8.7" + _sdk_version: str = "0.3.0" + _gen_version: str = "1.9.1" def __init__(self) -> None: self._client = requests_http.Session() From d7549a4837a8a0882e9e82ed5336ddbaf107d9a7 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Sat, 11 Mar 2023 00:16:26 +0000 Subject: [PATCH 7/8] ci: regenerated with OpenAPI Doc 2.1.0, Speakeay CLI 1.9.2 --- bankfeeds/RELEASES.md | 10 +++++++++- bankfeeds/gen.yaml | 4 ++-- bankfeeds/setup.py | 2 +- bankfeeds/src/codat/sdk.py | 4 ++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/bankfeeds/RELEASES.md b/bankfeeds/RELEASES.md index e21bbee98..33d759037 100644 --- a/bankfeeds/RELEASES.md +++ b/bankfeeds/RELEASES.md @@ -62,4 +62,12 @@ 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 \ No newline at end of file +- [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 \ No newline at end of file diff --git a/bankfeeds/gen.yaml b/bankfeeds/gen.yaml index aea71c67e..3df934e04 100644 --- a/bankfeeds/gen.yaml +++ b/bankfeeds/gen.yaml @@ -2,13 +2,13 @@ configVersion: 1.0.0 management: docChecksum: 5d482fdc77beeaca660224bb3f31b4ec docVersion: 2.1.0 - speakeasyVersion: 1.9.1 + speakeasyVersion: 1.9.2 generation: telemetryEnabled: false sdkClassName: codat sdkFlattening: true python: - version: 0.3.0 + version: 0.3.1 author: Speakeasy description: Python Client SDK Generated by Speakeasy packageName: codat-bankfeeds diff --git a/bankfeeds/setup.py b/bankfeeds/setup.py index 9a3751f75..25e1fb389 100755 --- a/bankfeeds/setup.py +++ b/bankfeeds/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-bankfeeds", - version="0.3.0", + version="0.3.1", author="Speakeasy", description="Python Client SDK Generated by Speakeasy", long_description=long_description, diff --git a/bankfeeds/src/codat/sdk.py b/bankfeeds/src/codat/sdk.py index b085023d2..9c582cad9 100755 --- a/bankfeeds/src/codat/sdk.py +++ b/bankfeeds/src/codat/sdk.py @@ -31,8 +31,8 @@ class Codat: _security: shared.Security _server_url: str = SERVERS[0] _language: str = "python" - _sdk_version: str = "0.3.0" - _gen_version: str = "1.9.1" + _sdk_version: str = "0.3.1" + _gen_version: str = "1.9.2" def __init__(self) -> None: self._client = requests_http.Session() From c2ab0f770153513559aad788342f120cba243a67 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Wed, 15 Mar 2023 00:18:11 +0000 Subject: [PATCH 8/8] ci: regenerated with OpenAPI Doc 2.1.0, Speakeay CLI 1.11.0 --- bankfeeds/README.md | 26 +++--- bankfeeds/RELEASES.md | 10 +- bankfeeds/USAGE.md | 26 +++--- bankfeeds/gen.yaml | 4 +- bankfeeds/pylintrc | 3 +- bankfeeds/setup.py | 2 +- .../src/codat/bank_account_transactions.py | 14 +-- bankfeeds/src/codat/bank_feed_accounts.py | 10 +- .../src/codat/models/operations/__init__.py | 2 +- .../models/operations/create_bank_feed.py | 11 +-- .../get_bank_account_push_options.py | 12 +-- .../codat/models/operations/get_bank_feeds.py | 7 +- .../list_bank_account_transactions.py | 12 +-- .../operations/post_bank_transactions.py | 22 ++--- .../models/operations/update_bank_feed.py | 13 +-- bankfeeds/src/codat/sdk.py | 43 ++++----- bankfeeds/src/codat/utils/utils.py | 92 ++++++++++++------- 17 files changed, 144 insertions(+), 165 deletions(-) diff --git a/bankfeeds/README.md b/bankfeeds/README.md index 8723c3351..942b4d07d 100755 --- a/bankfeeds/README.md +++ b/bankfeeds/README.md @@ -14,25 +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( auth_header="YOUR_API_KEY_HERE", - ) + ), ) - + + req = operations.GetBankAccountPushOptionsRequest( - 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/RELEASES.md b/bankfeeds/RELEASES.md index 33d759037..b62fc6680 100644 --- a/bankfeeds/RELEASES.md +++ b/bankfeeds/RELEASES.md @@ -70,4 +70,12 @@ 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 \ No newline at end of file +- [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 a63853781..f1ecce9cd 100755 --- a/bankfeeds/USAGE.md +++ b/bankfeeds/USAGE.md @@ -3,25 +3,21 @@ import codat from codat.models import operations, shared -s = codat.Codat() -s.config_security( +s = codat.Codat( security=shared.Security( auth_header="YOUR_API_KEY_HERE", - ) + ), ) - + + req = operations.GetBankAccountPushOptionsRequest( - 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/gen.yaml b/bankfeeds/gen.yaml index 3df934e04..3b6d88b76 100644 --- a/bankfeeds/gen.yaml +++ b/bankfeeds/gen.yaml @@ -2,13 +2,13 @@ configVersion: 1.0.0 management: docChecksum: 5d482fdc77beeaca660224bb3f31b4ec docVersion: 2.1.0 - speakeasyVersion: 1.9.2 + speakeasyVersion: 1.11.0 generation: telemetryEnabled: false sdkClassName: codat sdkFlattening: true python: - version: 0.3.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 index a69e8e4e1..532df1904 100755 --- a/bankfeeds/pylintrc +++ b/bankfeeds/pylintrc @@ -437,7 +437,8 @@ disable=raw-checker-failed, chained-comparison, duplicate-code, trailing-newlines, - too-many-public-methods + 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 diff --git a/bankfeeds/setup.py b/bankfeeds/setup.py index 25e1fb389..bb42e9ccc 100755 --- a/bankfeeds/setup.py +++ b/bankfeeds/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-bankfeeds", - version="0.3.1", + version="0.4.0", author="Speakeasy", description="Python Client SDK Generated by Speakeasy", long_description=long_description, diff --git a/bankfeeds/src/codat/bank_account_transactions.py b/bankfeeds/src/codat/bank_account_transactions.py index 26881a399..547728169 100755 --- a/bankfeeds/src/codat/bank_account_transactions.py +++ b/bankfeeds/src/codat/bank_account_transactions.py @@ -26,9 +26,9 @@ 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 = self._security_client @@ -51,9 +51,9 @@ def list_bank_account_transactions(self, request: operations.ListBankAccountTran 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 = self._security_client @@ -80,13 +80,13 @@ 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) + 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(request.query_params) + query_params = utils.get_query_params(operations.PostBankTransactionsRequest, request) client = self._security_client diff --git a/bankfeeds/src/codat/bank_feed_accounts.py b/bankfeeds/src/codat/bank_feed_accounts.py index 537e5855d..4c682ea2d 100755 --- a/bankfeeds/src/codat/bank_feed_accounts.py +++ b/bankfeeds/src/codat/bank_feed_accounts.py @@ -26,10 +26,10 @@ def create_bank_feed(self, request: operations.CreateBankFeedRequest) -> operati 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) + 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 @@ -54,7 +54,7 @@ def get_bank_feeds(self, request: operations.GetBankFeedsRequest) -> operations. 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) client = self._security_client @@ -78,10 +78,10 @@ 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) + 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 diff --git a/bankfeeds/src/codat/models/operations/__init__.py b/bankfeeds/src/codat/models/operations/__init__.py index 0b0b47bb0..ac5c78948 100755 --- a/bankfeeds/src/codat/models/operations/__init__.py +++ b/bankfeeds/src/codat/models/operations/__init__.py @@ -5,4 +5,4 @@ from .post_bank_transactions import * from .update_bank_feed import * -__all__ = ["CreateBankFeedBankFeedBankAccount","CreateBankFeedBankFeedBankAccountAccountTypeEnum","CreateBankFeedPathParams","CreateBankFeedRequest","CreateBankFeedResponse","GetBankAccountPushOptionsPathParams","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","GetBankAccountPushOptionsQueryParams","GetBankAccountPushOptionsRequest","GetBankAccountPushOptionsResponse","GetBankFeedsBankFeedBankAccount","GetBankFeedsBankFeedBankAccountAccountTypeEnum","GetBankFeedsPathParams","GetBankFeedsRequest","GetBankFeedsResponse","ListBankAccountTransactionsLinks","ListBankAccountTransactionsLinksLinks","ListBankAccountTransactionsLinksLinksCurrent","ListBankAccountTransactionsLinksLinksNext","ListBankAccountTransactionsLinksLinksPrevious","ListBankAccountTransactionsLinksLinksSelf","ListBankAccountTransactionsLinksResults","ListBankAccountTransactionsLinksResultsTransactions","ListBankAccountTransactionsLinksResultsTransactionsTransactionTypeEnum","ListBankAccountTransactionsPathParams","ListBankAccountTransactionsQueryParams","ListBankAccountTransactionsRequest","ListBankAccountTransactionsResponse","PostBankTransactions200ApplicationJSON","PostBankTransactions200ApplicationJSONChanges","PostBankTransactions200ApplicationJSONChangesPushOperationRecordRef","PostBankTransactions200ApplicationJSONChangesTypeEnum","PostBankTransactions200ApplicationJSONData","PostBankTransactions200ApplicationJSONDataTransactions","PostBankTransactions200ApplicationJSONDataTransactionsTransactionTypeEnum","PostBankTransactions200ApplicationJSONStatusEnum","PostBankTransactions200ApplicationJSONValidation","PostBankTransactions200ApplicationJSONValidationValidationItem","PostBankTransactionsPathParams","PostBankTransactionsQueryParams","PostBankTransactionsRequest","PostBankTransactionsRequestBody","PostBankTransactionsRequestBodyTransactions","PostBankTransactionsRequestBodyTransactionsTransactionTypeEnum","PostBankTransactionsResponse","UpdateBankFeedBankFeedBankAccount","UpdateBankFeedBankFeedBankAccountAccountTypeEnum","UpdateBankFeedPathParams","UpdateBankFeedRequest","UpdateBankFeedResponse"] +__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 index 418e6e74b..e0f58e0cf 100755 --- a/bankfeeds/src/codat/models/operations/create_bank_feed.py +++ b/bankfeeds/src/codat/models/operations/create_bank_feed.py @@ -9,12 +9,6 @@ from marshmallow import fields from typing import Optional - -@dataclasses.dataclass -class CreateBankFeedPathParams: - 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 CreateBankFeedBankFeedBankAccountAccountTypeEnum(str, Enum): UNKNOWN = "Unknown" CREDIT = "Credit" @@ -42,8 +36,9 @@ class CreateBankFeedBankFeedBankAccount: @dataclasses.dataclass class CreateBankFeedRequest: - path_params: CreateBankFeedPathParams = dataclasses.field() - request: Optional[list[CreateBankFeedBankFeedBankAccount]] = dataclasses.field(default=None, metadata={'request': { 'media_type': 'application/json' }}) + 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 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 d08f99893..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 @@ -8,25 +8,15 @@ @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 }}) - -@dataclasses.dataclass -class GetBankAccountPushOptionsRequest: - path_params: GetBankAccountPushOptionsPathParams = dataclasses.field() - query_params: GetBankAccountPushOptionsQueryParams = dataclasses.field() - class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionChoiceOptionTypeEnum(str, Enum): ARRAY = "Array" OBJECT = "Object" diff --git a/bankfeeds/src/codat/models/operations/get_bank_feeds.py b/bankfeeds/src/codat/models/operations/get_bank_feeds.py index 259b0c18e..ca789c6b0 100755 --- a/bankfeeds/src/codat/models/operations/get_bank_feeds.py +++ b/bankfeeds/src/codat/models/operations/get_bank_feeds.py @@ -11,15 +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 GetBankFeedsRequest: - path_params: GetBankFeedsPathParams = dataclasses.field() - class GetBankFeedsBankFeedBankAccountAccountTypeEnum(str, Enum): UNKNOWN = "Unknown" CREDIT = "Credit" diff --git a/bankfeeds/src/codat/models/operations/list_bank_account_transactions.py b/bankfeeds/src/codat/models/operations/list_bank_account_transactions.py index 06bf559fe..882ad180f 100755 --- a/bankfeeds/src/codat/models/operations/list_bank_account_transactions.py +++ b/bankfeeds/src/codat/models/operations/list_bank_account_transactions.py @@ -11,26 +11,16 @@ @dataclasses.dataclass -class ListBankAccountTransactionsPathParams: +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 }}) - - -@dataclasses.dataclass -class ListBankAccountTransactionsQueryParams: 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 ListBankAccountTransactionsRequest: - path_params: ListBankAccountTransactionsPathParams = dataclasses.field() - query_params: ListBankAccountTransactionsQueryParams = dataclasses.field() - - @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class ListBankAccountTransactionsLinksLinksCurrent: diff --git a/bankfeeds/src/codat/models/operations/post_bank_transactions.py b/bankfeeds/src/codat/models/operations/post_bank_transactions.py index 7a5632e66..91c1d8202 100755 --- a/bankfeeds/src/codat/models/operations/post_bank_transactions.py +++ b/bankfeeds/src/codat/models/operations/post_bank_transactions.py @@ -9,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" @@ -88,9 +75,12 @@ class PostBankTransactionsRequestBody: @dataclasses.dataclass class PostBankTransactionsRequest: - path_params: PostBankTransactionsPathParams = dataclasses.field() - query_params: PostBankTransactionsQueryParams = 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) diff --git a/bankfeeds/src/codat/models/operations/update_bank_feed.py b/bankfeeds/src/codat/models/operations/update_bank_feed.py index 86bbd8915..f77509970 100755 --- a/bankfeeds/src/codat/models/operations/update_bank_feed.py +++ b/bankfeeds/src/codat/models/operations/update_bank_feed.py @@ -9,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" @@ -43,8 +36,10 @@ class UpdateBankFeedBankFeedBankAccount: @dataclasses.dataclass class UpdateBankFeedRequest: - path_params: UpdateBankFeedPathParams = 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 diff --git a/bankfeeds/src/codat/sdk.py b/bankfeeds/src/codat/sdk.py index 9c582cad9..3e8ea04a2 100755 --- a/bankfeeds/src/codat/sdk.py +++ b/bankfeeds/src/codat/sdk.py @@ -28,37 +28,32 @@ class Codat: _client: requests_http.Session _security_client: requests_http.Session - _security: shared.Security _server_url: str = SERVERS[0] _language: str = "python" - _sdk_version: str = "0.3.1" - _gen_version: str = "1.9.2" + _sdk_version: str = "0.4.0" + _gen_version: str = "1.11.0" - def __init__(self) -> None: + 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() - self._security_client = requests_http.Session() - self._init_sdks() - - def config_server_url(self, server_url: str, params: dict[str, str] = None): - if params is not None: - self._server_url = utils.template_url(server_url, params) - else: - self._server_url = server_url - - 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_client(self, client: requests_http.Session): - self._client = client + if client is not None: + self._client = client - if self._security is not None: - self._security_client = utils.configure_security_client(self._client, self._security) - self._init_sdks() - - def config_security(self, security: shared.Security): - self._security = security self._security_client = utils.configure_security_client(self._client, security) + + self._init_sdks() def _init_sdks(self): diff --git a/bankfeeds/src/codat/utils/utils.py b/bankfeeds/src/codat/utils/utils.py index d900928b2..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) @@ -136,14 +139,23 @@ 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) +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, field.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 @@ -210,32 +222,38 @@ def template_url(url_with_params: str, params: dict[str, str]) -> str: 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) + 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 = 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 @@ -339,38 +357,36 @@ 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 field in request_fields: - if field.name == "request": + 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 field in request_fields: - req = getattr(request_val, field.name) - if req is None: - continue - - request_metadata = field.metadata.get('request') - if request_metadata is None: - raise Exception( - f'missing request tag on request body field {field.name}') + if request_metadata is None: + raise Exception('invalid request type') - return serialize_content_type(field.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]]]: @@ -703,3 +719,15 @@ def _val_to_string(val): 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