pluggy-sdk 1.0.0.post20__py3-none-any.whl → 1.0.0.post21__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
pluggy_sdk/__init__.py CHANGED
@@ -15,7 +15,7 @@
15
15
  """ # noqa: E501
16
16
 
17
17
 
18
- __version__ = "1.0.0.post20"
18
+ __version__ = "1.0.0.post21"
19
19
 
20
20
  # import apis into sdk package
21
21
  from pluggy_sdk.api.account_api import AccountApi
@@ -130,6 +130,12 @@ from pluggy_sdk.models.global_error_response import GlobalErrorResponse
130
130
  from pluggy_sdk.models.i_count_response import ICountResponse
131
131
  from pluggy_sdk.models.identity_relation import IdentityRelation
132
132
  from pluggy_sdk.models.identity_response import IdentityResponse
133
+ from pluggy_sdk.models.identity_response_financial_relationships import IdentityResponseFinancialRelationships
134
+ from pluggy_sdk.models.identity_response_financial_relationships_accounts_inner import IdentityResponseFinancialRelationshipsAccountsInner
135
+ from pluggy_sdk.models.identity_response_financial_relationships_procurators_inner import IdentityResponseFinancialRelationshipsProcuratorsInner
136
+ from pluggy_sdk.models.identity_response_qualifications import IdentityResponseQualifications
137
+ from pluggy_sdk.models.identity_response_qualifications_informed_income import IdentityResponseQualificationsInformedIncome
138
+ from pluggy_sdk.models.identity_response_qualifications_informed_patrimony import IdentityResponseQualificationsInformedPatrimony
133
139
  from pluggy_sdk.models.income_report import IncomeReport
134
140
  from pluggy_sdk.models.income_reports_response import IncomeReportsResponse
135
141
  from pluggy_sdk.models.investment import Investment
pluggy_sdk/api_client.py CHANGED
@@ -91,7 +91,7 @@ class ApiClient:
91
91
  self.default_headers[header_name] = header_value
92
92
  self.cookie = cookie
93
93
  # Set default User-Agent.
94
- self.user_agent = 'OpenAPI-Generator/1.0.0.post20/python'
94
+ self.user_agent = 'OpenAPI-Generator/1.0.0.post21/python'
95
95
  self.client_side_validation = configuration.client_side_validation
96
96
 
97
97
  def __enter__(self):
@@ -414,7 +414,7 @@ conf = pluggy_sdk.Configuration(
414
414
  "OS: {env}\n"\
415
415
  "Python Version: {pyversion}\n"\
416
416
  "Version of the API: 1.0.0\n"\
417
- "SDK Package Version: 1.0.0.post20".\
417
+ "SDK Package Version: 1.0.0.post21".\
418
418
  format(env=sys.platform, pyversion=sys.version)
419
419
 
420
420
  def get_host_settings(self):
@@ -88,6 +88,12 @@ from pluggy_sdk.models.global_error_response import GlobalErrorResponse
88
88
  from pluggy_sdk.models.i_count_response import ICountResponse
89
89
  from pluggy_sdk.models.identity_relation import IdentityRelation
90
90
  from pluggy_sdk.models.identity_response import IdentityResponse
91
+ from pluggy_sdk.models.identity_response_financial_relationships import IdentityResponseFinancialRelationships
92
+ from pluggy_sdk.models.identity_response_financial_relationships_accounts_inner import IdentityResponseFinancialRelationshipsAccountsInner
93
+ from pluggy_sdk.models.identity_response_financial_relationships_procurators_inner import IdentityResponseFinancialRelationshipsProcuratorsInner
94
+ from pluggy_sdk.models.identity_response_qualifications import IdentityResponseQualifications
95
+ from pluggy_sdk.models.identity_response_qualifications_informed_income import IdentityResponseQualificationsInformedIncome
96
+ from pluggy_sdk.models.identity_response_qualifications_informed_patrimony import IdentityResponseQualificationsInformedPatrimony
91
97
  from pluggy_sdk.models.income_report import IncomeReport
92
98
  from pluggy_sdk.models.income_reports_response import IncomeReportsResponse
93
99
  from pluggy_sdk.models.investment import Investment
@@ -19,11 +19,13 @@ import re # noqa: F401
19
19
  import json
20
20
 
21
21
  from datetime import datetime
22
- from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
23
23
  from typing import Any, ClassVar, Dict, List, Optional
24
24
  from pluggy_sdk.models.address import Address
25
25
  from pluggy_sdk.models.email import Email
26
26
  from pluggy_sdk.models.identity_relation import IdentityRelation
27
+ from pluggy_sdk.models.identity_response_financial_relationships import IdentityResponseFinancialRelationships
28
+ from pluggy_sdk.models.identity_response_qualifications import IdentityResponseQualifications
27
29
  from pluggy_sdk.models.phone_number import PhoneNumber
28
30
  from typing import Optional, Set
29
31
  from typing_extensions import Self
@@ -47,7 +49,20 @@ class IdentityResponse(BaseModel):
47
49
  emails: Optional[List[Email]] = Field(default=None, description="List of email addresses related to the account")
48
50
  addresses: Optional[List[Address]] = Field(default=None, description="List of addresses related to the account")
49
51
  relations: Optional[List[IdentityRelation]] = Field(default=None, description="List of names related to the account")
50
- __properties: ClassVar[List[str]] = ["id", "itemId", "birthDate", "taxNumber", "document", "documentType", "jobTitle", "fullName", "establishmentCode", "establishmentName", "companyName", "phoneNumbers", "emails", "addresses", "relations"]
52
+ investor_profile: Optional[StrictStr] = Field(default=None, description="Is a rating that indicates the investor personality and motivation for investing", alias="investorProfile")
53
+ qualifications: Optional[IdentityResponseQualifications] = None
54
+ financial_relationships: Optional[IdentityResponseFinancialRelationships] = Field(default=None, alias="financialRelationships")
55
+ __properties: ClassVar[List[str]] = ["id", "itemId", "birthDate", "taxNumber", "document", "documentType", "jobTitle", "fullName", "establishmentCode", "establishmentName", "companyName", "phoneNumbers", "emails", "addresses", "relations", "investorProfile", "qualifications", "financialRelationships"]
56
+
57
+ @field_validator('investor_profile')
58
+ def investor_profile_validate_enum(cls, value):
59
+ """Validates the enum"""
60
+ if value is None:
61
+ return value
62
+
63
+ if value not in set(['Conservative', 'Moderate', 'Aggressive']):
64
+ raise ValueError("must be one of enum values ('Conservative', 'Moderate', 'Aggressive')")
65
+ return value
51
66
 
52
67
  model_config = ConfigDict(
53
68
  populate_by_name=True,
@@ -116,6 +131,12 @@ class IdentityResponse(BaseModel):
116
131
  if _item_relations:
117
132
  _items.append(_item_relations.to_dict())
118
133
  _dict['relations'] = _items
134
+ # override the default output from pydantic by calling `to_dict()` of qualifications
135
+ if self.qualifications:
136
+ _dict['qualifications'] = self.qualifications.to_dict()
137
+ # override the default output from pydantic by calling `to_dict()` of financial_relationships
138
+ if self.financial_relationships:
139
+ _dict['financialRelationships'] = self.financial_relationships.to_dict()
119
140
  return _dict
120
141
 
121
142
  @classmethod
@@ -142,7 +163,10 @@ class IdentityResponse(BaseModel):
142
163
  "phoneNumbers": [PhoneNumber.from_dict(_item) for _item in obj["phoneNumbers"]] if obj.get("phoneNumbers") is not None else None,
143
164
  "emails": [Email.from_dict(_item) for _item in obj["emails"]] if obj.get("emails") is not None else None,
144
165
  "addresses": [Address.from_dict(_item) for _item in obj["addresses"]] if obj.get("addresses") is not None else None,
145
- "relations": [IdentityRelation.from_dict(_item) for _item in obj["relations"]] if obj.get("relations") is not None else None
166
+ "relations": [IdentityRelation.from_dict(_item) for _item in obj["relations"]] if obj.get("relations") is not None else None,
167
+ "investorProfile": obj.get("investorProfile"),
168
+ "qualifications": IdentityResponseQualifications.from_dict(obj["qualifications"]) if obj.get("qualifications") is not None else None,
169
+ "financialRelationships": IdentityResponseFinancialRelationships.from_dict(obj["financialRelationships"]) if obj.get("financialRelationships") is not None else None
146
170
  })
147
171
  return _obj
148
172
 
@@ -0,0 +1,111 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Pluggy API
5
+
6
+ Pluggy's main API to review data and execute connectors
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Contact: hello@pluggy.ai
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from datetime import datetime
22
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
23
+ from typing import Any, ClassVar, Dict, List, Optional
24
+ from pluggy_sdk.models.identity_response_financial_relationships_accounts_inner import IdentityResponseFinancialRelationshipsAccountsInner
25
+ from pluggy_sdk.models.identity_response_financial_relationships_procurators_inner import IdentityResponseFinancialRelationshipsProcuratorsInner
26
+ from typing import Optional, Set
27
+ from typing_extensions import Self
28
+
29
+ class IdentityResponseFinancialRelationships(BaseModel):
30
+ """
31
+ Information that allows institutions to assess, evaluate, characterize, and classify the client with the purpose of understanding their risk profile and their economic-financial capacity
32
+ """ # noqa: E501
33
+ start_date: datetime = Field(description="Date when the relationship with the institution started", alias="startDate")
34
+ products_services_type: List[StrictStr] = Field(description="List of products and services that the client consumes", alias="productsServicesType")
35
+ procurators: List[IdentityResponseFinancialRelationshipsProcuratorsInner] = Field(description="List of procurators of the client")
36
+ accounts: Optional[List[IdentityResponseFinancialRelationshipsAccountsInner]] = Field(default=None, description="List of accounts of the client")
37
+ __properties: ClassVar[List[str]] = ["startDate", "productsServicesType", "procurators", "accounts"]
38
+
39
+ model_config = ConfigDict(
40
+ populate_by_name=True,
41
+ validate_assignment=True,
42
+ protected_namespaces=(),
43
+ )
44
+
45
+
46
+ def to_str(self) -> str:
47
+ """Returns the string representation of the model using alias"""
48
+ return pprint.pformat(self.model_dump(by_alias=True))
49
+
50
+ def to_json(self) -> str:
51
+ """Returns the JSON representation of the model using alias"""
52
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
53
+ return json.dumps(self.to_dict())
54
+
55
+ @classmethod
56
+ def from_json(cls, json_str: str) -> Optional[Self]:
57
+ """Create an instance of IdentityResponseFinancialRelationships from a JSON string"""
58
+ return cls.from_dict(json.loads(json_str))
59
+
60
+ def to_dict(self) -> Dict[str, Any]:
61
+ """Return the dictionary representation of the model using alias.
62
+
63
+ This has the following differences from calling pydantic's
64
+ `self.model_dump(by_alias=True)`:
65
+
66
+ * `None` is only added to the output dict for nullable fields that
67
+ were set at model initialization. Other fields with value `None`
68
+ are ignored.
69
+ """
70
+ excluded_fields: Set[str] = set([
71
+ ])
72
+
73
+ _dict = self.model_dump(
74
+ by_alias=True,
75
+ exclude=excluded_fields,
76
+ exclude_none=True,
77
+ )
78
+ # override the default output from pydantic by calling `to_dict()` of each item in procurators (list)
79
+ _items = []
80
+ if self.procurators:
81
+ for _item_procurators in self.procurators:
82
+ if _item_procurators:
83
+ _items.append(_item_procurators.to_dict())
84
+ _dict['procurators'] = _items
85
+ # override the default output from pydantic by calling `to_dict()` of each item in accounts (list)
86
+ _items = []
87
+ if self.accounts:
88
+ for _item_accounts in self.accounts:
89
+ if _item_accounts:
90
+ _items.append(_item_accounts.to_dict())
91
+ _dict['accounts'] = _items
92
+ return _dict
93
+
94
+ @classmethod
95
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
96
+ """Create an instance of IdentityResponseFinancialRelationships from a dict"""
97
+ if obj is None:
98
+ return None
99
+
100
+ if not isinstance(obj, dict):
101
+ return cls.model_validate(obj)
102
+
103
+ _obj = cls.model_validate({
104
+ "startDate": obj.get("startDate"),
105
+ "productsServicesType": obj.get("productsServicesType"),
106
+ "procurators": [IdentityResponseFinancialRelationshipsProcuratorsInner.from_dict(_item) for _item in obj["procurators"]] if obj.get("procurators") is not None else None,
107
+ "accounts": [IdentityResponseFinancialRelationshipsAccountsInner.from_dict(_item) for _item in obj["accounts"]] if obj.get("accounts") is not None else None
108
+ })
109
+ return _obj
110
+
111
+
@@ -0,0 +1,98 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Pluggy API
5
+
6
+ Pluggy's main API to review data and execute connectors
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Contact: hello@pluggy.ai
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
+ from typing import Any, ClassVar, Dict, List
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class IdentityResponseFinancialRelationshipsAccountsInner(BaseModel):
27
+ """
28
+ IdentityResponseFinancialRelationshipsAccountsInner
29
+ """ # noqa: E501
30
+ compe_code: StrictStr = Field(description="COMPE code of the account", alias="compeCode")
31
+ branch_code: StrictStr = Field(description="Branch code of the account", alias="branchCode")
32
+ number: StrictStr = Field(description="Number of the account")
33
+ check_digit: StrictStr = Field(description="Check digit of the account", alias="checkDigit")
34
+ type: StrictStr = Field(description="Type of the account")
35
+ subtype: StrictStr = Field(description="Subtype of the account")
36
+ __properties: ClassVar[List[str]] = ["compeCode", "branchCode", "number", "checkDigit", "type", "subtype"]
37
+
38
+ model_config = ConfigDict(
39
+ populate_by_name=True,
40
+ validate_assignment=True,
41
+ protected_namespaces=(),
42
+ )
43
+
44
+
45
+ def to_str(self) -> str:
46
+ """Returns the string representation of the model using alias"""
47
+ return pprint.pformat(self.model_dump(by_alias=True))
48
+
49
+ def to_json(self) -> str:
50
+ """Returns the JSON representation of the model using alias"""
51
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
52
+ return json.dumps(self.to_dict())
53
+
54
+ @classmethod
55
+ def from_json(cls, json_str: str) -> Optional[Self]:
56
+ """Create an instance of IdentityResponseFinancialRelationshipsAccountsInner from a JSON string"""
57
+ return cls.from_dict(json.loads(json_str))
58
+
59
+ def to_dict(self) -> Dict[str, Any]:
60
+ """Return the dictionary representation of the model using alias.
61
+
62
+ This has the following differences from calling pydantic's
63
+ `self.model_dump(by_alias=True)`:
64
+
65
+ * `None` is only added to the output dict for nullable fields that
66
+ were set at model initialization. Other fields with value `None`
67
+ are ignored.
68
+ """
69
+ excluded_fields: Set[str] = set([
70
+ ])
71
+
72
+ _dict = self.model_dump(
73
+ by_alias=True,
74
+ exclude=excluded_fields,
75
+ exclude_none=True,
76
+ )
77
+ return _dict
78
+
79
+ @classmethod
80
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
81
+ """Create an instance of IdentityResponseFinancialRelationshipsAccountsInner from a dict"""
82
+ if obj is None:
83
+ return None
84
+
85
+ if not isinstance(obj, dict):
86
+ return cls.model_validate(obj)
87
+
88
+ _obj = cls.model_validate({
89
+ "compeCode": obj.get("compeCode"),
90
+ "branchCode": obj.get("branchCode"),
91
+ "number": obj.get("number"),
92
+ "checkDigit": obj.get("checkDigit"),
93
+ "type": obj.get("type"),
94
+ "subtype": obj.get("subtype")
95
+ })
96
+ return _obj
97
+
98
+
@@ -0,0 +1,101 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Pluggy API
5
+
6
+ Pluggy's main API to review data and execute connectors
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Contact: hello@pluggy.ai
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class IdentityResponseFinancialRelationshipsProcuratorsInner(BaseModel):
27
+ """
28
+ IdentityResponseFinancialRelationshipsProcuratorsInner
29
+ """ # noqa: E501
30
+ type: StrictStr = Field(description="Type of relationship with the client")
31
+ cpf_number: StrictStr = Field(description="CPF of the procurator", alias="cpfNumber")
32
+ civil_name: StrictStr = Field(description="Civil name of the procurator", alias="civilName")
33
+ social_name: Optional[StrictStr] = Field(default=None, description="Social name of the procurator", alias="socialName")
34
+ __properties: ClassVar[List[str]] = ["type", "cpfNumber", "civilName", "socialName"]
35
+
36
+ @field_validator('type')
37
+ def type_validate_enum(cls, value):
38
+ """Validates the enum"""
39
+ if value not in set(['REPRESENTANTE_LEGAL', 'PROCURADOR']):
40
+ raise ValueError("must be one of enum values ('REPRESENTANTE_LEGAL', 'PROCURADOR')")
41
+ return value
42
+
43
+ model_config = ConfigDict(
44
+ populate_by_name=True,
45
+ validate_assignment=True,
46
+ protected_namespaces=(),
47
+ )
48
+
49
+
50
+ def to_str(self) -> str:
51
+ """Returns the string representation of the model using alias"""
52
+ return pprint.pformat(self.model_dump(by_alias=True))
53
+
54
+ def to_json(self) -> str:
55
+ """Returns the JSON representation of the model using alias"""
56
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
57
+ return json.dumps(self.to_dict())
58
+
59
+ @classmethod
60
+ def from_json(cls, json_str: str) -> Optional[Self]:
61
+ """Create an instance of IdentityResponseFinancialRelationshipsProcuratorsInner from a JSON string"""
62
+ return cls.from_dict(json.loads(json_str))
63
+
64
+ def to_dict(self) -> Dict[str, Any]:
65
+ """Return the dictionary representation of the model using alias.
66
+
67
+ This has the following differences from calling pydantic's
68
+ `self.model_dump(by_alias=True)`:
69
+
70
+ * `None` is only added to the output dict for nullable fields that
71
+ were set at model initialization. Other fields with value `None`
72
+ are ignored.
73
+ """
74
+ excluded_fields: Set[str] = set([
75
+ ])
76
+
77
+ _dict = self.model_dump(
78
+ by_alias=True,
79
+ exclude=excluded_fields,
80
+ exclude_none=True,
81
+ )
82
+ return _dict
83
+
84
+ @classmethod
85
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
86
+ """Create an instance of IdentityResponseFinancialRelationshipsProcuratorsInner from a dict"""
87
+ if obj is None:
88
+ return None
89
+
90
+ if not isinstance(obj, dict):
91
+ return cls.model_validate(obj)
92
+
93
+ _obj = cls.model_validate({
94
+ "type": obj.get("type"),
95
+ "cpfNumber": obj.get("cpfNumber"),
96
+ "civilName": obj.get("civilName"),
97
+ "socialName": obj.get("socialName")
98
+ })
99
+ return _obj
100
+
101
+
@@ -0,0 +1,112 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Pluggy API
5
+
6
+ Pluggy's main API to review data and execute connectors
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Contact: hello@pluggy.ai
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
22
+ from typing import Any, ClassVar, Dict, List, Optional
23
+ from pluggy_sdk.models.identity_response_qualifications_informed_income import IdentityResponseQualificationsInformedIncome
24
+ from pluggy_sdk.models.identity_response_qualifications_informed_patrimony import IdentityResponseQualificationsInformedPatrimony
25
+ from typing import Optional, Set
26
+ from typing_extensions import Self
27
+
28
+ class IdentityResponseQualifications(BaseModel):
29
+ """
30
+ Information that allows understanding since when the consulted person has been a client of the institution, as well as an indicator of the products and services they currently consume and their representatives
31
+ """ # noqa: E501
32
+ company_cnpj: StrictStr = Field(description="CNPJ of the company", alias="companyCnpj")
33
+ occupation_code: Optional[StrictStr] = Field(default=None, description="Occupation code", alias="occupationCode")
34
+ informed_income: Optional[IdentityResponseQualificationsInformedIncome] = Field(default=None, alias="informedIncome")
35
+ informed_patrimony: Optional[IdentityResponseQualificationsInformedPatrimony] = Field(default=None, alias="informedPatrimony")
36
+ __properties: ClassVar[List[str]] = ["companyCnpj", "occupationCode", "informedIncome", "informedPatrimony"]
37
+
38
+ @field_validator('occupation_code')
39
+ def occupation_code_validate_enum(cls, value):
40
+ """Validates the enum"""
41
+ if value is None:
42
+ return value
43
+
44
+ if value not in set(['RECEITA_FEDERAL', 'CBO', 'OUTRO']):
45
+ raise ValueError("must be one of enum values ('RECEITA_FEDERAL', 'CBO', 'OUTRO')")
46
+ return value
47
+
48
+ model_config = ConfigDict(
49
+ populate_by_name=True,
50
+ validate_assignment=True,
51
+ protected_namespaces=(),
52
+ )
53
+
54
+
55
+ def to_str(self) -> str:
56
+ """Returns the string representation of the model using alias"""
57
+ return pprint.pformat(self.model_dump(by_alias=True))
58
+
59
+ def to_json(self) -> str:
60
+ """Returns the JSON representation of the model using alias"""
61
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
62
+ return json.dumps(self.to_dict())
63
+
64
+ @classmethod
65
+ def from_json(cls, json_str: str) -> Optional[Self]:
66
+ """Create an instance of IdentityResponseQualifications from a JSON string"""
67
+ return cls.from_dict(json.loads(json_str))
68
+
69
+ def to_dict(self) -> Dict[str, Any]:
70
+ """Return the dictionary representation of the model using alias.
71
+
72
+ This has the following differences from calling pydantic's
73
+ `self.model_dump(by_alias=True)`:
74
+
75
+ * `None` is only added to the output dict for nullable fields that
76
+ were set at model initialization. Other fields with value `None`
77
+ are ignored.
78
+ """
79
+ excluded_fields: Set[str] = set([
80
+ ])
81
+
82
+ _dict = self.model_dump(
83
+ by_alias=True,
84
+ exclude=excluded_fields,
85
+ exclude_none=True,
86
+ )
87
+ # override the default output from pydantic by calling `to_dict()` of informed_income
88
+ if self.informed_income:
89
+ _dict['informedIncome'] = self.informed_income.to_dict()
90
+ # override the default output from pydantic by calling `to_dict()` of informed_patrimony
91
+ if self.informed_patrimony:
92
+ _dict['informedPatrimony'] = self.informed_patrimony.to_dict()
93
+ return _dict
94
+
95
+ @classmethod
96
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
97
+ """Create an instance of IdentityResponseQualifications from a dict"""
98
+ if obj is None:
99
+ return None
100
+
101
+ if not isinstance(obj, dict):
102
+ return cls.model_validate(obj)
103
+
104
+ _obj = cls.model_validate({
105
+ "companyCnpj": obj.get("companyCnpj"),
106
+ "occupationCode": obj.get("occupationCode"),
107
+ "informedIncome": IdentityResponseQualificationsInformedIncome.from_dict(obj["informedIncome"]) if obj.get("informedIncome") is not None else None,
108
+ "informedPatrimony": IdentityResponseQualificationsInformedPatrimony.from_dict(obj["informedPatrimony"]) if obj.get("informedPatrimony") is not None else None
109
+ })
110
+ return _obj
111
+
112
+
@@ -0,0 +1,100 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Pluggy API
5
+
6
+ Pluggy's main API to review data and execute connectors
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Contact: hello@pluggy.ai
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from datetime import datetime
22
+ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator
23
+ from typing import Any, ClassVar, Dict, List, Union
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+
27
+ class IdentityResponseQualificationsInformedIncome(BaseModel):
28
+ """
29
+ Informed income
30
+ """ # noqa: E501
31
+ frequency: StrictStr = Field(description="Frequency of the informed income")
32
+ amount: Union[StrictFloat, StrictInt] = Field(description="Amount of the informed income")
33
+ var_date: datetime = Field(description="Date when the income was informed", alias="date")
34
+ __properties: ClassVar[List[str]] = ["frequency", "amount", "date"]
35
+
36
+ @field_validator('frequency')
37
+ def frequency_validate_enum(cls, value):
38
+ """Validates the enum"""
39
+ if value not in set(['DIARIA', 'SEMANAL', 'QUINZENAL', 'MENSAL', 'BIMESTRAL', 'TRIMESTRAL', 'SEMESTRAL', 'ANUAL', 'OUTROS']):
40
+ raise ValueError("must be one of enum values ('DIARIA', 'SEMANAL', 'QUINZENAL', 'MENSAL', 'BIMESTRAL', 'TRIMESTRAL', 'SEMESTRAL', 'ANUAL', 'OUTROS')")
41
+ return value
42
+
43
+ model_config = ConfigDict(
44
+ populate_by_name=True,
45
+ validate_assignment=True,
46
+ protected_namespaces=(),
47
+ )
48
+
49
+
50
+ def to_str(self) -> str:
51
+ """Returns the string representation of the model using alias"""
52
+ return pprint.pformat(self.model_dump(by_alias=True))
53
+
54
+ def to_json(self) -> str:
55
+ """Returns the JSON representation of the model using alias"""
56
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
57
+ return json.dumps(self.to_dict())
58
+
59
+ @classmethod
60
+ def from_json(cls, json_str: str) -> Optional[Self]:
61
+ """Create an instance of IdentityResponseQualificationsInformedIncome from a JSON string"""
62
+ return cls.from_dict(json.loads(json_str))
63
+
64
+ def to_dict(self) -> Dict[str, Any]:
65
+ """Return the dictionary representation of the model using alias.
66
+
67
+ This has the following differences from calling pydantic's
68
+ `self.model_dump(by_alias=True)`:
69
+
70
+ * `None` is only added to the output dict for nullable fields that
71
+ were set at model initialization. Other fields with value `None`
72
+ are ignored.
73
+ """
74
+ excluded_fields: Set[str] = set([
75
+ ])
76
+
77
+ _dict = self.model_dump(
78
+ by_alias=True,
79
+ exclude=excluded_fields,
80
+ exclude_none=True,
81
+ )
82
+ return _dict
83
+
84
+ @classmethod
85
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
86
+ """Create an instance of IdentityResponseQualificationsInformedIncome from a dict"""
87
+ if obj is None:
88
+ return None
89
+
90
+ if not isinstance(obj, dict):
91
+ return cls.model_validate(obj)
92
+
93
+ _obj = cls.model_validate({
94
+ "frequency": obj.get("frequency"),
95
+ "amount": obj.get("amount"),
96
+ "date": obj.get("date")
97
+ })
98
+ return _obj
99
+
100
+
@@ -0,0 +1,90 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Pluggy API
5
+
6
+ Pluggy's main API to review data and execute connectors
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Contact: hello@pluggy.ai
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+
16
+ from __future__ import annotations
17
+ import pprint
18
+ import re # noqa: F401
19
+ import json
20
+
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt
22
+ from typing import Any, ClassVar, Dict, List, Union
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class IdentityResponseQualificationsInformedPatrimony(BaseModel):
27
+ """
28
+ Informed patrimony
29
+ """ # noqa: E501
30
+ amount: Union[StrictFloat, StrictInt] = Field(description="Amount of the informed patrimony")
31
+ year: Union[StrictFloat, StrictInt] = Field(description="Year of the patrimony")
32
+ __properties: ClassVar[List[str]] = ["amount", "year"]
33
+
34
+ model_config = ConfigDict(
35
+ populate_by_name=True,
36
+ validate_assignment=True,
37
+ protected_namespaces=(),
38
+ )
39
+
40
+
41
+ def to_str(self) -> str:
42
+ """Returns the string representation of the model using alias"""
43
+ return pprint.pformat(self.model_dump(by_alias=True))
44
+
45
+ def to_json(self) -> str:
46
+ """Returns the JSON representation of the model using alias"""
47
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
48
+ return json.dumps(self.to_dict())
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> Optional[Self]:
52
+ """Create an instance of IdentityResponseQualificationsInformedPatrimony from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self) -> Dict[str, Any]:
56
+ """Return the dictionary representation of the model using alias.
57
+
58
+ This has the following differences from calling pydantic's
59
+ `self.model_dump(by_alias=True)`:
60
+
61
+ * `None` is only added to the output dict for nullable fields that
62
+ were set at model initialization. Other fields with value `None`
63
+ are ignored.
64
+ """
65
+ excluded_fields: Set[str] = set([
66
+ ])
67
+
68
+ _dict = self.model_dump(
69
+ by_alias=True,
70
+ exclude=excluded_fields,
71
+ exclude_none=True,
72
+ )
73
+ return _dict
74
+
75
+ @classmethod
76
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
77
+ """Create an instance of IdentityResponseQualificationsInformedPatrimony from a dict"""
78
+ if obj is None:
79
+ return None
80
+
81
+ if not isinstance(obj, dict):
82
+ return cls.model_validate(obj)
83
+
84
+ _obj = cls.model_validate({
85
+ "amount": obj.get("amount"),
86
+ "year": obj.get("year")
87
+ })
88
+ return _obj
89
+
90
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pluggy-sdk
3
- Version: 1.0.0.post20
3
+ Version: 1.0.0.post21
4
4
  Summary: Pluggy API
