POST | /ext/powens/connection_synced |
---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Stability:
status: Optional[str] = None
last_update: Optional[datetime.datetime] = None
class AuthMechanism(IntEnum):
CREDENTIALS = 'credentials'
WEB_AUTH = 'webauth'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ConnectorReq:
id: Optional[int] = None
name: Optional[str] = None
hidden: Optional[bool] = None
charged: Optional[bool] = None
code: Optional[str] = None
beta: Optional[bool] = None
color: Optional[str] = None
slug: Optional[str] = None
sync_periodicity: Optional[Decimal] = None
months_to_fetch: Optional[int] = None
siret: Optional[str] = None
uuid: Optional[str] = None
restricted: Optional[bool] = None
stability: Optional[Stability] = None
capabilities: Optional[List[str]] = None
available_auth_mechanisms: Optional[List[AuthMechanism]] = None
categories: Optional[List[str]] = None
auth_mechanism: Optional[AuthMechanism] = None
account_types: Optional[List[Object]] = None
account_usages: Optional[List[Object]] = None
documents_type: Optional[List[str]] = None
products: Optional[List[Object]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ConnectionRequest:
id: Optional[int] = None
id_user: Optional[int] = None
id_connector: Optional[int] = None
last_update: Optional[datetime.datetime] = None
created: Optional[datetime.datetime] = None
active: Optional[bool] = None
last_push: Optional[datetime.datetime] = None
next_try: Optional[datetime.datetime] = None
connector: Optional[ConnectorReq] = None
accounts: Optional[List[PowensAccount]] = None
state: Optional[str] = None
error: Optional[str] = None
error_message: Optional[str] = None
expire: Optional[datetime.datetime] = None
id_provider: Optional[int] = None
id_bank: Optional[int] = None
bank: Optional[ConnectorReq] = None
connector_uuid: Optional[str] = None
informations: Optional[Object] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PowensConnectionSyncRequest:
connection: Optional[ConnectionRequest] = None
push_type: Optional[str] = None
id_webhook_data: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PowensCurrency:
id: Optional[str] = None
name: Optional[str] = None
symbol: Optional[str] = None
crypto: Optional[bool] = None
precision: Optional[int] = None
prefix: Optional[bool] = None
marketcap: Optional[Object] = None
datetime: Optional[datetime.datetime] = None
class AccountUsage(IntEnum):
PRIV = 1
ORGA = 2
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PowensInformation:
version: Optional[str] = None
provider_type: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PowensLoan:
total_amount: Optional[Decimal] = None
available_amount: Optional[Decimal] = None
used_amount: Optional[Decimal] = None
subscription_date: Optional[datetime.datetime] = None
maturity_date: Optional[datetime.datetime] = None
next_payment_amount: Optional[Decimal] = None
next_payment_date: Optional[datetime.datetime] = None
rate: Optional[Decimal] = None
nb_payments_left: Optional[int] = None
nb_payments_done: Optional[int] = None
nb_payments_total: Optional[int] = None
last_payment_amount: Optional[Decimal] = None
last_payment_date: Optional[datetime.datetime] = None
account_label: Optional[str] = None
insurance_label: Optional[str] = None
insurance_amount: Optional[Decimal] = None
insurance_rate: Optional[Decimal] = None
duration: Optional[int] = None
type: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PowensAccount:
investments: Optional[List[PowensInvestment]] = None
id: Optional[int] = None
id_connection: Optional[int] = None
id_user: Optional[int] = None
id_source: Optional[int] = None
id_parent: Optional[int] = None
number: Optional[str] = None
web_id: Optional[str] = None
original_name: Optional[str] = None
balance: Optional[Decimal] = None
coming: Optional[Decimal] = None
display: Optional[bool] = None
last_update: Optional[datetime.datetime] = None
deleted: Optional[datetime.datetime] = None
disabled: Optional[datetime.datetime] = None
iban: Optional[str] = None
currency: Optional[PowensCurrency] = None
id_type: Optional[int] = None
bookmarked: Optional[int] = None
name: Optional[str] = None
error: Optional[str] = None
usage: Optional[AccountUsage] = None
company_name: Optional[str] = None
opening_date: Optional[datetime.datetime] = None
bic: Optional[Object] = None
coming_balances: Optional[int] = None
formatted_balance: Optional[str] = None
type: Optional[str] = None
calculated: Optional[List[str]] = None
valuation: Optional[float] = None
diff: Optional[float] = None
diff_percent: Optional[float] = None
prev_diff: Optional[float] = None
prev_diff_percent: Optional[float] = None
information: Optional[PowensInformation] = None
loan: Optional[PowensLoan] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Currency:
id: Optional[str] = None
name: Optional[str] = None
symbol: Optional[str] = None
crypto: Optional[bool] = None
precision: Optional[int] = None
prefix: Optional[bool] = None
marketcap: Optional[Object] = None
datetime: Optional[datetime.datetime] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PowensInvestment:
id: Optional[int] = None
id_account: Optional[int] = None
label: Optional[str] = None
code: Optional[str] = None
code_type: Optional[str] = None
stock_symbol: Optional[str] = None
stock_market: Optional[Object] = None
source: Optional[str] = None
description: Optional[str] = None
quantity: Optional[Decimal] = None
unit_price: Optional[Decimal] = None
unit_value: Optional[Decimal] = None
valuation: Optional[Decimal] = None
diff: Optional[Decimal] = None
diff_percent: Optional[Decimal] = None
prev_diff: Optional[Decimal] = None
portfolio_share: Optional[Decimal] = None
v_date: Optional[datetime.datetime] = None
prev_v_date: Optional[datetime.datetime] = None
id_security: Optional[int] = None
original_currency: Optional[Currency] = None
original_valuation: Optional[Decimal] = None
original_unit_value: Optional[Decimal] = None
original_unit_price: Optional[Decimal] = None
original_diff: Optional[Decimal] = None
last_update: Optional[datetime.datetime] = None
deleted: Optional[datetime.datetime] = None
calculated: Optional[List[str]] = None
id_type: Optional[int] = None
Python PowensConnectionSyncRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /ext/powens/connection_synced HTTP/1.1
Host: hcbtas-q-albamfs-api.azurewebsites.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
connection:
{
id: 0,
id_user: 0,
id_connector: 0,
last_update: 0001-01-01,
created: 0001-01-01,
active: False,
last_push: 0001-01-01,
next_try: 0001-01-01,
connector:
{
id: 0,
name: String,
hidden: False,
charged: False,
code: String,
beta: False,
color: String,
slug: String,
sync_periodicity: 0,
months_to_fetch: 0,
siret: String,
uuid: String,
restricted: False,
stability:
{
status: String,
lastUpdate: 0001-01-01
},
capabilities:
[
String
],
available_auth_mechanisms:
[
credentials
],
categories:
[
String
],
auth_mechanism: credentials,
account_types:
[
{
}
],
account_usage:
[
{
}
],
documents_type:
[
String
],
products:
[
{
}
]
},
accounts:
[
{
investments:
[
{
id: 0,
id_account: 0,
label: String,
code: String,
code_type: String,
stock_symbol: String,
stock_market: {},
source: String,
description: String,
quantity: 0,
unitprice: 0,
unitvalue: 0,
valuation: 0,
diff: 0,
diff_percent: 0,
prev_diff: 0,
portfolio_share: 0,
vdate: 0001-01-01,
prev_vdate: 0001-01-01,
id_security: 0,
original_currency:
{
id: String,
name: String,
symbol: String,
crypto: False,
precision: 0,
prefix: False,
marketcap: {},
datetime: 0001-01-01
},
original_valuation: 0,
original_unitvalue: 0,
original_unitprice: 0,
original_diff: 0,
last_update: 0001-01-01,
deleted: 0001-01-01,
calculated:
[
String
],
id_type: 0
}
],
id: 0,
id_connection: 0,
id_user: 0,
id_source: 0,
id_parent: 0,
number: String,
webid: String,
original_name: String,
balance: 0,
coming: 0,
display: False,
last_update: 0001-01-01,
deleted: 0001-01-01,
disabled: 0001-01-01,
iban: String,
currency:
{
id: String,
name: String,
symbol: String,
crypto: False,
precision: 0,
prefix: False,
marketcap: {},
datetime: 0001-01-01
},
id_type: 0,
bookmarked: 0,
name: String,
error: String,
usage: 0,
company_name: String,
opening_date: 0001-01-01,
bic: {},
coming_balance: 0,
formatted_balance: String,
type: String,
calculated:
[
String
],
valuation: 0,
diff: 0,
diff_percent: 0,
prev_diff: 0,
prev_diff_percent: 0,
information:
{
version: String,
provider_type: String
},
loan:
{
total_amount: 0,
available_amount: 0,
used_amount: 0,
subscription_date: 0001-01-01,
maturity_date: 0001-01-01,
next_payment_amount: 0,
next_payment_date: 0001-01-01,
rate: 0,
nb_payments_left: 0,
nb_payments_done: 0,
nb_payments_total: 0,
last_payment_amount: 0,
last_payment_date: 0001-01-01,
account_label: String,
insurance_label: String,
insurance_amount: 0,
insurance_rate: 0,
duration: 0,
type: String
}
}
],
state: String,
error: String,
error_message: String,
expire: 0001-01-01,
id_provider: 0,
id_bank: 0,
bank:
{
id: 0,
name: String,
hidden: False,
charged: False,
code: String,
beta: False,
color: String,
slug: String,
sync_periodicity: 0,
months_to_fetch: 0,
siret: String,
uuid: String,
restricted: False,
stability:
{
status: String,
lastUpdate: 0001-01-01
},
capabilities:
[
String
],
available_auth_mechanisms:
[
credentials
],
categories:
[
String
],
auth_mechanism: credentials,
account_types:
[
{
}
],
account_usage:
[
{
}
],
documents_type:
[
String
],
products:
[
{
}
]
},
connector_uuid: String,
informations: {}
},
push_type: String,
id_webhook_data: 0
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { version: { major: 0, minor: 0, build: -1, revision: -1, majorRevision: -1, minorRevision: -1 }, content: { __type: "System.Net.Http.EmptyContent, System.Net.Http", headers: [] }, statusCode: Continue, reasonPhrase: String, headers: [], trailingHeaders: [], requestMessage: { version: { major: 0, minor: 0, build: -1, revision: -1, majorRevision: -1, minorRevision: -1 }, versionPolicy: RequestVersionOrLower, method: { method: GET }, headers: [], properties: {}, options: {} }, isSuccessStatusCode: False }