From dcaf5bf89a093406cde264ba3df6380d0d363c06 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Fri, 3 Mar 2023 01:54:30 +0000 Subject: [PATCH 1/9] ci: regenerated with OpenAPI Doc prealpha, Speakeay CLI 1.7.1 --- expenses/RELEASES.md | 10 +++++++++- expenses/gen.yaml | 4 ++-- expenses/setup.py | 2 +- expenses/src/codat/sdk.py | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/expenses/RELEASES.md b/expenses/RELEASES.md index 655ea3b1d..3de0322a4 100644 --- a/expenses/RELEASES.md +++ b/expenses/RELEASES.md @@ -14,4 +14,12 @@ Based on: - OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml - Speakeasy CLI 1.7.1 https://github.com/speakeasy-api/speakeasy ### Releases -- [PyPI v0.1.1] https://pypi.org/project/codat-expenses/0.1.1 - expenses \ No newline at end of file +- [PyPI v0.1.1] https://pypi.org/project/codat-expenses/0.1.1 - expenses + +## 2023-03-03 01:54:25 +### Changes +Based on: +- OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml +- Speakeasy CLI 1.7.1 https://github.com/speakeasy-api/speakeasy +### Releases +- [PyPI v0.1.2] https://pypi.org/project/codat-expenses/0.1.2 - expenses \ No newline at end of file diff --git a/expenses/gen.yaml b/expenses/gen.yaml index 9eab65d92..3bcb14441 100644 --- a/expenses/gen.yaml +++ b/expenses/gen.yaml @@ -1,6 +1,6 @@ configVersion: 1.0.0 management: - docChecksum: 2721452c28c941bc57247116ace45229 + docChecksum: 37d58f35b09bc3c217cec285a9e5780b docVersion: prealpha speakeasyVersion: 1.7.1 generation: @@ -8,7 +8,7 @@ generation: sdkClassName: codat sdkFlattening: true python: - version: 0.1.1 + version: 0.1.2 author: Speakeasy description: Python Client SDK Generated by Speakeasy packageName: codat-expenses diff --git a/expenses/setup.py b/expenses/setup.py index 13f35a67f..281d0d862 100755 --- a/expenses/setup.py +++ b/expenses/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-expenses", - version="0.1.1", + version="0.1.2", author="Speakeasy", description="Python Client SDK Generated by Speakeasy", long_description=long_description, diff --git a/expenses/src/codat/sdk.py b/expenses/src/codat/sdk.py index ad58a8d6d..f7b37dcff 100755 --- a/expenses/src/codat/sdk.py +++ b/expenses/src/codat/sdk.py @@ -30,7 +30,7 @@ class Codat: _security: shared.Security _server_url: str = SERVERS[0] _language: str = "python" - _sdk_version: str = "0.1.1" + _sdk_version: str = "0.1.2" _gen_version: str = "1.7.1" def __init__(self) -> None: From 582717c24bd7bfa05eb7da9c1426771535088579 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Sat, 4 Mar 2023 00:14:13 +0000 Subject: [PATCH 2/9] ci: regenerated with OpenAPI Doc prealpha, Speakeay CLI 1.8.2 --- expenses/README.md | 2 +- expenses/RELEASES.md | 10 +- expenses/USAGE.md | 2 +- expenses/files.gen | 1 + expenses/gen.yaml | 6 +- expenses/pylintrc | 638 ++++++++++++++++++ expenses/setup.py | 3 +- expenses/src/codat/__init__.py | 2 +- expenses/src/codat/configuration.py | 42 +- expenses/src/codat/connections.py | 17 +- expenses/src/codat/expenses.py | 36 +- expenses/src/codat/mapping_options.py | 17 +- .../src/codat/models/operations/__init__.py | 2 +- .../operations/create_expense_dataset.py | 34 +- .../create_partnerexpense_connection.py | 40 +- .../operations/get_company_configuration.py | 14 +- .../operations/get_last_successful_sync.py | 18 +- .../models/operations/get_latest_sync.py | 18 +- .../models/operations/get_mapping_options.py | 42 +- .../codat/models/operations/get_sync_by_id.py | 18 +- .../models/operations/get_sync_transaction.py | 10 +- .../operations/get_sync_transactions.py | 22 +- .../codat/models/operations/intiate_sync.py | 162 ++--- .../src/codat/models/operations/list_syncs.py | 18 +- .../operations/save_company_configuration.py | 78 +-- .../models/operations/upload_attachment.py | 8 +- expenses/src/codat/models/shared/__init__.py | 2 +- expenses/src/codat/models/shared/security.py | 3 +- expenses/src/codat/sdk.py | 28 +- expenses/src/codat/sync.py | 39 +- expenses/src/codat/sync_status.py | 62 +- expenses/src/codat/transaction_status.py | 32 +- expenses/src/codat/utils/retries.py | 54 +- expenses/src/codat/utils/utils.py | 209 +++--- 34 files changed, 1180 insertions(+), 509 deletions(-) create mode 100755 expenses/pylintrc diff --git a/expenses/README.md b/expenses/README.md index 89314fc37..b49baa48e 100755 --- a/expenses/README.md +++ b/expenses/README.md @@ -17,7 +17,7 @@ from codat.models import operations, shared s = codat.Codat() s.config_security( security=shared.Security( - authorization="YOUR_API_KEY_HERE", + auth_header="YOUR_API_KEY_HERE", ) ) diff --git a/expenses/RELEASES.md b/expenses/RELEASES.md index 3de0322a4..17de7cda4 100644 --- a/expenses/RELEASES.md +++ b/expenses/RELEASES.md @@ -22,4 +22,12 @@ Based on: - OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml - Speakeasy CLI 1.7.1 https://github.com/speakeasy-api/speakeasy ### Releases -- [PyPI v0.1.2] https://pypi.org/project/codat-expenses/0.1.2 - expenses \ No newline at end of file +- [PyPI v0.1.2] https://pypi.org/project/codat-expenses/0.1.2 - expenses + +## 2023-03-04 00:14:06 +### Changes +Based on: +- OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml +- Speakeasy CLI 1.8.2 https://github.com/speakeasy-api/speakeasy +### Releases +- [PyPI v0.2.0] https://pypi.org/project/codat-expenses/0.2.0 - expenses \ No newline at end of file diff --git a/expenses/USAGE.md b/expenses/USAGE.md index 03465414b..e855b7866 100755 --- a/expenses/USAGE.md +++ b/expenses/USAGE.md @@ -6,7 +6,7 @@ from codat.models import operations, shared s = codat.Codat() s.config_security( security=shared.Security( - authorization="YOUR_API_KEY_HERE", + auth_header="YOUR_API_KEY_HERE", ) ) diff --git a/expenses/files.gen b/expenses/files.gen index 16cbac8ab..086b85378 100755 --- a/expenses/files.gen +++ b/expenses/files.gen @@ -6,6 +6,7 @@ src/codat/sync.py src/codat/sync_status.py src/codat/transaction_status.py src/codat/sdk.py +pylintrc setup.py src/codat/__init__.py src/codat/models/__init__.py diff --git a/expenses/gen.yaml b/expenses/gen.yaml index 3bcb14441..df80d124a 100644 --- a/expenses/gen.yaml +++ b/expenses/gen.yaml @@ -1,14 +1,14 @@ configVersion: 1.0.0 management: - docChecksum: 37d58f35b09bc3c217cec285a9e5780b + docChecksum: 259b149106f47d9de9efe243f42c410e docVersion: prealpha - speakeasyVersion: 1.7.1 + speakeasyVersion: 1.8.2 generation: telemetryEnabled: false sdkClassName: codat sdkFlattening: true python: - version: 0.1.2 + version: 0.2.0 author: Speakeasy description: Python Client SDK Generated by Speakeasy packageName: codat-expenses diff --git a/expenses/pylintrc b/expenses/pylintrc new file mode 100755 index 000000000..9b2a14fa9 --- /dev/null +++ b/expenses/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/expenses/setup.py b/expenses/setup.py index 281d0d862..30a94b665 100755 --- a/expenses/setup.py +++ b/expenses/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-expenses", - version="0.1.2", + 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/expenses/src/codat/__init__.py b/expenses/src/codat/__init__.py index 8d74a7d2f..0f9f50e91 100755 --- a/expenses/src/codat/__init__.py +++ b/expenses/src/codat/__init__.py @@ -1 +1 @@ -from .sdk import * \ No newline at end of file +from .sdk import * diff --git a/expenses/src/codat/configuration.py b/expenses/src/codat/configuration.py index 182e1430f..310c49bd0 100755 --- a/expenses/src/codat/configuration.py +++ b/expenses/src/codat/configuration.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_company_configuration(self, request: operations.GetCompanyConfigurationRequest) -> operations.GetCompanyConfigurationResponse: r"""Get Company configuration Gets a companies expense sync configuration @@ -27,24 +26,23 @@ def get_company_configuration(self, request: operations.GetCompanyConfigurationR base_url = self._server_url - url = utils.generate_url(base_url, "/companies/{companyId}/config", request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/config', request.path_params) client = self._security_client - r = client.request("GET", url) - content_type = r.headers.get("Content-Type") + http_res = client.request('GET', url) + content_type = http_res.headers.get('Content-Type') - res = operations.GetCompanyConfigurationResponse(status_code=r.status_code, content_type=content_type) + res = operations.GetCompanyConfigurationResponse(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.GetCompanyConfiguration200ApplicationJSON]) + if http_res.status_code == 200: + if utils.match_content_type(content_type, 'application/json'): + out = utils.unmarshal_json(http_res.text, Optional[operations.GetCompanyConfiguration200ApplicationJSON]) res.get_company_configuration_200_application_json_object = out return res - def save_company_configuration(self, request: operations.SaveCompanyConfigurationRequest) -> operations.SaveCompanyConfigurationResponse: r"""Set Company configuration Sets a companies expense sync configuration @@ -52,27 +50,27 @@ def save_company_configuration(self, request: operations.SaveCompanyConfiguratio base_url = self._server_url - url = utils.generate_url(base_url, "/companies/{companyId}/config", request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/config', 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 = self._security_client - r = client.request("POST", url, data=data, files=form, headers=headers) - content_type = r.headers.get("Content-Type") + http_res = client.request('POST', url, data=data, files=form, headers=headers) + content_type = http_res.headers.get('Content-Type') - res = operations.SaveCompanyConfigurationResponse(status_code=r.status_code, content_type=content_type) + res = operations.SaveCompanyConfigurationResponse(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.SaveCompanyConfiguration200ApplicationJSON]) + if http_res.status_code == 200: + if utils.match_content_type(content_type, 'application/json'): + out = utils.unmarshal_json(http_res.text, Optional[operations.SaveCompanyConfiguration200ApplicationJSON]) res.save_company_configuration_200_application_json_object = out - elif r.status_code == 400: - if utils.match_content_type(content_type, "application/json"): - out = utils.unmarshal_json(r.text, Optional[operations.SaveCompanyConfiguration400ApplicationJSON]) + elif http_res.status_code == 400: + if utils.match_content_type(content_type, 'application/json'): + out = utils.unmarshal_json(http_res.text, Optional[operations.SaveCompanyConfiguration400ApplicationJSON]) res.save_company_configuration_400_application_json_object = out return res diff --git a/expenses/src/codat/connections.py b/expenses/src/codat/connections.py index 38f272217..ba0301f56 100755 --- a/expenses/src/codat/connections.py +++ b/expenses/src/codat/connections.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 create_partnerexpense_connection(self, request: operations.CreatePartnerexpenseConnectionRequest) -> operations.CreatePartnerexpenseConnectionResponse: r"""Create Partner Expense connection Creates a Partner Expense data connection @@ -27,19 +26,19 @@ def create_partnerexpense_connection(self, request: operations.CreatePartnerexpe base_url = self._server_url - url = utils.generate_url(base_url, "/companies/{companyId}/connections/partnerExpense", request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/connections/partnerExpense', request.path_params) client = self._security_client - r = client.request("POST", url) - content_type = r.headers.get("Content-Type") + http_res = client.request('POST', url) + content_type = http_res.headers.get('Content-Type') - res = operations.CreatePartnerexpenseConnectionResponse(status_code=r.status_code, content_type=content_type) + res = operations.CreatePartnerexpenseConnectionResponse(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.CreatePartnerexpenseConnectionConnection]) + if http_res.status_code == 200: + if utils.match_content_type(content_type, 'application/json'): + out = utils.unmarshal_json(http_res.text, Optional[operations.CreatePartnerexpenseConnectionConnection]) res.connection = out return res diff --git a/expenses/src/codat/expenses.py b/expenses/src/codat/expenses.py index adab75315..410b8f66d 100755 --- a/expenses/src/codat/expenses.py +++ b/expenses/src/codat/expenses.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 create_expense_dataset(self, request: operations.CreateExpenseDatasetRequest) -> operations.CreateExpenseDatasetResponse: r"""Create expense-transactions Create an expense transaction @@ -27,28 +26,27 @@ def create_expense_dataset(self, request: operations.CreateExpenseDatasetRequest base_url = self._server_url - url = utils.generate_url(base_url, "/companies/{companyId}/data/expense-transactions", request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/data/expense-transactions', 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 = self._security_client - r = client.request("POST", url, data=data, files=form, headers=headers) - content_type = r.headers.get("Content-Type") + http_res = client.request('POST', url, data=data, files=form, headers=headers) + content_type = http_res.headers.get('Content-Type') - res = operations.CreateExpenseDatasetResponse(status_code=r.status_code, content_type=content_type) + res = operations.CreateExpenseDatasetResponse(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.CreateExpenseDataset200ApplicationJSON]) + if http_res.status_code == 200: + if utils.match_content_type(content_type, 'application/json'): + out = utils.unmarshal_json(http_res.text, Optional[operations.CreateExpenseDataset200ApplicationJSON]) res.create_expense_dataset_200_application_json_object = out return res - def upload_attachment(self, request: operations.UploadAttachmentRequest) -> operations.UploadAttachmentResponse: r"""Upload attachment Creates an attachment in the accounting software against the given transactionId @@ -56,19 +54,19 @@ def upload_attachment(self, request: operations.UploadAttachmentRequest) -> oper base_url = self._server_url - url = utils.generate_url(base_url, "/companies/{companyId}/syncs/{syncId}/transactions/{transactionId}/attachments", request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/syncs/{syncId}/transactions/{transactionId}/attachments', request.path_params) client = self._security_client - r = client.request("POST", url) - content_type = r.headers.get("Content-Type") + http_res = client.request('POST', url) + content_type = http_res.headers.get('Content-Type') - res = operations.UploadAttachmentResponse(status_code=r.status_code, content_type=content_type) + res = operations.UploadAttachmentResponse(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.UploadAttachment200ApplicationJSON]) + if http_res.status_code == 200: + if utils.match_content_type(content_type, 'application/json'): + out = utils.unmarshal_json(http_res.text, Optional[operations.UploadAttachment200ApplicationJSON]) res.upload_attachment_200_application_json_object = out return res diff --git a/expenses/src/codat/mapping_options.py b/expenses/src/codat/mapping_options.py index fb918467c..2d00b8c2b 100755 --- a/expenses/src/codat/mapping_options.py +++ b/expenses/src/codat/mapping_options.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_mapping_options(self, request: operations.GetMappingOptionsRequest) -> operations.GetMappingOptionsResponse: r"""Mapping options Gets the expense mapping options for a companies accounting software @@ -27,19 +26,19 @@ def get_mapping_options(self, request: operations.GetMappingOptionsRequest) -> o base_url = self._server_url - url = utils.generate_url(base_url, "/companies/{companyId}/mappingOptions", request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/mappingOptions', request.path_params) client = self._security_client - r = client.request("GET", url) - content_type = r.headers.get("Content-Type") + http_res = client.request('GET', url) + content_type = http_res.headers.get('Content-Type') - res = operations.GetMappingOptionsResponse(status_code=r.status_code, content_type=content_type) + res = operations.GetMappingOptionsResponse(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.GetMappingOptions200ApplicationJSON]) + if http_res.status_code == 200: + if utils.match_content_type(content_type, 'application/json'): + out = utils.unmarshal_json(http_res.text, Optional[operations.GetMappingOptions200ApplicationJSON]) res.get_mapping_options_200_application_json_object = out return res diff --git a/expenses/src/codat/models/operations/__init__.py b/expenses/src/codat/models/operations/__init__.py index d037baf1d..d437dbd00 100755 --- a/expenses/src/codat/models/operations/__init__.py +++ b/expenses/src/codat/models/operations/__init__.py @@ -12,4 +12,4 @@ from .save_company_configuration import * from .upload_attachment import * -__all__ = ["CreateExpenseDataset200ApplicationJSON","CreateExpenseDatasetPathParams","CreateExpenseDatasetRequest","CreateExpenseDatasetRequestBody","CreateExpenseDatasetRequestBodyItems","CreateExpenseDatasetRequestBodyItemsLines","CreateExpenseDatasetRequestBodyItemsLinesRecordRef","CreateExpenseDatasetRequestBodyItemsTypeEnum","CreateExpenseDatasetResponse","CreatePartnerexpenseConnectionConnection","CreatePartnerexpenseConnectionConnectionConnectionInfo","CreatePartnerexpenseConnectionConnectionDataConnectionErrors","CreatePartnerexpenseConnectionConnectionDataConnectionStatusEnum","CreatePartnerexpenseConnectionConnectionSourceTypeEnum","CreatePartnerexpenseConnectionPathParams","CreatePartnerexpenseConnectionRequest","CreatePartnerexpenseConnectionResponse","GetCompanyConfiguration200ApplicationJSON","GetCompanyConfiguration200ApplicationJSONBankAccount","GetCompanyConfiguration200ApplicationJSONCustomer","GetCompanyConfiguration200ApplicationJSONSupplier","GetCompanyConfigurationPathParams","GetCompanyConfigurationRequest","GetCompanyConfigurationResponse","GetLastSuccessfulSync200ApplicationJSON","GetLastSuccessfulSyncPathParams","GetLastSuccessfulSyncRequest","GetLastSuccessfulSyncResponse","GetLatestSync200ApplicationJSON","GetLatestSyncPathParams","GetLatestSyncRequest","GetLatestSyncResponse","GetMappingOptions200ApplicationJSON","GetMappingOptions200ApplicationJSONAccounts","GetMappingOptions200ApplicationJSONAccountsAccountTypeEnum","GetMappingOptions200ApplicationJSONAccountsValidTransactionTypesEnum","GetMappingOptions200ApplicationJSONTaxRates","GetMappingOptions200ApplicationJSONTaxRatesValidTransactionTypesEnum","GetMappingOptions200ApplicationJSONTrackingCategories","GetMappingOptionsPathParams","GetMappingOptionsRequest","GetMappingOptionsResponse","GetSyncByID200ApplicationJSON","GetSyncByIDPathParams","GetSyncByIDRequest","GetSyncByIDResponse","GetSyncTransaction200ApplicationJSON","GetSyncTransaction200ApplicationJSONIntegrationTypeEnum","GetSyncTransaction200ApplicationJSONStatusEnum","GetSyncTransactionPathParams","GetSyncTransactionRequest","GetSyncTransactionResponse","GetSyncTransactions200ApplicationJSON","GetSyncTransactions200ApplicationJSONHalLink","GetSyncTransactions200ApplicationJSONResults","GetSyncTransactions200ApplicationJSONResultsIntegrationTypeEnum","GetSyncTransactions200ApplicationJSONResultsStatusEnum","GetSyncTransactionsPathParams","GetSyncTransactionsQueryParams","GetSyncTransactionsRequest","GetSyncTransactionsResponse","IntiateSync202ApplicationJSON","IntiateSync400ApplicationJSON","IntiateSync400ApplicationJSONValidation","IntiateSync400ApplicationJSONValidationErrors","IntiateSync400ApplicationJSONValidationInternals","IntiateSync400ApplicationJSONValidationWarnings","IntiateSync404ApplicationJSON","IntiateSync404ApplicationJSONValidation","IntiateSync404ApplicationJSONValidationErrors","IntiateSync404ApplicationJSONValidationInternals","IntiateSync404ApplicationJSONValidationWarnings","IntiateSync422ApplicationJSON","IntiateSync422ApplicationJSONValidation","IntiateSync422ApplicationJSONValidationErrors","IntiateSync422ApplicationJSONValidationInternals","IntiateSync422ApplicationJSONValidationWarnings","IntiateSyncPathParams","IntiateSyncRequest","IntiateSyncRequestBody","IntiateSyncResponse","ListSyncs200ApplicationJSON","ListSyncsPathParams","ListSyncsRequest","ListSyncsResponse","SaveCompanyConfiguration200ApplicationJSON","SaveCompanyConfiguration200ApplicationJSONBankAccount","SaveCompanyConfiguration200ApplicationJSONCustomer","SaveCompanyConfiguration200ApplicationJSONSupplier","SaveCompanyConfiguration400ApplicationJSON","SaveCompanyConfiguration400ApplicationJSONValidation","SaveCompanyConfiguration400ApplicationJSONValidationErrors","SaveCompanyConfiguration400ApplicationJSONValidationInternals","SaveCompanyConfiguration400ApplicationJSONValidationWarnings","SaveCompanyConfigurationPathParams","SaveCompanyConfigurationRequest","SaveCompanyConfigurationRequestBody","SaveCompanyConfigurationRequestBodyBankAccount","SaveCompanyConfigurationRequestBodyCustomer","SaveCompanyConfigurationRequestBodySupplier","SaveCompanyConfigurationResponse","UploadAttachment200ApplicationJSON","UploadAttachmentPathParams","UploadAttachmentRequest","UploadAttachmentResponse"] \ No newline at end of file +__all__ = ["CreateExpenseDataset200ApplicationJSON","CreateExpenseDatasetPathParams","CreateExpenseDatasetRequest","CreateExpenseDatasetRequestBody","CreateExpenseDatasetRequestBodyItems","CreateExpenseDatasetRequestBodyItemsLines","CreateExpenseDatasetRequestBodyItemsLinesRecordRef","CreateExpenseDatasetRequestBodyItemsTypeEnum","CreateExpenseDatasetResponse","CreatePartnerexpenseConnectionConnection","CreatePartnerexpenseConnectionConnectionConnectionInfo","CreatePartnerexpenseConnectionConnectionDataConnectionErrors","CreatePartnerexpenseConnectionConnectionDataConnectionStatusEnum","CreatePartnerexpenseConnectionConnectionSourceTypeEnum","CreatePartnerexpenseConnectionPathParams","CreatePartnerexpenseConnectionRequest","CreatePartnerexpenseConnectionResponse","GetCompanyConfiguration200ApplicationJSON","GetCompanyConfiguration200ApplicationJSONBankAccount","GetCompanyConfiguration200ApplicationJSONCustomer","GetCompanyConfiguration200ApplicationJSONSupplier","GetCompanyConfigurationPathParams","GetCompanyConfigurationRequest","GetCompanyConfigurationResponse","GetLastSuccessfulSync200ApplicationJSON","GetLastSuccessfulSyncPathParams","GetLastSuccessfulSyncRequest","GetLastSuccessfulSyncResponse","GetLatestSync200ApplicationJSON","GetLatestSyncPathParams","GetLatestSyncRequest","GetLatestSyncResponse","GetMappingOptions200ApplicationJSON","GetMappingOptions200ApplicationJSONAccounts","GetMappingOptions200ApplicationJSONAccountsAccountTypeEnum","GetMappingOptions200ApplicationJSONAccountsValidTransactionTypesEnum","GetMappingOptions200ApplicationJSONTaxRates","GetMappingOptions200ApplicationJSONTaxRatesValidTransactionTypesEnum","GetMappingOptions200ApplicationJSONTrackingCategories","GetMappingOptionsPathParams","GetMappingOptionsRequest","GetMappingOptionsResponse","GetSyncByID200ApplicationJSON","GetSyncByIDPathParams","GetSyncByIDRequest","GetSyncByIDResponse","GetSyncTransaction200ApplicationJSON","GetSyncTransaction200ApplicationJSONIntegrationTypeEnum","GetSyncTransaction200ApplicationJSONStatusEnum","GetSyncTransactionPathParams","GetSyncTransactionRequest","GetSyncTransactionResponse","GetSyncTransactions200ApplicationJSON","GetSyncTransactions200ApplicationJSONHalLink","GetSyncTransactions200ApplicationJSONResults","GetSyncTransactions200ApplicationJSONResultsIntegrationTypeEnum","GetSyncTransactions200ApplicationJSONResultsStatusEnum","GetSyncTransactionsPathParams","GetSyncTransactionsQueryParams","GetSyncTransactionsRequest","GetSyncTransactionsResponse","IntiateSync202ApplicationJSON","IntiateSync400ApplicationJSON","IntiateSync400ApplicationJSONValidation","IntiateSync400ApplicationJSONValidationErrors","IntiateSync400ApplicationJSONValidationInternals","IntiateSync400ApplicationJSONValidationWarnings","IntiateSync404ApplicationJSON","IntiateSync404ApplicationJSONValidation","IntiateSync404ApplicationJSONValidationErrors","IntiateSync404ApplicationJSONValidationInternals","IntiateSync404ApplicationJSONValidationWarnings","IntiateSync422ApplicationJSON","IntiateSync422ApplicationJSONValidation","IntiateSync422ApplicationJSONValidationErrors","IntiateSync422ApplicationJSONValidationInternals","IntiateSync422ApplicationJSONValidationWarnings","IntiateSyncPathParams","IntiateSyncRequest","IntiateSyncRequestBody","IntiateSyncResponse","ListSyncs200ApplicationJSON","ListSyncsPathParams","ListSyncsRequest","ListSyncsResponse","SaveCompanyConfiguration200ApplicationJSON","SaveCompanyConfiguration200ApplicationJSONBankAccount","SaveCompanyConfiguration200ApplicationJSONCustomer","SaveCompanyConfiguration200ApplicationJSONSupplier","SaveCompanyConfiguration400ApplicationJSON","SaveCompanyConfiguration400ApplicationJSONValidation","SaveCompanyConfiguration400ApplicationJSONValidationErrors","SaveCompanyConfiguration400ApplicationJSONValidationInternals","SaveCompanyConfiguration400ApplicationJSONValidationWarnings","SaveCompanyConfigurationPathParams","SaveCompanyConfigurationRequest","SaveCompanyConfigurationRequestBody","SaveCompanyConfigurationRequestBodyBankAccount","SaveCompanyConfigurationRequestBodyCustomer","SaveCompanyConfigurationRequestBodySupplier","SaveCompanyConfigurationResponse","UploadAttachment200ApplicationJSON","UploadAttachmentPathParams","UploadAttachmentRequest","UploadAttachmentResponse"] diff --git a/expenses/src/codat/models/operations/create_expense_dataset.py b/expenses/src/codat/models/operations/create_expense_dataset.py index d26e9cdf2..05cbccaf7 100755 --- a/expenses/src/codat/models/operations/create_expense_dataset.py +++ b/expenses/src/codat/models/operations/create_expense_dataset.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 @@ -17,17 +18,17 @@ class CreateExpenseDatasetPathParams: @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class CreateExpenseDatasetRequestBodyItemsLinesRecordRef: - id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('id'), '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 }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class CreateExpenseDatasetRequestBodyItemsLines: - account_ref: CreateExpenseDatasetRequestBodyItemsLinesRecordRef = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('accountRef') }}) - net_amount: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('netAmount') }}) - tax_amount: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('taxAmount') }}) - tax_rate_ref: Optional[CreateExpenseDatasetRequestBodyItemsLinesRecordRef] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('taxRateRef'), 'exclude': lambda f: f is None }}) - tracking_refs: Optional[list[CreateExpenseDatasetRequestBodyItemsLinesRecordRef]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('trackingRefs'), 'exclude': lambda f: f is None }}) + account_ref: CreateExpenseDatasetRequestBodyItemsLinesRecordRef = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('accountRef') }}) + net_amount: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('netAmount') }}) + tax_amount: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('taxAmount') }}) + tax_rate_ref: Optional[CreateExpenseDatasetRequestBodyItemsLinesRecordRef] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('taxRateRef'), 'exclude': lambda f: f is None }}) + tracking_refs: Optional[list[CreateExpenseDatasetRequestBodyItemsLinesRecordRef]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('trackingRefs'), 'exclude': lambda f: f is None }}) class CreateExpenseDatasetRequestBodyItemsTypeEnum(str, Enum): PAYMENT = "Payment" @@ -43,20 +44,20 @@ class CreateExpenseDatasetRequestBodyItemsTypeEnum(str, Enum): @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class CreateExpenseDatasetRequestBodyItems: - currency: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('currency') }}) - id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('id') }}) - issue_date: datetime = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('issueDate'), 'encoder': utils.datetimeisoformat(False), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso') }}) - type: CreateExpenseDatasetRequestBodyItemsTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('type') }}) - currency_rate: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('currencyRate'), 'exclude': lambda f: f is None }}) - lines: Optional[list[CreateExpenseDatasetRequestBodyItemsLines]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('lines'), 'exclude': lambda f: f is None }}) - merchant_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('merchantName'), 'exclude': lambda f: f is None }}) - notes: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('notes'), 'exclude': lambda f: f is None }}) + currency: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('currency') }}) + id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('id') }}) + issue_date: datetime = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('issueDate'), 'encoder': utils.datetimeisoformat(False), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso') }}) + type: CreateExpenseDatasetRequestBodyItemsTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }}) + currency_rate: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('currencyRate'), 'exclude': lambda f: f is None }}) + lines: Optional[list[CreateExpenseDatasetRequestBodyItemsLines]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('lines'), 'exclude': lambda f: f is None }}) + merchant_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('merchantName'), 'exclude': lambda f: f is None }}) + notes: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('notes'), 'exclude': lambda f: f is None }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class CreateExpenseDatasetRequestBody: - items: Optional[list[CreateExpenseDatasetRequestBodyItems]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('items'), 'exclude': lambda f: f is None }}) + items: Optional[list[CreateExpenseDatasetRequestBodyItems]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('items'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass @@ -68,7 +69,7 @@ class CreateExpenseDatasetRequest: @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class CreateExpenseDataset200ApplicationJSON: - dataset_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('datasetId'), 'exclude': lambda f: f is None }}) + dataset_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('datasetId'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass @@ -76,4 +77,5 @@ class CreateExpenseDatasetResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() create_expense_dataset_200_application_json_object: Optional[CreateExpenseDataset200ApplicationJSON] = dataclasses.field(default=None) + raw_response: Optional[requests.Response] = dataclasses.field(default=None) \ No newline at end of file diff --git a/expenses/src/codat/models/operations/create_partnerexpense_connection.py b/expenses/src/codat/models/operations/create_partnerexpense_connection.py index 08722eebe..f7c71fa48 100755 --- a/expenses/src/codat/models/operations/create_partnerexpense_connection.py +++ b/expenses/src/codat/models/operations/create_partnerexpense_connection.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 @@ -22,18 +23,18 @@ class CreatePartnerexpenseConnectionRequest: @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class CreatePartnerexpenseConnectionConnectionConnectionInfo: - additional_prop1: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('additionalProp1'), 'exclude': lambda f: f is None }}) - additional_prop2: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('additionalProp2'), 'exclude': lambda f: f is None }}) - additional_prop3: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('additionalProp3'), 'exclude': lambda f: f is None }}) + additional_prop1: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('additionalProp1'), 'exclude': lambda f: f is None }}) + additional_prop2: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('additionalProp2'), 'exclude': lambda f: f is None }}) + additional_prop3: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('additionalProp3'), 'exclude': lambda f: f is None }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class CreatePartnerexpenseConnectionConnectionDataConnectionErrors: - errored_on_utc: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('erroredOnUtc'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), '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 }}) - status_code: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('statusCode'), 'exclude': lambda f: f is None }}) - status_text: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('statusText'), 'exclude': lambda f: f is None }}) + errored_on_utc: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('erroredOnUtc'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), '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 }}) + status_code: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('statusCode'), 'exclude': lambda f: f is None }}) + status_text: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('statusText'), 'exclude': lambda f: f is None }}) class CreatePartnerexpenseConnectionConnectionSourceTypeEnum(str, Enum): ACCOUNTING = "Accounting" @@ -56,18 +57,18 @@ class CreatePartnerexpenseConnectionConnection: A connection represents the link between a `company` and a source of data. """ - created: datetime = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('created'), 'encoder': utils.datetimeisoformat(False), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso') }}) - id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('id') }}) - integration_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('integrationId') }}) - integration_key: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('integrationKey') }}) - link_url: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('linkUrl') }}) - platform_name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('platformName') }}) - source_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('sourceId') }}) - source_type: CreatePartnerexpenseConnectionConnectionSourceTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('sourceType') }}) - status: CreatePartnerexpenseConnectionConnectionDataConnectionStatusEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('status') }}) - connection_info: Optional[CreatePartnerexpenseConnectionConnectionConnectionInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('connectionInfo'), 'exclude': lambda f: f is None }}) - data_connection_errors: Optional[list[CreatePartnerexpenseConnectionConnectionDataConnectionErrors]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('dataConnectionErrors'), 'exclude': lambda f: f is None }}) - last_sync: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('lastSync'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }}) + created: datetime = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('created'), 'encoder': utils.datetimeisoformat(False), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso') }}) + id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('id') }}) + integration_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('integrationId') }}) + integration_key: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('integrationKey') }}) + link_url: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('linkUrl') }}) + platform_name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('platformName') }}) + source_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('sourceId') }}) + source_type: CreatePartnerexpenseConnectionConnectionSourceTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('sourceType') }}) + status: CreatePartnerexpenseConnectionConnectionDataConnectionStatusEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('status') }}) + connection_info: Optional[CreatePartnerexpenseConnectionConnectionConnectionInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('connectionInfo'), 'exclude': lambda f: f is None }}) + data_connection_errors: Optional[list[CreatePartnerexpenseConnectionConnectionDataConnectionErrors]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('dataConnectionErrors'), 'exclude': lambda f: f is None }}) + last_sync: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('lastSync'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass @@ -75,4 +76,5 @@ class CreatePartnerexpenseConnectionResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() connection: Optional[CreatePartnerexpenseConnectionConnection] = dataclasses.field(default=None) + raw_response: Optional[requests.Response] = dataclasses.field(default=None) \ No newline at end of file diff --git a/expenses/src/codat/models/operations/get_company_configuration.py b/expenses/src/codat/models/operations/get_company_configuration.py index 059a44ee5..00ceffdf8 100755 --- a/expenses/src/codat/models/operations/get_company_configuration.py +++ b/expenses/src/codat/models/operations/get_company_configuration.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 typing import Optional @@ -18,27 +19,27 @@ class GetCompanyConfigurationRequest: @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetCompanyConfiguration200ApplicationJSONBankAccount: - id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('id'), '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 }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetCompanyConfiguration200ApplicationJSONCustomer: - id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('id'), '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 }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetCompanyConfiguration200ApplicationJSONSupplier: - id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('id'), '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 }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetCompanyConfiguration200ApplicationJSON: - bank_account: Optional[GetCompanyConfiguration200ApplicationJSONBankAccount] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('bankAccount'), 'exclude': lambda f: f is None }}) - customer: Optional[GetCompanyConfiguration200ApplicationJSONCustomer] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('customer'), 'exclude': lambda f: f is None }}) - supplier: Optional[GetCompanyConfiguration200ApplicationJSONSupplier] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('supplier'), 'exclude': lambda f: f is None }}) + bank_account: Optional[GetCompanyConfiguration200ApplicationJSONBankAccount] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('bankAccount'), 'exclude': lambda f: f is None }}) + customer: Optional[GetCompanyConfiguration200ApplicationJSONCustomer] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customer'), 'exclude': lambda f: f is None }}) + supplier: Optional[GetCompanyConfiguration200ApplicationJSONSupplier] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('supplier'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass @@ -46,4 +47,5 @@ class GetCompanyConfigurationResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() get_company_configuration_200_application_json_object: Optional[GetCompanyConfiguration200ApplicationJSON] = dataclasses.field(default=None) + raw_response: Optional[requests.Response] = dataclasses.field(default=None) \ No newline at end of file diff --git a/expenses/src/codat/models/operations/get_last_successful_sync.py b/expenses/src/codat/models/operations/get_last_successful_sync.py index 7b7396ab7..1b8febfbf 100755 --- a/expenses/src/codat/models/operations/get_last_successful_sync.py +++ b/expenses/src/codat/models/operations/get_last_successful_sync.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 @@ -21,14 +22,14 @@ class GetLastSuccessfulSyncRequest: @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetLastSuccessfulSync200ApplicationJSON: - company_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('companyId'), 'exclude': lambda f: f is None }}) - data_pushed: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('dataPushed'), '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 }}) - sync_exception_message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncExceptionMessage'), 'exclude': lambda f: f is None }}) - sync_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncId'), 'exclude': lambda f: f is None }}) - sync_status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncStatus'), 'exclude': lambda f: f is None }}) - sync_status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncStatusCode'), 'exclude': lambda f: f is None }}) - sync_utc: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncUtc'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }}) + company_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('companyId'), 'exclude': lambda f: f is None }}) + data_pushed: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('dataPushed'), '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 }}) + sync_exception_message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncExceptionMessage'), 'exclude': lambda f: f is None }}) + sync_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncId'), 'exclude': lambda f: f is None }}) + sync_status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncStatus'), 'exclude': lambda f: f is None }}) + sync_status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncStatusCode'), 'exclude': lambda f: f is None }}) + sync_utc: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncUtc'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass @@ -36,4 +37,5 @@ class GetLastSuccessfulSyncResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() get_last_successful_sync_200_application_json_object: Optional[GetLastSuccessfulSync200ApplicationJSON] = dataclasses.field(default=None) + raw_response: Optional[requests.Response] = dataclasses.field(default=None) \ No newline at end of file diff --git a/expenses/src/codat/models/operations/get_latest_sync.py b/expenses/src/codat/models/operations/get_latest_sync.py index 79098777d..217ea64c2 100755 --- a/expenses/src/codat/models/operations/get_latest_sync.py +++ b/expenses/src/codat/models/operations/get_latest_sync.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 @@ -21,14 +22,14 @@ class GetLatestSyncRequest: @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetLatestSync200ApplicationJSON: - company_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('companyId'), 'exclude': lambda f: f is None }}) - data_pushed: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('dataPushed'), '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 }}) - sync_exception_message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncExceptionMessage'), 'exclude': lambda f: f is None }}) - sync_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncId'), 'exclude': lambda f: f is None }}) - sync_status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncStatus'), 'exclude': lambda f: f is None }}) - sync_status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncStatusCode'), 'exclude': lambda f: f is None }}) - sync_utc: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncUtc'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }}) + company_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('companyId'), 'exclude': lambda f: f is None }}) + data_pushed: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('dataPushed'), '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 }}) + sync_exception_message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncExceptionMessage'), 'exclude': lambda f: f is None }}) + sync_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncId'), 'exclude': lambda f: f is None }}) + sync_status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncStatus'), 'exclude': lambda f: f is None }}) + sync_status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncStatusCode'), 'exclude': lambda f: f is None }}) + sync_utc: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncUtc'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass @@ -36,4 +37,5 @@ class GetLatestSyncResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() get_latest_sync_200_application_json_object: Optional[GetLatestSync200ApplicationJSON] = dataclasses.field(default=None) + raw_response: Optional[requests.Response] = dataclasses.field(default=None) \ No newline at end of file diff --git a/expenses/src/codat/models/operations/get_mapping_options.py b/expenses/src/codat/models/operations/get_mapping_options.py index 40aa85f4d..913d0327d 100755 --- a/expenses/src/codat/models/operations/get_mapping_options.py +++ b/expenses/src/codat/models/operations/get_mapping_options.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 @@ -39,11 +40,11 @@ class GetMappingOptions200ApplicationJSONAccountsValidTransactionTypesEnum(str, @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetMappingOptions200ApplicationJSONAccounts: - account_type: Optional[GetMappingOptions200ApplicationJSONAccountsAccountTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('accountType'), '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 }}) - id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('id'), 'exclude': lambda f: f is None }}) - name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('name'), 'exclude': lambda f: f is None }}) - valid_transaction_types: Optional[list[GetMappingOptions200ApplicationJSONAccountsValidTransactionTypesEnum]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('validTransactionTypes'), 'exclude': lambda f: f is None }}) + account_type: Optional[GetMappingOptions200ApplicationJSONAccountsAccountTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('accountType'), '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 }}) + id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('id'), 'exclude': lambda f: f is None }}) + name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('name'), 'exclude': lambda f: f is None }}) + valid_transaction_types: Optional[list[GetMappingOptions200ApplicationJSONAccountsValidTransactionTypesEnum]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validTransactionTypes'), 'exclude': lambda f: f is None }}) class GetMappingOptions200ApplicationJSONTaxRatesValidTransactionTypesEnum(str, Enum): PAYMENT = "Payment" @@ -59,31 +60,31 @@ class GetMappingOptions200ApplicationJSONTaxRatesValidTransactionTypesEnum(str, @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetMappingOptions200ApplicationJSONTaxRates: - code: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('code'), 'exclude': lambda f: f is None }}) - effective_tax_rate: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('effectiveTaxRate'), '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 }}) - name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('name'), 'exclude': lambda f: f is None }}) - total_tax_rate: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('totalTaxRate'), 'exclude': lambda f: f is None }}) - valid_transaction_types: Optional[list[GetMappingOptions200ApplicationJSONTaxRatesValidTransactionTypesEnum]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('validTransactionTypes'), 'exclude': lambda f: f is None }}) + code: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('code'), 'exclude': lambda f: f is None }}) + effective_tax_rate: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('effectiveTaxRate'), '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 }}) + name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('name'), 'exclude': lambda f: f is None }}) + total_tax_rate: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('totalTaxRate'), 'exclude': lambda f: f is None }}) + valid_transaction_types: Optional[list[GetMappingOptions200ApplicationJSONTaxRatesValidTransactionTypesEnum]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validTransactionTypes'), 'exclude': lambda f: f is None }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetMappingOptions200ApplicationJSONTrackingCategories: - has_children: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('hasChildren'), '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 }}) - name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('name'), 'exclude': lambda f: f is None }}) - parent_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('parentId'), 'exclude': lambda f: f is None }}) + has_children: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('hasChildren'), '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 }}) + name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('name'), 'exclude': lambda f: f is None }}) + parent_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('parentId'), 'exclude': lambda f: f is None }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetMappingOptions200ApplicationJSON: - accounts: Optional[list[GetMappingOptions200ApplicationJSONAccounts]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('accounts'), 'exclude': lambda f: f is None }}) - expense_provider: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('expenseProvider'), 'exclude': lambda f: f is None }}) - tax_rates: Optional[list[GetMappingOptions200ApplicationJSONTaxRates]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('taxRates'), 'exclude': lambda f: f is None }}) - tracking_categories: Optional[list[GetMappingOptions200ApplicationJSONTrackingCategories]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('trackingCategories'), 'exclude': lambda f: f is None }}) + accounts: Optional[list[GetMappingOptions200ApplicationJSONAccounts]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('accounts'), 'exclude': lambda f: f is None }}) + expense_provider: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('expenseProvider'), 'exclude': lambda f: f is None }}) + tax_rates: Optional[list[GetMappingOptions200ApplicationJSONTaxRates]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('taxRates'), 'exclude': lambda f: f is None }}) + tracking_categories: Optional[list[GetMappingOptions200ApplicationJSONTrackingCategories]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('trackingCategories'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass @@ -91,4 +92,5 @@ class GetMappingOptionsResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() get_mapping_options_200_application_json_object: Optional[GetMappingOptions200ApplicationJSON] = dataclasses.field(default=None) + raw_response: Optional[requests.Response] = dataclasses.field(default=None) \ No newline at end of file diff --git a/expenses/src/codat/models/operations/get_sync_by_id.py b/expenses/src/codat/models/operations/get_sync_by_id.py index 645fbfa51..c5197d1e7 100755 --- a/expenses/src/codat/models/operations/get_sync_by_id.py +++ b/expenses/src/codat/models/operations/get_sync_by_id.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 @@ -22,14 +23,14 @@ class GetSyncByIDRequest: @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetSyncByID200ApplicationJSON: - company_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('companyId'), 'exclude': lambda f: f is None }}) - data_pushed: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('dataPushed'), '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 }}) - sync_exception_message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncExceptionMessage'), 'exclude': lambda f: f is None }}) - sync_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncId'), 'exclude': lambda f: f is None }}) - sync_status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncStatus'), 'exclude': lambda f: f is None }}) - sync_status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncStatusCode'), 'exclude': lambda f: f is None }}) - sync_utc: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncUtc'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }}) + company_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('companyId'), 'exclude': lambda f: f is None }}) + data_pushed: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('dataPushed'), '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 }}) + sync_exception_message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncExceptionMessage'), 'exclude': lambda f: f is None }}) + sync_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncId'), 'exclude': lambda f: f is None }}) + sync_status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncStatus'), 'exclude': lambda f: f is None }}) + sync_status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncStatusCode'), 'exclude': lambda f: f is None }}) + sync_utc: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncUtc'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass @@ -37,4 +38,5 @@ class GetSyncByIDResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() get_sync_by_id_200_application_json_object: Optional[GetSyncByID200ApplicationJSON] = dataclasses.field(default=None) + raw_response: Optional[requests.Response] = dataclasses.field(default=None) \ No newline at end of file diff --git a/expenses/src/codat/models/operations/get_sync_transaction.py b/expenses/src/codat/models/operations/get_sync_transaction.py index 2905516a2..e9d465d95 100755 --- a/expenses/src/codat/models/operations/get_sync_transaction.py +++ b/expenses/src/codat/models/operations/get_sync_transaction.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 @@ -32,10 +33,10 @@ class GetSyncTransaction200ApplicationJSONStatusEnum(str, Enum): @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetSyncTransaction200ApplicationJSON: - integration_type: Optional[GetSyncTransaction200ApplicationJSONIntegrationTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('integrationType'), '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 }}) - status: Optional[GetSyncTransaction200ApplicationJSONStatusEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('status'), 'exclude': lambda f: f is None }}) - transaction_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('transactionId'), 'exclude': lambda f: f is None }}) + integration_type: Optional[GetSyncTransaction200ApplicationJSONIntegrationTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('integrationType'), '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 }}) + status: Optional[GetSyncTransaction200ApplicationJSONStatusEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('status'), 'exclude': lambda f: f is None }}) + transaction_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('transactionId'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass @@ -43,4 +44,5 @@ class GetSyncTransactionResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() get_sync_transaction_200_application_json_objects: Optional[list[GetSyncTransaction200ApplicationJSON]] = dataclasses.field(default=None) + raw_response: Optional[requests.Response] = dataclasses.field(default=None) \ No newline at end of file diff --git a/expenses/src/codat/models/operations/get_sync_transactions.py b/expenses/src/codat/models/operations/get_sync_transactions.py index d18df4a0e..1803fe8fd 100755 --- a/expenses/src/codat/models/operations/get_sync_transactions.py +++ b/expenses/src/codat/models/operations/get_sync_transactions.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 @@ -27,7 +28,7 @@ class GetSyncTransactionsRequest: @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetSyncTransactions200ApplicationJSONHalLink: - href: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('href'), 'exclude': lambda f: f is None }}) + href: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('href'), 'exclude': lambda f: f is None }}) class GetSyncTransactions200ApplicationJSONResultsIntegrationTypeEnum(str, Enum): EXPENSES = "expenses" @@ -44,20 +45,20 @@ class GetSyncTransactions200ApplicationJSONResultsStatusEnum(str, Enum): @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetSyncTransactions200ApplicationJSONResults: - integration_type: Optional[GetSyncTransactions200ApplicationJSONResultsIntegrationTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('integrationType'), '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 }}) - status: Optional[GetSyncTransactions200ApplicationJSONResultsStatusEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('status'), 'exclude': lambda f: f is None }}) - transaction_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('transactionId'), 'exclude': lambda f: f is None }}) + integration_type: Optional[GetSyncTransactions200ApplicationJSONResultsIntegrationTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('integrationType'), '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 }}) + status: Optional[GetSyncTransactions200ApplicationJSONResultsStatusEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('status'), 'exclude': lambda f: f is None }}) + transaction_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('transactionId'), 'exclude': lambda f: f is None }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetSyncTransactions200ApplicationJSON: - 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') }}) - links: Optional[dict[str, GetSyncTransactions200ApplicationJSONHalLink]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('links'), 'exclude': lambda f: f is None }}) - results: Optional[list[GetSyncTransactions200ApplicationJSONResults]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('results'), 'exclude': lambda f: f is None }}) + 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') }}) + links: Optional[dict[str, GetSyncTransactions200ApplicationJSONHalLink]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('links'), 'exclude': lambda f: f is None }}) + results: Optional[list[GetSyncTransactions200ApplicationJSONResults]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('results'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass @@ -65,4 +66,5 @@ class GetSyncTransactionsResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() get_sync_transactions_200_application_json_object: Optional[GetSyncTransactions200ApplicationJSON] = dataclasses.field(default=None) + raw_response: Optional[requests.Response] = dataclasses.field(default=None) \ No newline at end of file diff --git a/expenses/src/codat/models/operations/intiate_sync.py b/expenses/src/codat/models/operations/intiate_sync.py index 0ddc258d6..7acb068ea 100755 --- a/expenses/src/codat/models/operations/intiate_sync.py +++ b/expenses/src/codat/models/operations/intiate_sync.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 typing import Optional @@ -13,7 +14,7 @@ class IntiateSyncPathParams: @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class IntiateSyncRequestBody: - dataset_ids: Optional[list[str]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('datasetIds'), 'exclude': lambda f: f is None }}) + dataset_ids: Optional[list[str]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('datasetIds'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass @@ -25,160 +26,160 @@ class IntiateSyncRequest: @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class IntiateSync422ApplicationJSONValidationErrors: - 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 }}) - rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ruleId'), '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 }}) + rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ruleId'), '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) @dataclasses.dataclass class IntiateSync422ApplicationJSONValidationInternals: - 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 }}) - rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ruleId'), '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 }}) + rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ruleId'), '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) @dataclasses.dataclass class IntiateSync422ApplicationJSONValidationWarnings: - 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 }}) - rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ruleId'), '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 }}) + rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ruleId'), '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) @dataclasses.dataclass class IntiateSync422ApplicationJSONValidation: - errors: Optional[list[IntiateSync422ApplicationJSONValidationErrors]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('errors'), 'exclude': lambda f: f is None }}) - has_errors: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('hasErrors'), 'exclude': lambda f: f is None }}) - has_internals: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('hasInternals'), 'exclude': lambda f: f is None }}) - has_warnings: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('hasWarnings'), 'exclude': lambda f: f is None }}) - internals: Optional[list[IntiateSync422ApplicationJSONValidationInternals]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('internals'), 'exclude': lambda f: f is None }}) - warnings: Optional[list[IntiateSync422ApplicationJSONValidationWarnings]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('warnings'), 'exclude': lambda f: f is None }}) + errors: Optional[list[IntiateSync422ApplicationJSONValidationErrors]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('errors'), 'exclude': lambda f: f is None }}) + has_errors: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('hasErrors'), 'exclude': lambda f: f is None }}) + has_internals: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('hasInternals'), 'exclude': lambda f: f is None }}) + has_warnings: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('hasWarnings'), 'exclude': lambda f: f is None }}) + internals: Optional[list[IntiateSync422ApplicationJSONValidationInternals]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('internals'), 'exclude': lambda f: f is None }}) + warnings: Optional[list[IntiateSync422ApplicationJSONValidationWarnings]] = 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 IntiateSync422ApplicationJSON: - can_be_retried: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('canBeRetried'), 'exclude': lambda f: f is None }}) - correlation_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('correlationId'), 'exclude': lambda f: f is None }}) - detailed_error_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('detailedErrorCode'), 'exclude': lambda f: f is None }}) - error: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('error'), 'exclude': lambda f: f is None }}) - inner: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('inner'), 'exclude': lambda f: f is None }}) - service: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('service'), 'exclude': lambda f: f is None }}) - status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('statusCode'), 'exclude': lambda f: f is None }}) - validation: Optional[IntiateSync422ApplicationJSONValidation] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('validation'), 'exclude': lambda f: f is None }}) + can_be_retried: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('canBeRetried'), 'exclude': lambda f: f is None }}) + correlation_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('correlationId'), 'exclude': lambda f: f is None }}) + detailed_error_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('detailedErrorCode'), 'exclude': lambda f: f is None }}) + error: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('error'), 'exclude': lambda f: f is None }}) + inner: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('inner'), 'exclude': lambda f: f is None }}) + service: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('service'), 'exclude': lambda f: f is None }}) + status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('statusCode'), 'exclude': lambda f: f is None }}) + validation: Optional[IntiateSync422ApplicationJSONValidation] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class IntiateSync404ApplicationJSONValidationErrors: - 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 }}) - rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ruleId'), '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 }}) + rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ruleId'), '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) @dataclasses.dataclass class IntiateSync404ApplicationJSONValidationInternals: - 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 }}) - rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ruleId'), '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 }}) + rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ruleId'), '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) @dataclasses.dataclass class IntiateSync404ApplicationJSONValidationWarnings: - 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 }}) - rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ruleId'), '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 }}) + rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ruleId'), '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) @dataclasses.dataclass class IntiateSync404ApplicationJSONValidation: - errors: Optional[list[IntiateSync404ApplicationJSONValidationErrors]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('errors'), 'exclude': lambda f: f is None }}) - has_errors: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('hasErrors'), 'exclude': lambda f: f is None }}) - has_internals: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('hasInternals'), 'exclude': lambda f: f is None }}) - has_warnings: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('hasWarnings'), 'exclude': lambda f: f is None }}) - internals: Optional[list[IntiateSync404ApplicationJSONValidationInternals]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('internals'), 'exclude': lambda f: f is None }}) - warnings: Optional[list[IntiateSync404ApplicationJSONValidationWarnings]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('warnings'), 'exclude': lambda f: f is None }}) + errors: Optional[list[IntiateSync404ApplicationJSONValidationErrors]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('errors'), 'exclude': lambda f: f is None }}) + has_errors: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('hasErrors'), 'exclude': lambda f: f is None }}) + has_internals: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('hasInternals'), 'exclude': lambda f: f is None }}) + has_warnings: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('hasWarnings'), 'exclude': lambda f: f is None }}) + internals: Optional[list[IntiateSync404ApplicationJSONValidationInternals]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('internals'), 'exclude': lambda f: f is None }}) + warnings: Optional[list[IntiateSync404ApplicationJSONValidationWarnings]] = 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 IntiateSync404ApplicationJSON: - can_be_retried: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('canBeRetried'), 'exclude': lambda f: f is None }}) - correlation_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('correlationId'), 'exclude': lambda f: f is None }}) - detailed_error_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('detailedErrorCode'), 'exclude': lambda f: f is None }}) - error: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('error'), 'exclude': lambda f: f is None }}) - inner: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('inner'), 'exclude': lambda f: f is None }}) - service: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('service'), 'exclude': lambda f: f is None }}) - status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('statusCode'), 'exclude': lambda f: f is None }}) - validation: Optional[IntiateSync404ApplicationJSONValidation] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('validation'), 'exclude': lambda f: f is None }}) + can_be_retried: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('canBeRetried'), 'exclude': lambda f: f is None }}) + correlation_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('correlationId'), 'exclude': lambda f: f is None }}) + detailed_error_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('detailedErrorCode'), 'exclude': lambda f: f is None }}) + error: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('error'), 'exclude': lambda f: f is None }}) + inner: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('inner'), 'exclude': lambda f: f is None }}) + service: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('service'), 'exclude': lambda f: f is None }}) + status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('statusCode'), 'exclude': lambda f: f is None }}) + validation: Optional[IntiateSync404ApplicationJSONValidation] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class IntiateSync400ApplicationJSONValidationErrors: - 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 }}) - rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ruleId'), '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 }}) + rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ruleId'), '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) @dataclasses.dataclass class IntiateSync400ApplicationJSONValidationInternals: - 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 }}) - rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ruleId'), '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 }}) + rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ruleId'), '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) @dataclasses.dataclass class IntiateSync400ApplicationJSONValidationWarnings: - 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 }}) - rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ruleId'), '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 }}) + rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ruleId'), '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) @dataclasses.dataclass class IntiateSync400ApplicationJSONValidation: - errors: Optional[list[IntiateSync400ApplicationJSONValidationErrors]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('errors'), 'exclude': lambda f: f is None }}) - has_errors: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('hasErrors'), 'exclude': lambda f: f is None }}) - has_internals: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('hasInternals'), 'exclude': lambda f: f is None }}) - has_warnings: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('hasWarnings'), 'exclude': lambda f: f is None }}) - internals: Optional[list[IntiateSync400ApplicationJSONValidationInternals]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('internals'), 'exclude': lambda f: f is None }}) - warnings: Optional[list[IntiateSync400ApplicationJSONValidationWarnings]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('warnings'), 'exclude': lambda f: f is None }}) + errors: Optional[list[IntiateSync400ApplicationJSONValidationErrors]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('errors'), 'exclude': lambda f: f is None }}) + has_errors: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('hasErrors'), 'exclude': lambda f: f is None }}) + has_internals: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('hasInternals'), 'exclude': lambda f: f is None }}) + has_warnings: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('hasWarnings'), 'exclude': lambda f: f is None }}) + internals: Optional[list[IntiateSync400ApplicationJSONValidationInternals]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('internals'), 'exclude': lambda f: f is None }}) + warnings: Optional[list[IntiateSync400ApplicationJSONValidationWarnings]] = 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 IntiateSync400ApplicationJSON: - can_be_retried: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('canBeRetried'), 'exclude': lambda f: f is None }}) - correlation_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('correlationId'), 'exclude': lambda f: f is None }}) - detailed_error_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('detailedErrorCode'), 'exclude': lambda f: f is None }}) - error: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('error'), 'exclude': lambda f: f is None }}) - inner: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('inner'), 'exclude': lambda f: f is None }}) - service: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('service'), 'exclude': lambda f: f is None }}) - status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('statusCode'), 'exclude': lambda f: f is None }}) - validation: Optional[IntiateSync400ApplicationJSONValidation] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('validation'), 'exclude': lambda f: f is None }}) + can_be_retried: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('canBeRetried'), 'exclude': lambda f: f is None }}) + correlation_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('correlationId'), 'exclude': lambda f: f is None }}) + detailed_error_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('detailedErrorCode'), 'exclude': lambda f: f is None }}) + error: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('error'), 'exclude': lambda f: f is None }}) + inner: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('inner'), 'exclude': lambda f: f is None }}) + service: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('service'), 'exclude': lambda f: f is None }}) + status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('statusCode'), 'exclude': lambda f: f is None }}) + validation: Optional[IntiateSync400ApplicationJSONValidation] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class IntiateSync202ApplicationJSON: - sync_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncId'), 'exclude': lambda f: f is None }}) + sync_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncId'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass @@ -189,4 +190,5 @@ class IntiateSyncResponse: intiate_sync_400_application_json_object: Optional[IntiateSync400ApplicationJSON] = dataclasses.field(default=None) intiate_sync_404_application_json_object: Optional[IntiateSync404ApplicationJSON] = dataclasses.field(default=None) intiate_sync_422_application_json_object: Optional[IntiateSync422ApplicationJSON] = dataclasses.field(default=None) + raw_response: Optional[requests.Response] = dataclasses.field(default=None) \ No newline at end of file diff --git a/expenses/src/codat/models/operations/list_syncs.py b/expenses/src/codat/models/operations/list_syncs.py index bc9cff898..08df24076 100755 --- a/expenses/src/codat/models/operations/list_syncs.py +++ b/expenses/src/codat/models/operations/list_syncs.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 @@ -21,14 +22,14 @@ class ListSyncsRequest: @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class ListSyncs200ApplicationJSON: - company_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('companyId'), 'exclude': lambda f: f is None }}) - data_pushed: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('dataPushed'), '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 }}) - sync_exception_message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncExceptionMessage'), 'exclude': lambda f: f is None }}) - sync_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncId'), 'exclude': lambda f: f is None }}) - sync_status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncStatus'), 'exclude': lambda f: f is None }}) - sync_status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncStatusCode'), 'exclude': lambda f: f is None }}) - sync_utc: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('syncUtc'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }}) + company_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('companyId'), 'exclude': lambda f: f is None }}) + data_pushed: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('dataPushed'), '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 }}) + sync_exception_message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncExceptionMessage'), 'exclude': lambda f: f is None }}) + sync_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncId'), 'exclude': lambda f: f is None }}) + sync_status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncStatus'), 'exclude': lambda f: f is None }}) + sync_status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncStatusCode'), 'exclude': lambda f: f is None }}) + sync_utc: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('syncUtc'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass @@ -36,4 +37,5 @@ class ListSyncsResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() list_syncs_200_application_json_objects: Optional[list[ListSyncs200ApplicationJSON]] = dataclasses.field(default=None) + raw_response: Optional[requests.Response] = dataclasses.field(default=None) \ No newline at end of file diff --git a/expenses/src/codat/models/operations/save_company_configuration.py b/expenses/src/codat/models/operations/save_company_configuration.py index f9f2de465..21603c944 100755 --- a/expenses/src/codat/models/operations/save_company_configuration.py +++ b/expenses/src/codat/models/operations/save_company_configuration.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 typing import Optional @@ -13,27 +14,27 @@ class SaveCompanyConfigurationPathParams: @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class SaveCompanyConfigurationRequestBodyBankAccount: - id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('id'), '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 }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class SaveCompanyConfigurationRequestBodyCustomer: - id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('id'), '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 }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class SaveCompanyConfigurationRequestBodySupplier: - id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('id'), '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 }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class SaveCompanyConfigurationRequestBody: - bank_account: Optional[SaveCompanyConfigurationRequestBodyBankAccount] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('bankAccount'), 'exclude': lambda f: f is None }}) - customer: Optional[SaveCompanyConfigurationRequestBodyCustomer] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('customer'), 'exclude': lambda f: f is None }}) - supplier: Optional[SaveCompanyConfigurationRequestBodySupplier] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('supplier'), 'exclude': lambda f: f is None }}) + bank_account: Optional[SaveCompanyConfigurationRequestBodyBankAccount] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('bankAccount'), 'exclude': lambda f: f is None }}) + customer: Optional[SaveCompanyConfigurationRequestBodyCustomer] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customer'), 'exclude': lambda f: f is None }}) + supplier: Optional[SaveCompanyConfigurationRequestBodySupplier] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('supplier'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass @@ -45,84 +46,85 @@ class SaveCompanyConfigurationRequest: @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class SaveCompanyConfiguration400ApplicationJSONValidationErrors: - 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 }}) - rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ruleId'), '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 }}) + rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ruleId'), '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) @dataclasses.dataclass class SaveCompanyConfiguration400ApplicationJSONValidationInternals: - 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 }}) - rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ruleId'), '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 }}) + rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ruleId'), '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) @dataclasses.dataclass class SaveCompanyConfiguration400ApplicationJSONValidationWarnings: - 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 }}) - rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ruleId'), '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 }}) + rule_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ruleId'), '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) @dataclasses.dataclass class SaveCompanyConfiguration400ApplicationJSONValidation: - errors: Optional[list[SaveCompanyConfiguration400ApplicationJSONValidationErrors]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('errors'), 'exclude': lambda f: f is None }}) - has_errors: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('hasErrors'), 'exclude': lambda f: f is None }}) - has_internals: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('hasInternals'), 'exclude': lambda f: f is None }}) - has_warnings: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('hasWarnings'), 'exclude': lambda f: f is None }}) - internals: Optional[list[SaveCompanyConfiguration400ApplicationJSONValidationInternals]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('internals'), 'exclude': lambda f: f is None }}) - warnings: Optional[list[SaveCompanyConfiguration400ApplicationJSONValidationWarnings]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('warnings'), 'exclude': lambda f: f is None }}) + errors: Optional[list[SaveCompanyConfiguration400ApplicationJSONValidationErrors]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('errors'), 'exclude': lambda f: f is None }}) + has_errors: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('hasErrors'), 'exclude': lambda f: f is None }}) + has_internals: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('hasInternals'), 'exclude': lambda f: f is None }}) + has_warnings: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('hasWarnings'), 'exclude': lambda f: f is None }}) + internals: Optional[list[SaveCompanyConfiguration400ApplicationJSONValidationInternals]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('internals'), 'exclude': lambda f: f is None }}) + warnings: Optional[list[SaveCompanyConfiguration400ApplicationJSONValidationWarnings]] = 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 SaveCompanyConfiguration400ApplicationJSON: - can_be_retried: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('canBeRetried'), 'exclude': lambda f: f is None }}) - correlation_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('correlationId'), 'exclude': lambda f: f is None }}) - detailed_error_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('detailedErrorCode'), 'exclude': lambda f: f is None }}) - error: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('error'), 'exclude': lambda f: f is None }}) - inner: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('inner'), 'exclude': lambda f: f is None }}) - service: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('service'), 'exclude': lambda f: f is None }}) - status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('statusCode'), 'exclude': lambda f: f is None }}) - validation: Optional[SaveCompanyConfiguration400ApplicationJSONValidation] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('validation'), 'exclude': lambda f: f is None }}) + can_be_retried: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('canBeRetried'), 'exclude': lambda f: f is None }}) + correlation_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('correlationId'), 'exclude': lambda f: f is None }}) + detailed_error_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('detailedErrorCode'), 'exclude': lambda f: f is None }}) + error: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('error'), 'exclude': lambda f: f is None }}) + inner: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('inner'), 'exclude': lambda f: f is None }}) + service: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('service'), 'exclude': lambda f: f is None }}) + status_code: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('statusCode'), 'exclude': lambda f: f is None }}) + validation: Optional[SaveCompanyConfiguration400ApplicationJSONValidation] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class SaveCompanyConfiguration200ApplicationJSONBankAccount: - id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('id'), '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 }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class SaveCompanyConfiguration200ApplicationJSONCustomer: - id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('id'), '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 }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class SaveCompanyConfiguration200ApplicationJSONSupplier: - id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('id'), '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 }}) @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class SaveCompanyConfiguration200ApplicationJSON: - bank_account: Optional[SaveCompanyConfiguration200ApplicationJSONBankAccount] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('bankAccount'), 'exclude': lambda f: f is None }}) - customer: Optional[SaveCompanyConfiguration200ApplicationJSONCustomer] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('customer'), 'exclude': lambda f: f is None }}) - supplier: Optional[SaveCompanyConfiguration200ApplicationJSONSupplier] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('supplier'), 'exclude': lambda f: f is None }}) + bank_account: Optional[SaveCompanyConfiguration200ApplicationJSONBankAccount] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('bankAccount'), 'exclude': lambda f: f is None }}) + customer: Optional[SaveCompanyConfiguration200ApplicationJSONCustomer] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('customer'), 'exclude': lambda f: f is None }}) + supplier: Optional[SaveCompanyConfiguration200ApplicationJSONSupplier] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('supplier'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass class SaveCompanyConfigurationResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() + raw_response: Optional[requests.Response] = dataclasses.field(default=None) save_company_configuration_200_application_json_object: Optional[SaveCompanyConfiguration200ApplicationJSON] = dataclasses.field(default=None) save_company_configuration_400_application_json_object: Optional[SaveCompanyConfiguration400ApplicationJSON] = dataclasses.field(default=None) \ No newline at end of file diff --git a/expenses/src/codat/models/operations/upload_attachment.py b/expenses/src/codat/models/operations/upload_attachment.py index d6a505a97..14038def2 100755 --- a/expenses/src/codat/models/operations/upload_attachment.py +++ b/expenses/src/codat/models/operations/upload_attachment.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 typing import Optional @@ -20,14 +21,15 @@ class UploadAttachmentRequest: @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class UploadAttachment200ApplicationJSON: - company_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('companyId'), '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 }}) - transaction_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('transactionId'), 'exclude': lambda f: f is None }}) + company_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('companyId'), '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 }}) + transaction_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('transactionId'), 'exclude': lambda f: f is None }}) @dataclasses.dataclass class UploadAttachmentResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() + raw_response: Optional[requests.Response] = dataclasses.field(default=None) upload_attachment_200_application_json_object: Optional[UploadAttachment200ApplicationJSON] = dataclasses.field(default=None) \ No newline at end of file diff --git a/expenses/src/codat/models/shared/__init__.py b/expenses/src/codat/models/shared/__init__.py index b6972b92a..ade20fff1 100755 --- a/expenses/src/codat/models/shared/__init__.py +++ b/expenses/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/expenses/src/codat/models/shared/security.py b/expenses/src/codat/models/shared/security.py index 5c185f28f..72db7f899 100755 --- a/expenses/src/codat/models/shared/security.py +++ b/expenses/src/codat/models/shared/security.py @@ -2,8 +2,7 @@ import dataclasses - @dataclasses.dataclass class Security: - authorization: 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/expenses/src/codat/sdk.py b/expenses/src/codat/sdk.py index f7b37dcff..ce837a091 100755 --- a/expenses/src/codat/sdk.py +++ b/expenses/src/codat/sdk.py @@ -1,4 +1,9 @@ +__doc__ = """ SDK Documentation: The API for Sync for Expenses. +Sync for Expenses is an API and a set of supporting tools. It has been built to enable corporate card and expense management platforms to provide high-quality integrations with multiple accounting platforms through a standardized API. +[Read more...](https://docs.codat.io/sync-for-expenses/overview) + +[See our OpenAPI spec](https://github.com/codatio/oas)""" import requests from . import utils from .configuration import Configuration @@ -14,9 +19,13 @@ "https://expensesync.codat.io", ] - class Codat: + r"""SDK Documentation: The API for Sync for Expenses. + Sync for Expenses is an API and a set of supporting tools. It has been built to enable corporate card and expense management platforms to provide high-quality integrations with multiple accounting platforms through a standardized API. + + [Read more...](https://docs.codat.io/sync-for-expenses/overview) + [See our OpenAPI spec](https://github.com/codatio/oas)""" configuration: Configuration connections: Connections expenses: Expenses @@ -24,29 +33,29 @@ class Codat: sync: Sync sync_status: SyncStatus transaction_status: TransactionStatus - + _client: requests.Session _security_client: requests.Session _security: shared.Security _server_url: str = SERVERS[0] _language: str = "python" - _sdk_version: str = "0.1.2" - _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 @@ -55,15 +64,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.configuration = Configuration( self._client, self._security_client, @@ -126,5 +132,5 @@ def _init_sdks(self): self._sdk_version, self._gen_version ) - + \ No newline at end of file diff --git a/expenses/src/codat/sync.py b/expenses/src/codat/sync.py index 16c7ce40a..e14738c51 100755 --- a/expenses/src/codat/sync.py +++ b/expenses/src/codat/sync.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 intiate_sync(self, request: operations.IntiateSyncRequest) -> operations.IntiateSyncResponse: r"""Initiate sync Initiate sync of pending transactions. @@ -27,35 +26,35 @@ def intiate_sync(self, request: operations.IntiateSyncRequest) -> operations.Int base_url = self._server_url - url = utils.generate_url(base_url, "/companies/{companyId}/syncs", request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/syncs', 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 = self._security_client - r = client.request("POST", url, data=data, files=form, headers=headers) - content_type = r.headers.get("Content-Type") + http_res = client.request('POST', url, data=data, files=form, headers=headers) + content_type = http_res.headers.get('Content-Type') - res = operations.IntiateSyncResponse(status_code=r.status_code, content_type=content_type) + res = operations.IntiateSyncResponse(status_code=http_res.status_code, content_type=content_type, raw_response=http_res) - if r.status_code == 202: - if utils.match_content_type(content_type, "application/json"): - out = utils.unmarshal_json(r.text, Optional[operations.IntiateSync202ApplicationJSON]) + if http_res.status_code == 202: + if utils.match_content_type(content_type, 'application/json'): + out = utils.unmarshal_json(http_res.text, Optional[operations.IntiateSync202ApplicationJSON]) res.intiate_sync_202_application_json_object = out - elif r.status_code == 400: - if utils.match_content_type(content_type, "application/json"): - out = utils.unmarshal_json(r.text, Optional[operations.IntiateSync400ApplicationJSON]) + elif http_res.status_code == 400: + if utils.match_content_type(content_type, 'application/json'): + out = utils.unmarshal_json(http_res.text, Optional[operations.IntiateSync400ApplicationJSON]) res.intiate_sync_400_application_json_object = out - elif r.status_code == 404: - if utils.match_content_type(content_type, "application/json"): - out = utils.unmarshal_json(r.text, Optional[operations.IntiateSync404ApplicationJSON]) + elif http_res.status_code == 404: + if utils.match_content_type(content_type, 'application/json'): + out = utils.unmarshal_json(http_res.text, Optional[operations.IntiateSync404ApplicationJSON]) res.intiate_sync_404_application_json_object = out - elif r.status_code == 422: - if utils.match_content_type(content_type, "application/json"): - out = utils.unmarshal_json(r.text, Optional[operations.IntiateSync422ApplicationJSON]) + elif http_res.status_code == 422: + if utils.match_content_type(content_type, 'application/json'): + out = utils.unmarshal_json(http_res.text, Optional[operations.IntiateSync422ApplicationJSON]) res.intiate_sync_422_application_json_object = out return res diff --git a/expenses/src/codat/sync_status.py b/expenses/src/codat/sync_status.py index 8d77fbe55..dc6a573bb 100755 --- a/expenses/src/codat/sync_status.py +++ b/expenses/src/codat/sync_status.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_last_successful_sync(self, request: operations.GetLastSuccessfulSyncRequest) -> operations.GetLastSuccessfulSyncResponse: r"""Last successful sync Gets the status of the last successfull sync @@ -27,24 +26,23 @@ def get_last_successful_sync(self, request: operations.GetLastSuccessfulSyncRequ base_url = self._server_url - url = utils.generate_url(base_url, "/companies/{companyId}/syncs/lastSuccessful/status", request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/syncs/lastSuccessful/status', request.path_params) client = self._security_client - r = client.request("GET", url) - content_type = r.headers.get("Content-Type") + http_res = client.request('GET', url) + content_type = http_res.headers.get('Content-Type') - res = operations.GetLastSuccessfulSyncResponse(status_code=r.status_code, content_type=content_type) + res = operations.GetLastSuccessfulSyncResponse(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.GetLastSuccessfulSync200ApplicationJSON]) + if http_res.status_code == 200: + if utils.match_content_type(content_type, 'application/json'): + out = utils.unmarshal_json(http_res.text, Optional[operations.GetLastSuccessfulSync200ApplicationJSON]) res.get_last_successful_sync_200_application_json_object = out return res - def get_latest_sync(self, request: operations.GetLatestSyncRequest) -> operations.GetLatestSyncResponse: r"""Latest sync status Gets the latest sync status @@ -52,24 +50,23 @@ def get_latest_sync(self, request: operations.GetLatestSyncRequest) -> operation base_url = self._server_url - url = utils.generate_url(base_url, "/companies/{companyId}/syncs/latest/status", request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/syncs/latest/status', request.path_params) client = self._security_client - r = client.request("GET", url) - content_type = r.headers.get("Content-Type") + http_res = client.request('GET', url) + content_type = http_res.headers.get('Content-Type') - res = operations.GetLatestSyncResponse(status_code=r.status_code, content_type=content_type) + res = operations.GetLatestSyncResponse(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.GetLatestSync200ApplicationJSON]) + if http_res.status_code == 200: + if utils.match_content_type(content_type, 'application/json'): + out = utils.unmarshal_json(http_res.text, Optional[operations.GetLatestSync200ApplicationJSON]) res.get_latest_sync_200_application_json_object = out return res - def get_sync_by_id(self, request: operations.GetSyncByIDRequest) -> operations.GetSyncByIDResponse: r"""Get Sync status Get the sync status for a specified sync @@ -77,24 +74,23 @@ def get_sync_by_id(self, request: operations.GetSyncByIDRequest) -> operations.G base_url = self._server_url - url = utils.generate_url(base_url, "/companies/{companyId}/syncs/{syncId}/status", request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/syncs/{syncId}/status', request.path_params) client = self._security_client - r = client.request("GET", url) - content_type = r.headers.get("Content-Type") + http_res = client.request('GET', url) + content_type = http_res.headers.get('Content-Type') - res = operations.GetSyncByIDResponse(status_code=r.status_code, content_type=content_type) + res = operations.GetSyncByIDResponse(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.GetSyncByID200ApplicationJSON]) + if http_res.status_code == 200: + if utils.match_content_type(content_type, 'application/json'): + out = utils.unmarshal_json(http_res.text, Optional[operations.GetSyncByID200ApplicationJSON]) res.get_sync_by_id_200_application_json_object = out return res - def list_syncs(self, request: operations.ListSyncsRequest) -> operations.ListSyncsResponse: r"""List sync statuses Gets a list of sync statuses @@ -102,19 +98,19 @@ def list_syncs(self, request: operations.ListSyncsRequest) -> operations.ListSyn base_url = self._server_url - url = utils.generate_url(base_url, "/companies/{companyId}/syncs/list/status", request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/syncs/list/status', request.path_params) client = self._security_client - r = client.request("GET", url) - content_type = r.headers.get("Content-Type") + http_res = client.request('GET', url) + content_type = http_res.headers.get('Content-Type') - res = operations.ListSyncsResponse(status_code=r.status_code, content_type=content_type) + res = operations.ListSyncsResponse(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.ListSyncs200ApplicationJSON]]) + 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.ListSyncs200ApplicationJSON]]) res.list_syncs_200_application_json_objects = out return res diff --git a/expenses/src/codat/transaction_status.py b/expenses/src/codat/transaction_status.py index bfd8cbc31..c00d0697e 100755 --- a/expenses/src/codat/transaction_status.py +++ b/expenses/src/codat/transaction_status.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_sync_transaction(self, request: operations.GetSyncTransactionRequest) -> operations.GetSyncTransactionResponse: r"""Get Sync Transaction Gets the status of a transaction for a sync @@ -27,24 +26,23 @@ def get_sync_transaction(self, request: operations.GetSyncTransactionRequest) -> base_url = self._server_url - url = utils.generate_url(base_url, "/companies/{companyId}/syncs/{syncId}/transactions/{transactionId}", request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/syncs/{syncId}/transactions/{transactionId}', request.path_params) client = self._security_client - r = client.request("GET", url) - content_type = r.headers.get("Content-Type") + http_res = client.request('GET', url) + content_type = http_res.headers.get('Content-Type') - res = operations.GetSyncTransactionResponse(status_code=r.status_code, content_type=content_type) + res = operations.GetSyncTransactionResponse(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.GetSyncTransaction200ApplicationJSON]]) + 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.GetSyncTransaction200ApplicationJSON]]) res.get_sync_transaction_200_application_json_objects = out return res - def get_sync_transactions(self, request: operations.GetSyncTransactionsRequest) -> operations.GetSyncTransactionsResponse: r"""Get Sync transactions Get's the transactions and status for a sync @@ -52,20 +50,20 @@ def get_sync_transactions(self, request: operations.GetSyncTransactionsRequest) base_url = self._server_url - url = utils.generate_url(base_url, "/companies/{companyId}/syncs/{syncId}/transactions", request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/syncs/{syncId}/transactions', request.path_params) query_params = utils.get_query_params(request.query_params) 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.GetSyncTransactionsResponse(status_code=r.status_code, content_type=content_type) + res = operations.GetSyncTransactionsResponse(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.GetSyncTransactions200ApplicationJSON]) + if http_res.status_code == 200: + if utils.match_content_type(content_type, 'application/json'): + out = utils.unmarshal_json(http_res.text, Optional[operations.GetSyncTransactions200ApplicationJSON]) res.get_sync_transactions_200_application_json_object = out return res diff --git a/expenses/src/codat/utils/retries.py b/expenses/src/codat/utils/retries.py index 983d0d462..515316ba8 100755 --- a/expenses/src/codat/utils/retries.py +++ b/expenses/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/expenses/src/codat/utils/utils.py b/expenses/src/codat/utils/utils.py index e9bf17b97..d900928b2 100755 --- a/expenses/src/codat/utils/utils.py +++ b/expenses/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 53122f4deb5ac765ab96b214716c7ea09aaaf748 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Mon, 6 Mar 2023 00:15:22 +0000 Subject: [PATCH 3/9] ci: regenerated with OpenAPI Doc prealpha, Speakeay CLI 1.8.4 --- expenses/RELEASES.md | 10 +++++++++- expenses/gen.yaml | 4 ++-- expenses/setup.py | 2 +- expenses/src/codat/sdk.py | 4 ++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/expenses/RELEASES.md b/expenses/RELEASES.md index 17de7cda4..76329d7f0 100644 --- a/expenses/RELEASES.md +++ b/expenses/RELEASES.md @@ -30,4 +30,12 @@ Based on: - OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml - Speakeasy CLI 1.8.2 https://github.com/speakeasy-api/speakeasy ### Releases -- [PyPI v0.2.0] https://pypi.org/project/codat-expenses/0.2.0 - expenses \ No newline at end of file +- [PyPI v0.2.0] https://pypi.org/project/codat-expenses/0.2.0 - expenses + +## 2023-03-06 00:15:17 +### Changes +Based on: +- OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml +- Speakeasy CLI 1.8.4 https://github.com/speakeasy-api/speakeasy +### Releases +- [PyPI v0.2.1] https://pypi.org/project/codat-expenses/0.2.1 - expenses \ No newline at end of file diff --git a/expenses/gen.yaml b/expenses/gen.yaml index df80d124a..6daa41776 100644 --- a/expenses/gen.yaml +++ b/expenses/gen.yaml @@ -2,13 +2,13 @@ configVersion: 1.0.0 management: docChecksum: 259b149106f47d9de9efe243f42c410e docVersion: prealpha - 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-expenses diff --git a/expenses/setup.py b/expenses/setup.py index 30a94b665..e12d80a2f 100755 --- a/expenses/setup.py +++ b/expenses/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-expenses", - version="0.2.0", + version="0.2.1", author="Speakeasy", description="Python Client SDK Generated by Speakeasy", long_description=long_description, diff --git a/expenses/src/codat/sdk.py b/expenses/src/codat/sdk.py index ce837a091..41bf76b59 100755 --- a/expenses/src/codat/sdk.py +++ b/expenses/src/codat/sdk.py @@ -39,8 +39,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 df764c66835e0a5955294d245f138db4b1cf85c6 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Tue, 7 Mar 2023 00:16:05 +0000 Subject: [PATCH 4/9] ci: regenerated with OpenAPI Doc prealpha, Speakeay CLI 1.8.5 --- expenses/RELEASES.md | 10 +++++++++- expenses/gen.yaml | 6 +++--- expenses/pylintrc | 3 ++- expenses/setup.py | 2 +- expenses/src/codat/configuration.py | 8 ++++---- expenses/src/codat/connections.py | 8 ++++---- expenses/src/codat/expenses.py | 8 ++++---- expenses/src/codat/mapping_options.py | 8 ++++---- .../models/operations/create_expense_dataset.py | 4 ++-- .../create_partnerexpense_connection.py | 4 ++-- .../operations/get_company_configuration.py | 4 ++-- .../operations/get_last_successful_sync.py | 4 ++-- .../codat/models/operations/get_latest_sync.py | 4 ++-- .../models/operations/get_mapping_options.py | 4 ++-- .../codat/models/operations/get_sync_by_id.py | 4 ++-- .../models/operations/get_sync_transaction.py | 4 ++-- .../models/operations/get_sync_transactions.py | 4 ++-- .../src/codat/models/operations/intiate_sync.py | 4 ++-- .../src/codat/models/operations/list_syncs.py | 4 ++-- .../operations/save_company_configuration.py | 4 ++-- .../codat/models/operations/upload_attachment.py | 4 ++-- expenses/src/codat/sdk.py | 16 ++++++++-------- expenses/src/codat/sync.py | 8 ++++---- expenses/src/codat/sync_status.py | 8 ++++---- expenses/src/codat/transaction_status.py | 8 ++++---- 25 files changed, 77 insertions(+), 68 deletions(-) diff --git a/expenses/RELEASES.md b/expenses/RELEASES.md index 76329d7f0..7de2d227b 100644 --- a/expenses/RELEASES.md +++ b/expenses/RELEASES.md @@ -38,4 +38,12 @@ Based on: - OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml - Speakeasy CLI 1.8.4 https://github.com/speakeasy-api/speakeasy ### Releases -- [PyPI v0.2.1] https://pypi.org/project/codat-expenses/0.2.1 - expenses \ No newline at end of file +- [PyPI v0.2.1] https://pypi.org/project/codat-expenses/0.2.1 - expenses + +## 2023-03-07 00:16:00 +### Changes +Based on: +- OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml +- Speakeasy CLI 1.8.5 https://github.com/speakeasy-api/speakeasy +### Releases +- [PyPI v0.2.2] https://pypi.org/project/codat-expenses/0.2.2 - expenses \ No newline at end of file diff --git a/expenses/gen.yaml b/expenses/gen.yaml index 6daa41776..6ac198238 100644 --- a/expenses/gen.yaml +++ b/expenses/gen.yaml @@ -1,14 +1,14 @@ configVersion: 1.0.0 management: - docChecksum: 259b149106f47d9de9efe243f42c410e + docChecksum: e348103fa40d973896004ce44671f381 docVersion: prealpha - 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-expenses diff --git a/expenses/pylintrc b/expenses/pylintrc index 9b2a14fa9..041a2c165 100755 --- a/expenses/pylintrc +++ b/expenses/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/expenses/setup.py b/expenses/setup.py index e12d80a2f..7d07cbd83 100755 --- a/expenses/setup.py +++ b/expenses/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-expenses", - version="0.2.1", + version="0.2.2", author="Speakeasy", description="Python Client SDK Generated by Speakeasy", long_description=long_description, diff --git a/expenses/src/codat/configuration.py b/expenses/src/codat/configuration.py index 310c49bd0..2f1612a21 100755 --- a/expenses/src/codat/configuration.py +++ b/expenses/src/codat/configuration.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 Configuration: - _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/expenses/src/codat/connections.py b/expenses/src/codat/connections.py index ba0301f56..9935070e9 100755 --- a/expenses/src/codat/connections.py +++ b/expenses/src/codat/connections.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 Connections: - _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/expenses/src/codat/expenses.py b/expenses/src/codat/expenses.py index 410b8f66d..ed24612e8 100755 --- a/expenses/src/codat/expenses.py +++ b/expenses/src/codat/expenses.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 Expenses: - _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/expenses/src/codat/mapping_options.py b/expenses/src/codat/mapping_options.py index 2d00b8c2b..fd769a870 100755 --- a/expenses/src/codat/mapping_options.py +++ b/expenses/src/codat/mapping_options.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 MappingOptions: - _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/expenses/src/codat/models/operations/create_expense_dataset.py b/expenses/src/codat/models/operations/create_expense_dataset.py index 05cbccaf7..21dd8fb8c 100755 --- a/expenses/src/codat/models/operations/create_expense_dataset.py +++ b/expenses/src/codat/models/operations/create_expense_dataset.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 @@ -77,5 +77,5 @@ class CreateExpenseDatasetResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() create_expense_dataset_200_application_json_object: Optional[CreateExpenseDataset200ApplicationJSON] = 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/expenses/src/codat/models/operations/create_partnerexpense_connection.py b/expenses/src/codat/models/operations/create_partnerexpense_connection.py index f7c71fa48..5d8408e45 100755 --- a/expenses/src/codat/models/operations/create_partnerexpense_connection.py +++ b/expenses/src/codat/models/operations/create_partnerexpense_connection.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 @@ -76,5 +76,5 @@ class CreatePartnerexpenseConnectionResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() connection: Optional[CreatePartnerexpenseConnectionConnection] = 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/expenses/src/codat/models/operations/get_company_configuration.py b/expenses/src/codat/models/operations/get_company_configuration.py index 00ceffdf8..9fd17aff3 100755 --- a/expenses/src/codat/models/operations/get_company_configuration.py +++ b/expenses/src/codat/models/operations/get_company_configuration.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 typing import Optional @@ -47,5 +47,5 @@ class GetCompanyConfigurationResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() get_company_configuration_200_application_json_object: Optional[GetCompanyConfiguration200ApplicationJSON] = 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/expenses/src/codat/models/operations/get_last_successful_sync.py b/expenses/src/codat/models/operations/get_last_successful_sync.py index 1b8febfbf..d170493bb 100755 --- a/expenses/src/codat/models/operations/get_last_successful_sync.py +++ b/expenses/src/codat/models/operations/get_last_successful_sync.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 @@ -37,5 +37,5 @@ class GetLastSuccessfulSyncResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() get_last_successful_sync_200_application_json_object: Optional[GetLastSuccessfulSync200ApplicationJSON] = 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/expenses/src/codat/models/operations/get_latest_sync.py b/expenses/src/codat/models/operations/get_latest_sync.py index 217ea64c2..589665386 100755 --- a/expenses/src/codat/models/operations/get_latest_sync.py +++ b/expenses/src/codat/models/operations/get_latest_sync.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 @@ -37,5 +37,5 @@ class GetLatestSyncResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() get_latest_sync_200_application_json_object: Optional[GetLatestSync200ApplicationJSON] = 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/expenses/src/codat/models/operations/get_mapping_options.py b/expenses/src/codat/models/operations/get_mapping_options.py index 913d0327d..c6d257276 100755 --- a/expenses/src/codat/models/operations/get_mapping_options.py +++ b/expenses/src/codat/models/operations/get_mapping_options.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 @@ -92,5 +92,5 @@ class GetMappingOptionsResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() get_mapping_options_200_application_json_object: Optional[GetMappingOptions200ApplicationJSON] = 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/expenses/src/codat/models/operations/get_sync_by_id.py b/expenses/src/codat/models/operations/get_sync_by_id.py index c5197d1e7..84034aa73 100755 --- a/expenses/src/codat/models/operations/get_sync_by_id.py +++ b/expenses/src/codat/models/operations/get_sync_by_id.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 @@ -38,5 +38,5 @@ class GetSyncByIDResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() get_sync_by_id_200_application_json_object: Optional[GetSyncByID200ApplicationJSON] = 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/expenses/src/codat/models/operations/get_sync_transaction.py b/expenses/src/codat/models/operations/get_sync_transaction.py index e9d465d95..3b1ac6d19 100755 --- a/expenses/src/codat/models/operations/get_sync_transaction.py +++ b/expenses/src/codat/models/operations/get_sync_transaction.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 @@ -44,5 +44,5 @@ class GetSyncTransactionResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() get_sync_transaction_200_application_json_objects: Optional[list[GetSyncTransaction200ApplicationJSON]] = 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/expenses/src/codat/models/operations/get_sync_transactions.py b/expenses/src/codat/models/operations/get_sync_transactions.py index 1803fe8fd..7d05650f5 100755 --- a/expenses/src/codat/models/operations/get_sync_transactions.py +++ b/expenses/src/codat/models/operations/get_sync_transactions.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 @@ -66,5 +66,5 @@ class GetSyncTransactionsResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() get_sync_transactions_200_application_json_object: Optional[GetSyncTransactions200ApplicationJSON] = 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/expenses/src/codat/models/operations/intiate_sync.py b/expenses/src/codat/models/operations/intiate_sync.py index 7acb068ea..a0e70a7c7 100755 --- a/expenses/src/codat/models/operations/intiate_sync.py +++ b/expenses/src/codat/models/operations/intiate_sync.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 typing import Optional @@ -190,5 +190,5 @@ class IntiateSyncResponse: intiate_sync_400_application_json_object: Optional[IntiateSync400ApplicationJSON] = dataclasses.field(default=None) intiate_sync_404_application_json_object: Optional[IntiateSync404ApplicationJSON] = dataclasses.field(default=None) intiate_sync_422_application_json_object: Optional[IntiateSync422ApplicationJSON] = 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/expenses/src/codat/models/operations/list_syncs.py b/expenses/src/codat/models/operations/list_syncs.py index 08df24076..9c0c0c829 100755 --- a/expenses/src/codat/models/operations/list_syncs.py +++ b/expenses/src/codat/models/operations/list_syncs.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 @@ -37,5 +37,5 @@ class ListSyncsResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() list_syncs_200_application_json_objects: Optional[list[ListSyncs200ApplicationJSON]] = 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/expenses/src/codat/models/operations/save_company_configuration.py b/expenses/src/codat/models/operations/save_company_configuration.py index 21603c944..1815b0163 100755 --- a/expenses/src/codat/models/operations/save_company_configuration.py +++ b/expenses/src/codat/models/operations/save_company_configuration.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 typing import Optional @@ -124,7 +124,7 @@ class SaveCompanyConfiguration200ApplicationJSON: class SaveCompanyConfigurationResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() - raw_response: Optional[requests.Response] = dataclasses.field(default=None) + raw_response: Optional[requests_http.Response] = dataclasses.field(default=None) save_company_configuration_200_application_json_object: Optional[SaveCompanyConfiguration200ApplicationJSON] = dataclasses.field(default=None) save_company_configuration_400_application_json_object: Optional[SaveCompanyConfiguration400ApplicationJSON] = dataclasses.field(default=None) \ No newline at end of file diff --git a/expenses/src/codat/models/operations/upload_attachment.py b/expenses/src/codat/models/operations/upload_attachment.py index 14038def2..39927db55 100755 --- a/expenses/src/codat/models/operations/upload_attachment.py +++ b/expenses/src/codat/models/operations/upload_attachment.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 typing import Optional @@ -30,6 +30,6 @@ class UploadAttachment200ApplicationJSON: class UploadAttachmentResponse: content_type: str = dataclasses.field() status_code: int = dataclasses.field() - raw_response: Optional[requests.Response] = dataclasses.field(default=None) + raw_response: Optional[requests_http.Response] = dataclasses.field(default=None) upload_attachment_200_application_json_object: Optional[UploadAttachment200ApplicationJSON] = dataclasses.field(default=None) \ No newline at end of file diff --git a/expenses/src/codat/sdk.py b/expenses/src/codat/sdk.py index 41bf76b59..78d2be502 100755 --- a/expenses/src/codat/sdk.py +++ b/expenses/src/codat/sdk.py @@ -4,7 +4,7 @@ [Read more...](https://docs.codat.io/sync-for-expenses/overview) [See our OpenAPI spec](https://github.com/codatio/oas)""" -import requests +import requests as requests_http from . import utils from .configuration import Configuration from .connections import Connections @@ -34,17 +34,17 @@ class Codat: sync_status: SyncStatus transaction_status: TransactionStatus - _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): @@ -57,7 +57,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: diff --git a/expenses/src/codat/sync.py b/expenses/src/codat/sync.py index e14738c51..35287c1d7 100755 --- a/expenses/src/codat/sync.py +++ b/expenses/src/codat/sync.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 Sync: - _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/expenses/src/codat/sync_status.py b/expenses/src/codat/sync_status.py index dc6a573bb..2c34bfc2d 100755 --- a/expenses/src/codat/sync_status.py +++ b/expenses/src/codat/sync_status.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 SyncStatus: - _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/expenses/src/codat/transaction_status.py b/expenses/src/codat/transaction_status.py index c00d0697e..baa7725f7 100755 --- a/expenses/src/codat/transaction_status.py +++ b/expenses/src/codat/transaction_status.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 TransactionStatus: - _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 From 3b39553895b5908152672f4629575842213cfffa Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Wed, 8 Mar 2023 00:15:08 +0000 Subject: [PATCH 5/9] ci: regenerated with OpenAPI Doc prealpha, Speakeay CLI 1.8.6 --- expenses/RELEASES.md | 10 +++++++++- expenses/gen.yaml | 4 ++-- expenses/setup.py | 2 +- expenses/src/codat/sdk.py | 4 ++-- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/expenses/RELEASES.md b/expenses/RELEASES.md index 7de2d227b..4ee337dcd 100644 --- a/expenses/RELEASES.md +++ b/expenses/RELEASES.md @@ -46,4 +46,12 @@ Based on: - OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml - Speakeasy CLI 1.8.5 https://github.com/speakeasy-api/speakeasy ### Releases -- [PyPI v0.2.2] https://pypi.org/project/codat-expenses/0.2.2 - expenses \ No newline at end of file +- [PyPI v0.2.2] https://pypi.org/project/codat-expenses/0.2.2 - expenses + +## 2023-03-08 00:15:02 +### Changes +Based on: +- OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml +- Speakeasy CLI 1.8.6 https://github.com/speakeasy-api/speakeasy +### Releases +- [PyPI v0.2.3] https://pypi.org/project/codat-expenses/0.2.3 - expenses \ No newline at end of file diff --git a/expenses/gen.yaml b/expenses/gen.yaml index 6ac198238..2950e7aa7 100644 --- a/expenses/gen.yaml +++ b/expenses/gen.yaml @@ -2,13 +2,13 @@ configVersion: 1.0.0 management: docChecksum: e348103fa40d973896004ce44671f381 docVersion: prealpha - 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-expenses diff --git a/expenses/setup.py b/expenses/setup.py index 7d07cbd83..2d5779646 100755 --- a/expenses/setup.py +++ b/expenses/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-expenses", - version="0.2.2", + version="0.2.3", author="Speakeasy", description="Python Client SDK Generated by Speakeasy", long_description=long_description, diff --git a/expenses/src/codat/sdk.py b/expenses/src/codat/sdk.py index 78d2be502..98ebd594a 100755 --- a/expenses/src/codat/sdk.py +++ b/expenses/src/codat/sdk.py @@ -39,8 +39,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 35deb1ee5b385c4802dc6b1cb31a164b313a39b4 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Thu, 9 Mar 2023 00:15:30 +0000 Subject: [PATCH 6/9] ci: regenerated with OpenAPI Doc prealpha, Speakeay CLI 1.8.7 --- expenses/RELEASES.md | 10 +++++++++- expenses/gen.yaml | 6 +++--- expenses/pylintrc | 2 +- expenses/setup.py | 2 +- expenses/src/codat/sdk.py | 6 +++--- 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/expenses/RELEASES.md b/expenses/RELEASES.md index 4ee337dcd..eb3190fa6 100644 --- a/expenses/RELEASES.md +++ b/expenses/RELEASES.md @@ -54,4 +54,12 @@ Based on: - OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml - Speakeasy CLI 1.8.6 https://github.com/speakeasy-api/speakeasy ### Releases -- [PyPI v0.2.3] https://pypi.org/project/codat-expenses/0.2.3 - expenses \ No newline at end of file +- [PyPI v0.2.3] https://pypi.org/project/codat-expenses/0.2.3 - expenses + +## 2023-03-09 00:15:25 +### Changes +Based on: +- OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml +- Speakeasy CLI 1.8.7 https://github.com/speakeasy-api/speakeasy +### Releases +- [PyPI v0.2.4] https://pypi.org/project/codat-expenses/0.2.4 - expenses \ No newline at end of file diff --git a/expenses/gen.yaml b/expenses/gen.yaml index 2950e7aa7..4c2e05bb7 100644 --- a/expenses/gen.yaml +++ b/expenses/gen.yaml @@ -1,14 +1,14 @@ configVersion: 1.0.0 management: - docChecksum: e348103fa40d973896004ce44671f381 + docChecksum: b19346ceb1ea419f700adf41ebaa7b13 docVersion: prealpha - 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-expenses diff --git a/expenses/pylintrc b/expenses/pylintrc index 041a2c165..385b994c7 100755 --- a/expenses/pylintrc +++ b/expenses/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/expenses/setup.py b/expenses/setup.py index 2d5779646..c8c185024 100755 --- a/expenses/setup.py +++ b/expenses/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-expenses", - version="0.2.3", + version="0.2.4", author="Speakeasy", description="Python Client SDK Generated by Speakeasy", long_description=long_description, diff --git a/expenses/src/codat/sdk.py b/expenses/src/codat/sdk.py index 98ebd594a..7db24bec1 100755 --- a/expenses/src/codat/sdk.py +++ b/expenses/src/codat/sdk.py @@ -16,7 +16,7 @@ from codat.models import shared SERVERS = [ - "https://expensesync.codat.io", + "https://api.codat.io", ] class Codat: @@ -39,8 +39,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 c1c841f2eb4c9501dce691c3891ed94bf97cbcd2 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Fri, 10 Mar 2023 00:15:07 +0000 Subject: [PATCH 7/9] ci: regenerated with OpenAPI Doc prealpha, Speakeay CLI 1.9.1 --- expenses/RELEASES.md | 10 +++++++++- expenses/gen.yaml | 6 +++--- expenses/pylintrc | 3 ++- expenses/setup.py | 2 +- expenses/src/codat/sdk.py | 4 ++-- 5 files changed, 17 insertions(+), 8 deletions(-) diff --git a/expenses/RELEASES.md b/expenses/RELEASES.md index eb3190fa6..bdd684b7d 100644 --- a/expenses/RELEASES.md +++ b/expenses/RELEASES.md @@ -62,4 +62,12 @@ Based on: - OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml - Speakeasy CLI 1.8.7 https://github.com/speakeasy-api/speakeasy ### Releases -- [PyPI v0.2.4] https://pypi.org/project/codat-expenses/0.2.4 - expenses \ No newline at end of file +- [PyPI v0.2.4] https://pypi.org/project/codat-expenses/0.2.4 - expenses + +## 2023-03-10 00:15:01 +### Changes +Based on: +- OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml +- Speakeasy CLI 1.9.1 https://github.com/speakeasy-api/speakeasy +### Releases +- [PyPI v0.3.0] https://pypi.org/project/codat-expenses/0.3.0 - expenses \ No newline at end of file diff --git a/expenses/gen.yaml b/expenses/gen.yaml index 4c2e05bb7..aa5fbf33d 100644 --- a/expenses/gen.yaml +++ b/expenses/gen.yaml @@ -1,14 +1,14 @@ configVersion: 1.0.0 management: - docChecksum: b19346ceb1ea419f700adf41ebaa7b13 + docChecksum: 9288bbb8980915aa402e2ef1c02437f4 docVersion: prealpha - 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-expenses diff --git a/expenses/pylintrc b/expenses/pylintrc index 385b994c7..a69e8e4e1 100755 --- a/expenses/pylintrc +++ b/expenses/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/expenses/setup.py b/expenses/setup.py index c8c185024..09a5124f7 100755 --- a/expenses/setup.py +++ b/expenses/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-expenses", - version="0.2.4", + version="0.3.0", author="Speakeasy", description="Python Client SDK Generated by Speakeasy", long_description=long_description, diff --git a/expenses/src/codat/sdk.py b/expenses/src/codat/sdk.py index 7db24bec1..d90ae99fb 100755 --- a/expenses/src/codat/sdk.py +++ b/expenses/src/codat/sdk.py @@ -39,8 +39,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 02aa09135e5bb8e2fb9d3c590a925a2eda877bb8 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Sat, 11 Mar 2023 00:13:23 +0000 Subject: [PATCH 8/9] ci: regenerated with OpenAPI Doc prealpha, Speakeay CLI 1.9.2 --- expenses/README.md | 4 ++-- expenses/RELEASES.md | 10 +++++++++- expenses/gen.yaml | 6 +++--- expenses/setup.py | 2 +- expenses/src/codat/configuration.py | 8 ++++---- expenses/src/codat/connections.py | 2 +- expenses/src/codat/expenses.py | 4 ++-- expenses/src/codat/mapping_options.py | 2 +- expenses/src/codat/sdk.py | 4 ++-- expenses/src/codat/sync.py | 2 +- expenses/src/codat/sync_status.py | 8 ++++---- expenses/src/codat/transaction_status.py | 4 ++-- 12 files changed, 32 insertions(+), 24 deletions(-) diff --git a/expenses/README.md b/expenses/README.md index b49baa48e..ae581eca9 100755 --- a/expenses/README.md +++ b/expenses/README.md @@ -40,8 +40,8 @@ if res.get_company_configuration_200_application_json_object is not None: ### configuration -* `get_company_configuration` - Get Company configuration -* `save_company_configuration` - Set Company configuration +* `get_company_configuration` - Get company configuration +* `save_company_configuration` - Set company configuration ### connections diff --git a/expenses/RELEASES.md b/expenses/RELEASES.md index bdd684b7d..48f229ba8 100644 --- a/expenses/RELEASES.md +++ b/expenses/RELEASES.md @@ -70,4 +70,12 @@ Based on: - OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml - Speakeasy CLI 1.9.1 https://github.com/speakeasy-api/speakeasy ### Releases -- [PyPI v0.3.0] https://pypi.org/project/codat-expenses/0.3.0 - expenses \ No newline at end of file +- [PyPI v0.3.0] https://pypi.org/project/codat-expenses/0.3.0 - expenses + +## 2023-03-11 00:13:18 +### Changes +Based on: +- OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml +- Speakeasy CLI 1.9.2 https://github.com/speakeasy-api/speakeasy +### Releases +- [PyPI v0.3.1] https://pypi.org/project/codat-expenses/0.3.1 - expenses \ No newline at end of file diff --git a/expenses/gen.yaml b/expenses/gen.yaml index aa5fbf33d..c1ed0fc30 100644 --- a/expenses/gen.yaml +++ b/expenses/gen.yaml @@ -1,14 +1,14 @@ configVersion: 1.0.0 management: - docChecksum: 9288bbb8980915aa402e2ef1c02437f4 + docChecksum: dc98b83b56250d730f6b49ba2e37b3bf docVersion: prealpha - 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-expenses diff --git a/expenses/setup.py b/expenses/setup.py index 09a5124f7..952a43b36 100755 --- a/expenses/setup.py +++ b/expenses/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-expenses", - version="0.3.0", + version="0.3.1", author="Speakeasy", description="Python Client SDK Generated by Speakeasy", long_description=long_description, diff --git a/expenses/src/codat/configuration.py b/expenses/src/codat/configuration.py index 2f1612a21..10414e994 100755 --- a/expenses/src/codat/configuration.py +++ b/expenses/src/codat/configuration.py @@ -20,13 +20,13 @@ def __init__(self, client: requests_http.Session, security_client: requests_http self._gen_version = gen_version def get_company_configuration(self, request: operations.GetCompanyConfigurationRequest) -> operations.GetCompanyConfigurationResponse: - r"""Get Company configuration + r"""Get company configuration Gets a companies expense sync configuration """ base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/config', request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/config', request.path_params) client = self._security_client @@ -44,13 +44,13 @@ def get_company_configuration(self, request: operations.GetCompanyConfigurationR return res def save_company_configuration(self, request: operations.SaveCompanyConfigurationRequest) -> operations.SaveCompanyConfigurationResponse: - r"""Set Company configuration + r"""Set company configuration Sets a companies expense sync configuration """ base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/config', request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/config', request.path_params) headers = {} req_content_type, data, form = utils.serialize_request_body(request) diff --git a/expenses/src/codat/connections.py b/expenses/src/codat/connections.py index 9935070e9..83ee5ec88 100755 --- a/expenses/src/codat/connections.py +++ b/expenses/src/codat/connections.py @@ -26,7 +26,7 @@ def create_partnerexpense_connection(self, request: operations.CreatePartnerexpe base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/connections/partnerExpense', request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/connections/partnerExpense', request.path_params) client = self._security_client diff --git a/expenses/src/codat/expenses.py b/expenses/src/codat/expenses.py index ed24612e8..c27d28d7e 100755 --- a/expenses/src/codat/expenses.py +++ b/expenses/src/codat/expenses.py @@ -26,7 +26,7 @@ def create_expense_dataset(self, request: operations.CreateExpenseDatasetRequest base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/data/expense-transactions', request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/data/expense-transactions', request.path_params) headers = {} req_content_type, data, form = utils.serialize_request_body(request) @@ -54,7 +54,7 @@ def upload_attachment(self, request: operations.UploadAttachmentRequest) -> oper base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/syncs/{syncId}/transactions/{transactionId}/attachments', request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs/{syncId}/transactions/{transactionId}/attachments', request.path_params) client = self._security_client diff --git a/expenses/src/codat/mapping_options.py b/expenses/src/codat/mapping_options.py index fd769a870..f632168c2 100755 --- a/expenses/src/codat/mapping_options.py +++ b/expenses/src/codat/mapping_options.py @@ -26,7 +26,7 @@ def get_mapping_options(self, request: operations.GetMappingOptionsRequest) -> o base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/mappingOptions', request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/mappingOptions', request.path_params) client = self._security_client diff --git a/expenses/src/codat/sdk.py b/expenses/src/codat/sdk.py index d90ae99fb..ec8f9ebf4 100755 --- a/expenses/src/codat/sdk.py +++ b/expenses/src/codat/sdk.py @@ -39,8 +39,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() diff --git a/expenses/src/codat/sync.py b/expenses/src/codat/sync.py index 35287c1d7..873f759dd 100755 --- a/expenses/src/codat/sync.py +++ b/expenses/src/codat/sync.py @@ -26,7 +26,7 @@ def intiate_sync(self, request: operations.IntiateSyncRequest) -> operations.Int base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/syncs', request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs', request.path_params) headers = {} req_content_type, data, form = utils.serialize_request_body(request) diff --git a/expenses/src/codat/sync_status.py b/expenses/src/codat/sync_status.py index 2c34bfc2d..ebcbb1eae 100755 --- a/expenses/src/codat/sync_status.py +++ b/expenses/src/codat/sync_status.py @@ -26,7 +26,7 @@ def get_last_successful_sync(self, request: operations.GetLastSuccessfulSyncRequ base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/syncs/lastSuccessful/status', request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs/lastSuccessful/status', request.path_params) client = self._security_client @@ -50,7 +50,7 @@ def get_latest_sync(self, request: operations.GetLatestSyncRequest) -> operation base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/syncs/latest/status', request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs/latest/status', request.path_params) client = self._security_client @@ -74,7 +74,7 @@ def get_sync_by_id(self, request: operations.GetSyncByIDRequest) -> operations.G base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/syncs/{syncId}/status', request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs/{syncId}/status', request.path_params) client = self._security_client @@ -98,7 +98,7 @@ def list_syncs(self, request: operations.ListSyncsRequest) -> operations.ListSyn base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/syncs/list/status', request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs/list/status', request.path_params) client = self._security_client diff --git a/expenses/src/codat/transaction_status.py b/expenses/src/codat/transaction_status.py index baa7725f7..c4d4edb25 100755 --- a/expenses/src/codat/transaction_status.py +++ b/expenses/src/codat/transaction_status.py @@ -26,7 +26,7 @@ def get_sync_transaction(self, request: operations.GetSyncTransactionRequest) -> base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/syncs/{syncId}/transactions/{transactionId}', request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs/{syncId}/transactions/{transactionId}', request.path_params) client = self._security_client @@ -50,7 +50,7 @@ def get_sync_transactions(self, request: operations.GetSyncTransactionsRequest) base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/syncs/{syncId}/transactions', request.path_params) + url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs/{syncId}/transactions', request.path_params) query_params = utils.get_query_params(request.query_params) From 2891afd85a11aa6213f0427c37c6042f7a636318 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Wed, 15 Mar 2023 00:14:42 +0000 Subject: [PATCH 9/9] ci: regenerated with OpenAPI Doc prealpha, Speakeay CLI 1.11.0 --- expenses/README.md | 12 +-- expenses/RELEASES.md | 10 +- expenses/USAGE.md | 12 +-- expenses/gen.yaml | 4 +- expenses/pylintrc | 3 +- expenses/setup.py | 2 +- expenses/src/codat/configuration.py | 6 +- expenses/src/codat/connections.py | 2 +- expenses/src/codat/expenses.py | 6 +- expenses/src/codat/mapping_options.py | 2 +- .../src/codat/models/operations/__init__.py | 2 +- .../operations/create_expense_dataset.py | 9 +- .../create_partnerexpense_connection.py | 7 +- .../operations/get_company_configuration.py | 7 +- .../operations/get_last_successful_sync.py | 7 +- .../models/operations/get_latest_sync.py | 7 +- .../models/operations/get_mapping_options.py | 7 +- .../codat/models/operations/get_sync_by_id.py | 7 +- .../models/operations/get_sync_transaction.py | 7 +- .../operations/get_sync_transactions.py | 14 +-- .../codat/models/operations/intiate_sync.py | 9 +- .../src/codat/models/operations/list_syncs.py | 7 +- .../operations/save_company_configuration.py | 9 +- .../models/operations/upload_attachment.py | 7 +- expenses/src/codat/sdk.py | 43 ++++----- expenses/src/codat/sync.py | 4 +- expenses/src/codat/sync_status.py | 8 +- expenses/src/codat/transaction_status.py | 6 +- expenses/src/codat/utils/utils.py | 92 ++++++++++++------- 29 files changed, 138 insertions(+), 180 deletions(-) diff --git a/expenses/README.md b/expenses/README.md index ae581eca9..d23517dbe 100755 --- a/expenses/README.md +++ b/expenses/README.md @@ -14,17 +14,15 @@ pip install codat-expenses 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.GetCompanyConfigurationRequest( - path_params=operations.GetCompanyConfigurationPathParams( - company_id="unde", - ), + company_id="unde", ) res = s.configuration.get_company_configuration(req) diff --git a/expenses/RELEASES.md b/expenses/RELEASES.md index 48f229ba8..5328b1380 100644 --- a/expenses/RELEASES.md +++ b/expenses/RELEASES.md @@ -78,4 +78,12 @@ Based on: - OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml - Speakeasy CLI 1.9.2 https://github.com/speakeasy-api/speakeasy ### Releases -- [PyPI v0.3.1] https://pypi.org/project/codat-expenses/0.3.1 - expenses \ No newline at end of file +- [PyPI v0.3.1] https://pypi.org/project/codat-expenses/0.3.1 - expenses + +## 2023-03-15 00:14:34 +### Changes +Based on: +- OpenAPI Doc prealpha https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Expenses.yaml +- Speakeasy CLI 1.11.0 https://github.com/speakeasy-api/speakeasy +### Releases +- [PyPI v0.4.0] https://pypi.org/project/codat-expenses/0.4.0 - expenses \ No newline at end of file diff --git a/expenses/USAGE.md b/expenses/USAGE.md index e855b7866..475f949f5 100755 --- a/expenses/USAGE.md +++ b/expenses/USAGE.md @@ -3,17 +3,15 @@ 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.GetCompanyConfigurationRequest( - path_params=operations.GetCompanyConfigurationPathParams( - company_id="unde", - ), + company_id="unde", ) res = s.configuration.get_company_configuration(req) diff --git a/expenses/gen.yaml b/expenses/gen.yaml index c1ed0fc30..d056eec7c 100644 --- a/expenses/gen.yaml +++ b/expenses/gen.yaml @@ -2,13 +2,13 @@ configVersion: 1.0.0 management: docChecksum: dc98b83b56250d730f6b49ba2e37b3bf docVersion: prealpha - 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-expenses diff --git a/expenses/pylintrc b/expenses/pylintrc index a69e8e4e1..532df1904 100755 --- a/expenses/pylintrc +++ b/expenses/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/expenses/setup.py b/expenses/setup.py index 952a43b36..1abd907ea 100755 --- a/expenses/setup.py +++ b/expenses/setup.py @@ -8,7 +8,7 @@ setuptools.setup( name="codat-expenses", - version="0.3.1", + version="0.4.0", author="Speakeasy", description="Python Client SDK Generated by Speakeasy", long_description=long_description, diff --git a/expenses/src/codat/configuration.py b/expenses/src/codat/configuration.py index 10414e994..db6e38d11 100755 --- a/expenses/src/codat/configuration.py +++ b/expenses/src/codat/configuration.py @@ -26,7 +26,7 @@ def get_company_configuration(self, request: operations.GetCompanyConfigurationR base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/config', request.path_params) + url = utils.generate_url(operations.GetCompanyConfigurationRequest, base_url, '/companies/{companyId}/sync/expenses/config', request) client = self._security_client @@ -50,10 +50,10 @@ def save_company_configuration(self, request: operations.SaveCompanyConfiguratio base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/config', request.path_params) + url = utils.generate_url(operations.SaveCompanyConfigurationRequest, base_url, '/companies/{companyId}/sync/expenses/config', 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/expenses/src/codat/connections.py b/expenses/src/codat/connections.py index 83ee5ec88..1446e3515 100755 --- a/expenses/src/codat/connections.py +++ b/expenses/src/codat/connections.py @@ -26,7 +26,7 @@ def create_partnerexpense_connection(self, request: operations.CreatePartnerexpe base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/connections/partnerExpense', request.path_params) + url = utils.generate_url(operations.CreatePartnerexpenseConnectionRequest, base_url, '/companies/{companyId}/sync/expenses/connections/partnerExpense', request) client = self._security_client diff --git a/expenses/src/codat/expenses.py b/expenses/src/codat/expenses.py index c27d28d7e..d5c19adb1 100755 --- a/expenses/src/codat/expenses.py +++ b/expenses/src/codat/expenses.py @@ -26,10 +26,10 @@ def create_expense_dataset(self, request: operations.CreateExpenseDatasetRequest base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/data/expense-transactions', request.path_params) + url = utils.generate_url(operations.CreateExpenseDatasetRequest, base_url, '/companies/{companyId}/sync/expenses/data/expense-transactions', 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 upload_attachment(self, request: operations.UploadAttachmentRequest) -> oper base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs/{syncId}/transactions/{transactionId}/attachments', request.path_params) + url = utils.generate_url(operations.UploadAttachmentRequest, base_url, '/companies/{companyId}/sync/expenses/syncs/{syncId}/transactions/{transactionId}/attachments', request) client = self._security_client diff --git a/expenses/src/codat/mapping_options.py b/expenses/src/codat/mapping_options.py index f632168c2..071129554 100755 --- a/expenses/src/codat/mapping_options.py +++ b/expenses/src/codat/mapping_options.py @@ -26,7 +26,7 @@ def get_mapping_options(self, request: operations.GetMappingOptionsRequest) -> o base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/mappingOptions', request.path_params) + url = utils.generate_url(operations.GetMappingOptionsRequest, base_url, '/companies/{companyId}/sync/expenses/mappingOptions', request) client = self._security_client diff --git a/expenses/src/codat/models/operations/__init__.py b/expenses/src/codat/models/operations/__init__.py index d437dbd00..41bd80604 100755 --- a/expenses/src/codat/models/operations/__init__.py +++ b/expenses/src/codat/models/operations/__init__.py @@ -12,4 +12,4 @@ from .save_company_configuration import * from .upload_attachment import * -__all__ = ["CreateExpenseDataset200ApplicationJSON","CreateExpenseDatasetPathParams","CreateExpenseDatasetRequest","CreateExpenseDatasetRequestBody","CreateExpenseDatasetRequestBodyItems","CreateExpenseDatasetRequestBodyItemsLines","CreateExpenseDatasetRequestBodyItemsLinesRecordRef","CreateExpenseDatasetRequestBodyItemsTypeEnum","CreateExpenseDatasetResponse","CreatePartnerexpenseConnectionConnection","CreatePartnerexpenseConnectionConnectionConnectionInfo","CreatePartnerexpenseConnectionConnectionDataConnectionErrors","CreatePartnerexpenseConnectionConnectionDataConnectionStatusEnum","CreatePartnerexpenseConnectionConnectionSourceTypeEnum","CreatePartnerexpenseConnectionPathParams","CreatePartnerexpenseConnectionRequest","CreatePartnerexpenseConnectionResponse","GetCompanyConfiguration200ApplicationJSON","GetCompanyConfiguration200ApplicationJSONBankAccount","GetCompanyConfiguration200ApplicationJSONCustomer","GetCompanyConfiguration200ApplicationJSONSupplier","GetCompanyConfigurationPathParams","GetCompanyConfigurationRequest","GetCompanyConfigurationResponse","GetLastSuccessfulSync200ApplicationJSON","GetLastSuccessfulSyncPathParams","GetLastSuccessfulSyncRequest","GetLastSuccessfulSyncResponse","GetLatestSync200ApplicationJSON","GetLatestSyncPathParams","GetLatestSyncRequest","GetLatestSyncResponse","GetMappingOptions200ApplicationJSON","GetMappingOptions200ApplicationJSONAccounts","GetMappingOptions200ApplicationJSONAccountsAccountTypeEnum","GetMappingOptions200ApplicationJSONAccountsValidTransactionTypesEnum","GetMappingOptions200ApplicationJSONTaxRates","GetMappingOptions200ApplicationJSONTaxRatesValidTransactionTypesEnum","GetMappingOptions200ApplicationJSONTrackingCategories","GetMappingOptionsPathParams","GetMappingOptionsRequest","GetMappingOptionsResponse","GetSyncByID200ApplicationJSON","GetSyncByIDPathParams","GetSyncByIDRequest","GetSyncByIDResponse","GetSyncTransaction200ApplicationJSON","GetSyncTransaction200ApplicationJSONIntegrationTypeEnum","GetSyncTransaction200ApplicationJSONStatusEnum","GetSyncTransactionPathParams","GetSyncTransactionRequest","GetSyncTransactionResponse","GetSyncTransactions200ApplicationJSON","GetSyncTransactions200ApplicationJSONHalLink","GetSyncTransactions200ApplicationJSONResults","GetSyncTransactions200ApplicationJSONResultsIntegrationTypeEnum","GetSyncTransactions200ApplicationJSONResultsStatusEnum","GetSyncTransactionsPathParams","GetSyncTransactionsQueryParams","GetSyncTransactionsRequest","GetSyncTransactionsResponse","IntiateSync202ApplicationJSON","IntiateSync400ApplicationJSON","IntiateSync400ApplicationJSONValidation","IntiateSync400ApplicationJSONValidationErrors","IntiateSync400ApplicationJSONValidationInternals","IntiateSync400ApplicationJSONValidationWarnings","IntiateSync404ApplicationJSON","IntiateSync404ApplicationJSONValidation","IntiateSync404ApplicationJSONValidationErrors","IntiateSync404ApplicationJSONValidationInternals","IntiateSync404ApplicationJSONValidationWarnings","IntiateSync422ApplicationJSON","IntiateSync422ApplicationJSONValidation","IntiateSync422ApplicationJSONValidationErrors","IntiateSync422ApplicationJSONValidationInternals","IntiateSync422ApplicationJSONValidationWarnings","IntiateSyncPathParams","IntiateSyncRequest","IntiateSyncRequestBody","IntiateSyncResponse","ListSyncs200ApplicationJSON","ListSyncsPathParams","ListSyncsRequest","ListSyncsResponse","SaveCompanyConfiguration200ApplicationJSON","SaveCompanyConfiguration200ApplicationJSONBankAccount","SaveCompanyConfiguration200ApplicationJSONCustomer","SaveCompanyConfiguration200ApplicationJSONSupplier","SaveCompanyConfiguration400ApplicationJSON","SaveCompanyConfiguration400ApplicationJSONValidation","SaveCompanyConfiguration400ApplicationJSONValidationErrors","SaveCompanyConfiguration400ApplicationJSONValidationInternals","SaveCompanyConfiguration400ApplicationJSONValidationWarnings","SaveCompanyConfigurationPathParams","SaveCompanyConfigurationRequest","SaveCompanyConfigurationRequestBody","SaveCompanyConfigurationRequestBodyBankAccount","SaveCompanyConfigurationRequestBodyCustomer","SaveCompanyConfigurationRequestBodySupplier","SaveCompanyConfigurationResponse","UploadAttachment200ApplicationJSON","UploadAttachmentPathParams","UploadAttachmentRequest","UploadAttachmentResponse"] +__all__ = ["CreateExpenseDataset200ApplicationJSON","CreateExpenseDatasetRequest","CreateExpenseDatasetRequestBody","CreateExpenseDatasetRequestBodyItems","CreateExpenseDatasetRequestBodyItemsLines","CreateExpenseDatasetRequestBodyItemsLinesRecordRef","CreateExpenseDatasetRequestBodyItemsTypeEnum","CreateExpenseDatasetResponse","CreatePartnerexpenseConnectionConnection","CreatePartnerexpenseConnectionConnectionConnectionInfo","CreatePartnerexpenseConnectionConnectionDataConnectionErrors","CreatePartnerexpenseConnectionConnectionDataConnectionStatusEnum","CreatePartnerexpenseConnectionConnectionSourceTypeEnum","CreatePartnerexpenseConnectionRequest","CreatePartnerexpenseConnectionResponse","GetCompanyConfiguration200ApplicationJSON","GetCompanyConfiguration200ApplicationJSONBankAccount","GetCompanyConfiguration200ApplicationJSONCustomer","GetCompanyConfiguration200ApplicationJSONSupplier","GetCompanyConfigurationRequest","GetCompanyConfigurationResponse","GetLastSuccessfulSync200ApplicationJSON","GetLastSuccessfulSyncRequest","GetLastSuccessfulSyncResponse","GetLatestSync200ApplicationJSON","GetLatestSyncRequest","GetLatestSyncResponse","GetMappingOptions200ApplicationJSON","GetMappingOptions200ApplicationJSONAccounts","GetMappingOptions200ApplicationJSONAccountsAccountTypeEnum","GetMappingOptions200ApplicationJSONAccountsValidTransactionTypesEnum","GetMappingOptions200ApplicationJSONTaxRates","GetMappingOptions200ApplicationJSONTaxRatesValidTransactionTypesEnum","GetMappingOptions200ApplicationJSONTrackingCategories","GetMappingOptionsRequest","GetMappingOptionsResponse","GetSyncByID200ApplicationJSON","GetSyncByIDRequest","GetSyncByIDResponse","GetSyncTransaction200ApplicationJSON","GetSyncTransaction200ApplicationJSONIntegrationTypeEnum","GetSyncTransaction200ApplicationJSONStatusEnum","GetSyncTransactionRequest","GetSyncTransactionResponse","GetSyncTransactions200ApplicationJSON","GetSyncTransactions200ApplicationJSONHalLink","GetSyncTransactions200ApplicationJSONResults","GetSyncTransactions200ApplicationJSONResultsIntegrationTypeEnum","GetSyncTransactions200ApplicationJSONResultsStatusEnum","GetSyncTransactionsRequest","GetSyncTransactionsResponse","IntiateSync202ApplicationJSON","IntiateSync400ApplicationJSON","IntiateSync400ApplicationJSONValidation","IntiateSync400ApplicationJSONValidationErrors","IntiateSync400ApplicationJSONValidationInternals","IntiateSync400ApplicationJSONValidationWarnings","IntiateSync404ApplicationJSON","IntiateSync404ApplicationJSONValidation","IntiateSync404ApplicationJSONValidationErrors","IntiateSync404ApplicationJSONValidationInternals","IntiateSync404ApplicationJSONValidationWarnings","IntiateSync422ApplicationJSON","IntiateSync422ApplicationJSONValidation","IntiateSync422ApplicationJSONValidationErrors","IntiateSync422ApplicationJSONValidationInternals","IntiateSync422ApplicationJSONValidationWarnings","IntiateSyncRequest","IntiateSyncRequestBody","IntiateSyncResponse","ListSyncs200ApplicationJSON","ListSyncsRequest","ListSyncsResponse","SaveCompanyConfiguration200ApplicationJSON","SaveCompanyConfiguration200ApplicationJSONBankAccount","SaveCompanyConfiguration200ApplicationJSONCustomer","SaveCompanyConfiguration200ApplicationJSONSupplier","SaveCompanyConfiguration400ApplicationJSON","SaveCompanyConfiguration400ApplicationJSONValidation","SaveCompanyConfiguration400ApplicationJSONValidationErrors","SaveCompanyConfiguration400ApplicationJSONValidationInternals","SaveCompanyConfiguration400ApplicationJSONValidationWarnings","SaveCompanyConfigurationRequest","SaveCompanyConfigurationRequestBody","SaveCompanyConfigurationRequestBodyBankAccount","SaveCompanyConfigurationRequestBodyCustomer","SaveCompanyConfigurationRequestBodySupplier","SaveCompanyConfigurationResponse","UploadAttachment200ApplicationJSON","UploadAttachmentRequest","UploadAttachmentResponse"] diff --git a/expenses/src/codat/models/operations/create_expense_dataset.py b/expenses/src/codat/models/operations/create_expense_dataset.py index 21dd8fb8c..53fdc1387 100755 --- a/expenses/src/codat/models/operations/create_expense_dataset.py +++ b/expenses/src/codat/models/operations/create_expense_dataset.py @@ -10,11 +10,6 @@ from typing import Optional -@dataclasses.dataclass -class CreateExpenseDatasetPathParams: - company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) - - @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class CreateExpenseDatasetRequestBodyItemsLinesRecordRef: @@ -62,8 +57,8 @@ class CreateExpenseDatasetRequestBody: @dataclasses.dataclass class CreateExpenseDatasetRequest: - path_params: CreateExpenseDatasetPathParams = dataclasses.field() - request: Optional[CreateExpenseDatasetRequestBody] = 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 }}) + request_body: Optional[CreateExpenseDatasetRequestBody] = dataclasses.field(default=None, metadata={'request': { 'media_type': 'application/json' }}) @dataclass_json(undefined=Undefined.EXCLUDE) diff --git a/expenses/src/codat/models/operations/create_partnerexpense_connection.py b/expenses/src/codat/models/operations/create_partnerexpense_connection.py index 5d8408e45..1936d33be 100755 --- a/expenses/src/codat/models/operations/create_partnerexpense_connection.py +++ b/expenses/src/codat/models/operations/create_partnerexpense_connection.py @@ -10,14 +10,9 @@ from typing import Optional -@dataclasses.dataclass -class CreatePartnerexpenseConnectionPathParams: - company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) - - @dataclasses.dataclass class CreatePartnerexpenseConnectionRequest: - path_params: CreatePartnerexpenseConnectionPathParams = dataclasses.field() + company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) @dataclass_json(undefined=Undefined.EXCLUDE) diff --git a/expenses/src/codat/models/operations/get_company_configuration.py b/expenses/src/codat/models/operations/get_company_configuration.py index 9fd17aff3..9e41b44f9 100755 --- a/expenses/src/codat/models/operations/get_company_configuration.py +++ b/expenses/src/codat/models/operations/get_company_configuration.py @@ -6,14 +6,9 @@ from typing import Optional -@dataclasses.dataclass -class GetCompanyConfigurationPathParams: - company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) - - @dataclasses.dataclass class GetCompanyConfigurationRequest: - path_params: GetCompanyConfigurationPathParams = dataclasses.field() + company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) @dataclass_json(undefined=Undefined.EXCLUDE) diff --git a/expenses/src/codat/models/operations/get_last_successful_sync.py b/expenses/src/codat/models/operations/get_last_successful_sync.py index d170493bb..529c734d5 100755 --- a/expenses/src/codat/models/operations/get_last_successful_sync.py +++ b/expenses/src/codat/models/operations/get_last_successful_sync.py @@ -9,14 +9,9 @@ from typing import Optional -@dataclasses.dataclass -class GetLastSuccessfulSyncPathParams: - company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) - - @dataclasses.dataclass class GetLastSuccessfulSyncRequest: - path_params: GetLastSuccessfulSyncPathParams = dataclasses.field() + company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) @dataclass_json(undefined=Undefined.EXCLUDE) diff --git a/expenses/src/codat/models/operations/get_latest_sync.py b/expenses/src/codat/models/operations/get_latest_sync.py index 589665386..8f9d08fd5 100755 --- a/expenses/src/codat/models/operations/get_latest_sync.py +++ b/expenses/src/codat/models/operations/get_latest_sync.py @@ -9,14 +9,9 @@ from typing import Optional -@dataclasses.dataclass -class GetLatestSyncPathParams: - company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) - - @dataclasses.dataclass class GetLatestSyncRequest: - path_params: GetLatestSyncPathParams = dataclasses.field() + company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) @dataclass_json(undefined=Undefined.EXCLUDE) diff --git a/expenses/src/codat/models/operations/get_mapping_options.py b/expenses/src/codat/models/operations/get_mapping_options.py index c6d257276..2458633c2 100755 --- a/expenses/src/codat/models/operations/get_mapping_options.py +++ b/expenses/src/codat/models/operations/get_mapping_options.py @@ -10,14 +10,9 @@ from typing import Optional -@dataclasses.dataclass -class GetMappingOptionsPathParams: - company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) - - @dataclasses.dataclass class GetMappingOptionsRequest: - path_params: GetMappingOptionsPathParams = dataclasses.field() + company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) class GetMappingOptions200ApplicationJSONAccountsAccountTypeEnum(str, Enum): ASSET = "Asset" diff --git a/expenses/src/codat/models/operations/get_sync_by_id.py b/expenses/src/codat/models/operations/get_sync_by_id.py index 84034aa73..ad4eb773e 100755 --- a/expenses/src/codat/models/operations/get_sync_by_id.py +++ b/expenses/src/codat/models/operations/get_sync_by_id.py @@ -10,16 +10,11 @@ @dataclasses.dataclass -class GetSyncByIDPathParams: +class GetSyncByIDRequest: company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) sync_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'syncId', 'style': 'simple', 'explode': False }}) -@dataclasses.dataclass -class GetSyncByIDRequest: - path_params: GetSyncByIDPathParams = dataclasses.field() - - @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetSyncByID200ApplicationJSON: diff --git a/expenses/src/codat/models/operations/get_sync_transaction.py b/expenses/src/codat/models/operations/get_sync_transaction.py index 3b1ac6d19..193c5e420 100755 --- a/expenses/src/codat/models/operations/get_sync_transaction.py +++ b/expenses/src/codat/models/operations/get_sync_transaction.py @@ -8,16 +8,11 @@ @dataclasses.dataclass -class GetSyncTransactionPathParams: +class GetSyncTransactionRequest: company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) sync_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'syncId', 'style': 'simple', 'explode': False }}) transaction_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'transactionId', 'style': 'simple', 'explode': False }}) - -@dataclasses.dataclass -class GetSyncTransactionRequest: - path_params: GetSyncTransactionPathParams = dataclasses.field() - class GetSyncTransaction200ApplicationJSONIntegrationTypeEnum(str, Enum): EXPENSES = "expenses" BANKFEEDS = "bankfeeds" diff --git a/expenses/src/codat/models/operations/get_sync_transactions.py b/expenses/src/codat/models/operations/get_sync_transactions.py index 7d05650f5..11e1c1377 100755 --- a/expenses/src/codat/models/operations/get_sync_transactions.py +++ b/expenses/src/codat/models/operations/get_sync_transactions.py @@ -8,23 +8,13 @@ @dataclasses.dataclass -class GetSyncTransactionsPathParams: +class GetSyncTransactionsRequest: company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) - sync_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'syncId', 'style': 'simple', 'explode': False }}) - - -@dataclasses.dataclass -class GetSyncTransactionsQueryParams: page: float = dataclasses.field(metadata={'query_param': { 'field_name': 'page', 'style': 'form', 'explode': True }}) + sync_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'syncId', 'style': 'simple', 'explode': False }}) page_size: Optional[float] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'pageSize', 'style': 'form', 'explode': True }}) -@dataclasses.dataclass -class GetSyncTransactionsRequest: - path_params: GetSyncTransactionsPathParams = dataclasses.field() - query_params: GetSyncTransactionsQueryParams = dataclasses.field() - - @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class GetSyncTransactions200ApplicationJSONHalLink: diff --git a/expenses/src/codat/models/operations/intiate_sync.py b/expenses/src/codat/models/operations/intiate_sync.py index a0e70a7c7..68c7a842a 100755 --- a/expenses/src/codat/models/operations/intiate_sync.py +++ b/expenses/src/codat/models/operations/intiate_sync.py @@ -6,11 +6,6 @@ from typing import Optional -@dataclasses.dataclass -class IntiateSyncPathParams: - company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) - - @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class IntiateSyncRequestBody: @@ -19,8 +14,8 @@ class IntiateSyncRequestBody: @dataclasses.dataclass class IntiateSyncRequest: - path_params: IntiateSyncPathParams = dataclasses.field() - request: Optional[IntiateSyncRequestBody] = 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 }}) + request_body: Optional[IntiateSyncRequestBody] = dataclasses.field(default=None, metadata={'request': { 'media_type': 'application/json' }}) @dataclass_json(undefined=Undefined.EXCLUDE) diff --git a/expenses/src/codat/models/operations/list_syncs.py b/expenses/src/codat/models/operations/list_syncs.py index 9c0c0c829..f969aeffe 100755 --- a/expenses/src/codat/models/operations/list_syncs.py +++ b/expenses/src/codat/models/operations/list_syncs.py @@ -9,14 +9,9 @@ from typing import Optional -@dataclasses.dataclass -class ListSyncsPathParams: - company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) - - @dataclasses.dataclass class ListSyncsRequest: - path_params: ListSyncsPathParams = dataclasses.field() + company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) @dataclass_json(undefined=Undefined.EXCLUDE) diff --git a/expenses/src/codat/models/operations/save_company_configuration.py b/expenses/src/codat/models/operations/save_company_configuration.py index 1815b0163..02a829991 100755 --- a/expenses/src/codat/models/operations/save_company_configuration.py +++ b/expenses/src/codat/models/operations/save_company_configuration.py @@ -6,11 +6,6 @@ from typing import Optional -@dataclasses.dataclass -class SaveCompanyConfigurationPathParams: - company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) - - @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class SaveCompanyConfigurationRequestBodyBankAccount: @@ -39,8 +34,8 @@ class SaveCompanyConfigurationRequestBody: @dataclasses.dataclass class SaveCompanyConfigurationRequest: - path_params: SaveCompanyConfigurationPathParams = dataclasses.field() - request: Optional[SaveCompanyConfigurationRequestBody] = 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 }}) + request_body: Optional[SaveCompanyConfigurationRequestBody] = dataclasses.field(default=None, metadata={'request': { 'media_type': 'application/json' }}) @dataclass_json(undefined=Undefined.EXCLUDE) diff --git a/expenses/src/codat/models/operations/upload_attachment.py b/expenses/src/codat/models/operations/upload_attachment.py index 39927db55..bf3627a24 100755 --- a/expenses/src/codat/models/operations/upload_attachment.py +++ b/expenses/src/codat/models/operations/upload_attachment.py @@ -7,17 +7,12 @@ @dataclasses.dataclass -class UploadAttachmentPathParams: +class UploadAttachmentRequest: company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }}) sync_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'syncId', 'style': 'simple', 'explode': False }}) transaction_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'transactionId', 'style': 'simple', 'explode': False }}) -@dataclasses.dataclass -class UploadAttachmentRequest: - path_params: UploadAttachmentPathParams = dataclasses.field() - - @dataclass_json(undefined=Undefined.EXCLUDE) @dataclasses.dataclass class UploadAttachment200ApplicationJSON: diff --git a/expenses/src/codat/sdk.py b/expenses/src/codat/sdk.py index ec8f9ebf4..d1e63706b 100755 --- a/expenses/src/codat/sdk.py +++ b/expenses/src/codat/sdk.py @@ -36,37 +36,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/expenses/src/codat/sync.py b/expenses/src/codat/sync.py index 873f759dd..18362950e 100755 --- a/expenses/src/codat/sync.py +++ b/expenses/src/codat/sync.py @@ -26,10 +26,10 @@ def intiate_sync(self, request: operations.IntiateSyncRequest) -> operations.Int base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs', request.path_params) + url = utils.generate_url(operations.IntiateSyncRequest, base_url, '/companies/{companyId}/sync/expenses/syncs', 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/expenses/src/codat/sync_status.py b/expenses/src/codat/sync_status.py index ebcbb1eae..027293e02 100755 --- a/expenses/src/codat/sync_status.py +++ b/expenses/src/codat/sync_status.py @@ -26,7 +26,7 @@ def get_last_successful_sync(self, request: operations.GetLastSuccessfulSyncRequ base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs/lastSuccessful/status', request.path_params) + url = utils.generate_url(operations.GetLastSuccessfulSyncRequest, base_url, '/companies/{companyId}/sync/expenses/syncs/lastSuccessful/status', request) client = self._security_client @@ -50,7 +50,7 @@ def get_latest_sync(self, request: operations.GetLatestSyncRequest) -> operation base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs/latest/status', request.path_params) + url = utils.generate_url(operations.GetLatestSyncRequest, base_url, '/companies/{companyId}/sync/expenses/syncs/latest/status', request) client = self._security_client @@ -74,7 +74,7 @@ def get_sync_by_id(self, request: operations.GetSyncByIDRequest) -> operations.G base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs/{syncId}/status', request.path_params) + url = utils.generate_url(operations.GetSyncByIDRequest, base_url, '/companies/{companyId}/sync/expenses/syncs/{syncId}/status', request) client = self._security_client @@ -98,7 +98,7 @@ def list_syncs(self, request: operations.ListSyncsRequest) -> operations.ListSyn base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs/list/status', request.path_params) + url = utils.generate_url(operations.ListSyncsRequest, base_url, '/companies/{companyId}/sync/expenses/syncs/list/status', request) client = self._security_client diff --git a/expenses/src/codat/transaction_status.py b/expenses/src/codat/transaction_status.py index c4d4edb25..b92f0a2a0 100755 --- a/expenses/src/codat/transaction_status.py +++ b/expenses/src/codat/transaction_status.py @@ -26,7 +26,7 @@ def get_sync_transaction(self, request: operations.GetSyncTransactionRequest) -> base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs/{syncId}/transactions/{transactionId}', request.path_params) + url = utils.generate_url(operations.GetSyncTransactionRequest, base_url, '/companies/{companyId}/sync/expenses/syncs/{syncId}/transactions/{transactionId}', request) client = self._security_client @@ -50,9 +50,9 @@ def get_sync_transactions(self, request: operations.GetSyncTransactionsRequest) base_url = self._server_url - url = utils.generate_url(base_url, '/companies/{companyId}/sync/expenses/syncs/{syncId}/transactions', request.path_params) + url = utils.generate_url(operations.GetSyncTransactionsRequest, base_url, '/companies/{companyId}/sync/expenses/syncs/{syncId}/transactions', request) - query_params = utils.get_query_params(request.query_params) + query_params = utils.get_query_params(operations.GetSyncTransactionsRequest, request) client = self._security_client diff --git a/expenses/src/codat/utils/utils.py b/expenses/src/codat/utils/utils.py index d900928b2..10c6d4f92 100755 --- a/expenses/src/codat/utils/utils.py +++ b/expenses/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