5
5
  Home-page: https://github.com/diraol/pluggy-python
6
6
  Author: Pluggy
@@ -8,7 +8,7 @@ Author-email: hello@pluggy.ai
8
8
  License: MIT
9
9
  Keywords: OpenAPI,OpenAPI-Generator,Pluggy API
10
10
  Description-Content-Type: text/markdown
11
- Requires-Dist: urllib3 <2.1.0,>=1.25.3
11
+ Requires-Dist: urllib3 <3.0.0,>=1.25.3
12
12
  Requires-Dist: python-dateutil
13
13
  Requires-Dist: pydantic >=2
14
14
  Requires-Dist: typing-extensions >=4.7.1
@@ -19,7 +19,7 @@ Pluggy's main API to review data and execute connectors
19
19
  This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
20
20
 
21
21
  - API version: 1.0.0
22
- - Package version: 1.0.0.post20
22
+ - Package version: 1.0.0.post21
23
23
  - Generator version: 7.9.0-SNAPSHOT
24
24
  - Build package: org.openapitools.codegen.languages.PythonClientCodegen
25
25
  For more information, please visit [https://pluggy.ai](https://pluggy.ai)
@@ -278,6 +278,12 @@ Class | Method | HTTP request | Description
278
278
  - [ICountResponse](docs/ICountResponse.md)
279
279
  - [IdentityRelation](docs/IdentityRelation.md)
280
280
  - [IdentityResponse](docs/IdentityResponse.md)
281
+ - [IdentityResponseFinancialRelationships](docs/IdentityResponseFinancialRelationships.md)
282
+ - [IdentityResponseFinancialRelationshipsAccountsInner](docs/IdentityResponseFinancialRelationshipsAccountsInner.md)
283
+ - [IdentityResponseFinancialRelationshipsProcuratorsInner](docs/IdentityResponseFinancialRelationshipsProcuratorsInner.md)
284
+ - [IdentityResponseQualifications](docs/IdentityResponseQualifications.md)
285
+ - [IdentityResponseQualificationsInformedIncome](docs/IdentityResponseQualificationsInformedIncome.md)
286
+ - [IdentityResponseQualificationsInformedPatrimony](docs/IdentityResponseQualificationsInformedPatrimony.md)
281
287
  - [IncomeReport](docs/IncomeReport.md)
282
288
  - [IncomeReportsResponse](docs/IncomeReportsResponse.md)
283
289
  - [Investment](docs/Investment.md)
@@ -1,7 +1,7 @@
1
- pluggy_sdk/__init__.py,sha256=cS9f4BPMWWT8T7vmiREaCCthToTdQMA-JVAVfh0FmA4,14079
2
- pluggy_sdk/api_client.py,sha256=wQjygJHwKlWCz0PfjvznpZGA8EBZ62YrSBQT6m5uNwA,27426
1
+ pluggy_sdk/__init__.py,sha256=271Cq589ij3yObyYqkBWMoFRQfp4nWQg5BfmXREy3l8,14822
2
+ pluggy_sdk/api_client.py,sha256=uL5gV3yzKHNKRy12B_-JnDM4Sk90hWR3bF_yj4DrY7M,27426
3
3
  pluggy_sdk/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
4
- pluggy_sdk/configuration.py,sha256=G2qBqFqKQjQqTw70cf97XX9YVeka5dqcz8xfbBLC5HI,15910
4
+ pluggy_sdk/configuration.py,sha256=60Xndu15f7rin5Po0TjsqyF8z4yiYw1zmUDMUpOyAqU,15910
5
5
  pluggy_sdk/exceptions.py,sha256=nnh92yDlGdY1-zRsb0vQLebe4oyhrO63RXCYBhbrhoU,5953
6
6
  pluggy_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  pluggy_sdk/rest.py,sha256=bul9ovAN4BXJwh9yRpC8xb9pZva6xIKmUD72sIQa2yM,9385
@@ -35,7 +35,7 @@ pluggy_sdk/api/smart_account_transfer_api.py,sha256=H-uScNzIIlUzymh8GHKLoypler5T
35
35
  pluggy_sdk/api/smart_transfer_api.py,sha256=txy3I7VsD8wlmzPAmKgva7szkTi_2ne3RDMo6zrcj-0,56198
36
36
  pluggy_sdk/api/transaction_api.py,sha256=P3uIVt77rC4f9ITPJjT9oi8-pFrM6RmpgXP55_unCME,37955
37
37
  pluggy_sdk/api/webhook_api.py,sha256=PmwRiQPIvl5vdDqNFdVKJLdBMGMyoccEHYmrxf7A4G4,56195
38
- pluggy_sdk/models/__init__.py,sha256=xSSvSWd46sq7IgrSU4EPusqi_rGWk7h3yvi2aNKck_4,12063
38
+ pluggy_sdk/models/__init__.py,sha256=_8dtYhm-fuynoyjJFXE5hQSOUHZZUm7RtgEeSa-D_sk,12806
39
39
  pluggy_sdk/models/account.py,sha256=olFI5wpLnLLE7OO22B4zlNzSAf5TP8kGPVmYar_VUdg,5536
40
40
  pluggy_sdk/models/accounts_list200_response.py,sha256=B4SakmOjxyOmTHYtTMmYKJo2nnKScnvqCN348JP98aE,3441
41
41
  pluggy_sdk/models/acquirer_anticipation.py,sha256=_z-lkqKpAML1Tr60J8MoGnc3sN0AOXYPJaTk_DVmYNg,4617
@@ -108,7 +108,13 @@ pluggy_sdk/models/email.py,sha256=X7c8gC0n13Y-aKyOdVoIEnnyi-7jMlFBmKJyYeiezpc,29
108
108
  pluggy_sdk/models/global_error_response.py,sha256=JP7wgaEYQN4wp35fB74XTYsh_AdviIcuaUexrymj1S8,3025
109
109
  pluggy_sdk/models/i_count_response.py,sha256=P6qECWikHU8-UiQWI-nzBkD1VUJK3HRKk6eD4-LccXQ,2554
110
110
  pluggy_sdk/models/identity_relation.py,sha256=d_jRZfiYsJOeO5AOpfa8iAiupzGSmXZVxk_bS6xZVDE,3269
111
- pluggy_sdk/models/identity_response.py,sha256=5AajIMbyzm2o0fTdwJ3V6PBrlDEv7rJl2FVVGwR3gvY,7275
111
+ pluggy_sdk/models/identity_response.py,sha256=retv3r7307H-PerdPNALByFJo4NawMcEfJZr4xSU-zg,9124
112
+ pluggy_sdk/models/identity_response_financial_relationships.py,sha256=Gmed60Oordnehha8Tmdq43NQ9L-IEM5tLdUy20PZn6U,4748
113
+ pluggy_sdk/models/identity_response_financial_relationships_accounts_inner.py,sha256=2jyB_aqemv1V10rRtPgOrcTYgk7HG-N30YIdDANyfJE,3366
114
+ pluggy_sdk/models/identity_response_financial_relationships_procurators_inner.py,sha256=uDi5zNmhr2zxwKPh1UXSTiIlpUyLe55DbcEFSR4J4jg,3490
115
+ pluggy_sdk/models/identity_response_qualifications.py,sha256=2iMs8BRGZbkEgifzBwCbps6cDczTfqYJ2L8x5BDHROw,4657
116
+ pluggy_sdk/models/identity_response_qualifications_informed_income.py,sha256=L0Q84omtHx5eBf92fuJb2ntH-27tIprspUzLJGqmad8,3421
117
+ pluggy_sdk/models/identity_response_qualifications_informed_patrimony.py,sha256=DxOFOA6Mw8fjoj8FXmXemFop_58-6rbAOxVjkcBvvtA,2797
112
118
  pluggy_sdk/models/income_report.py,sha256=MscdLVudpzaySJ__mKCBVD0vJcHoOKVIYyFJ6xaNS5U,2788
113
119
  pluggy_sdk/models/income_reports_response.py,sha256=cXTY6QSoXZ5gSzJD2rz992dQRHk01QImadetCVg_fy8,3538
114
120
  pluggy_sdk/models/investment.py,sha256=Wgrcn1BupoR-_2GRYHI5w_r7iuJJhQ-hNFPxaypXu7E,11148
@@ -207,7 +213,7 @@ pluggy_sdk/models/webhook.py,sha256=2KV31zqFfHMzYzdrfVW7Sam6BsKigdQnPOKjsRiFYqI,
207
213
  pluggy_sdk/models/webhook_creation_error_response.py,sha256=SMvNMvJANk1NTn9BEugfwRtnEsJuoMsFo8tVvci3ayw,2681
208
214
  pluggy_sdk/models/webhooks_list200_response.py,sha256=_C8cwBIpZZrODNt-BS_pwAyBjZPxls6ffsy8vqYA6RU,3384
209
215
  pluggy_sdk/models/weekly.py,sha256=rEjJdwn52bBC5sNRUoWsMQ2uoaX7tDz68R5OOgBF1uw,4096
210
- pluggy_sdk-1.0.0.post20.dist-info/METADATA,sha256=1ztCKtd6ZGrliXr0xmw2TQEI17DlslNY3kn1g_FGWe4,25140
211
- pluggy_sdk-1.0.0.post20.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
212
- pluggy_sdk-1.0.0.post20.dist-info/top_level.txt,sha256=4RLkSSAcNiYLnk0_CN2vRQoezuSTIa7VPuNnaVutZP0,11
213
- pluggy_sdk-1.0.0.post20.dist-info/RECORD,,
216
+ pluggy_sdk-1.0.0.post21.dist-info/METADATA,sha256=pt4p4jTBYIt-v-HffQRVZFZfVBfd0_359upzsCx-UZM,25764
217
+ pluggy_sdk-1.0.0.post21.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
218
+ pluggy_sdk-1.0.0.post21.dist-info/top_level.txt,sha256=4RLkSSAcNiYLnk0_CN2vRQoezuSTIa7VPuNnaVutZP0,11
219
+ pluggy_sdk-1.0.0.post21.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.1.2)
2
+ Generator: setuptools (75.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5