pluggy-sdk 1.0.0.post10__py3-none-any.whl → 1.0.0.post12__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.
Files changed (31) hide show
  1. pluggy_sdk/__init__.py +17 -1
  2. pluggy_sdk/api/__init__.py +1 -0
  3. pluggy_sdk/api/payment_request_api.py +259 -0
  4. pluggy_sdk/api/payroll_loan_api.py +561 -0
  5. pluggy_sdk/api/smart_account_api.py +570 -0
  6. pluggy_sdk/api_client.py +20 -9
  7. pluggy_sdk/configuration.py +1 -1
  8. pluggy_sdk/models/__init__.py +15 -0
  9. pluggy_sdk/models/consent.py +120 -0
  10. pluggy_sdk/models/create_boleto_payment_request.py +3 -3
  11. pluggy_sdk/models/create_payment_request.py +8 -2
  12. pluggy_sdk/models/create_smart_account_transfer_request.py +92 -0
  13. pluggy_sdk/models/page_response_consents.py +102 -0
  14. pluggy_sdk/models/payment_recipient_account.py +2 -9
  15. pluggy_sdk/models/payment_request.py +8 -2
  16. pluggy_sdk/models/payment_request_schedule.py +183 -0
  17. pluggy_sdk/models/payment_schedules_list200_response.py +102 -0
  18. pluggy_sdk/models/payroll_loan_response.py +125 -0
  19. pluggy_sdk/models/payroll_loan_response_client.py +102 -0
  20. pluggy_sdk/models/payroll_loans_list200_response.py +102 -0
  21. pluggy_sdk/models/schedule_payment.py +102 -0
  22. pluggy_sdk/models/schedule_type_custom.py +100 -0
  23. pluggy_sdk/models/schedule_type_daily.py +101 -0
  24. pluggy_sdk/models/schedule_type_monthly.py +103 -0
  25. pluggy_sdk/models/schedule_type_single.py +98 -0
  26. pluggy_sdk/models/schedule_type_weekly.py +110 -0
  27. pluggy_sdk/models/smart_account_transfer.py +123 -0
  28. {pluggy_sdk-1.0.0.post10.dist-info → pluggy_sdk-1.0.0.post12.dist-info}/METADATA +22 -2
  29. {pluggy_sdk-1.0.0.post10.dist-info → pluggy_sdk-1.0.0.post12.dist-info}/RECORD +31 -15
  30. {pluggy_sdk-1.0.0.post10.dist-info → pluggy_sdk-1.0.0.post12.dist-info}/WHEEL +0 -0
  31. {pluggy_sdk-1.0.0.post10.dist-info → pluggy_sdk-1.0.0.post12.dist-info}/top_level.txt +0 -0
@@ -55,6 +55,7 @@ from pluggy_sdk.models.connector_health import ConnectorHealth
55
55
  from pluggy_sdk.models.connector_health_details import ConnectorHealthDetails
56
56
  from pluggy_sdk.models.connector_list_response import ConnectorListResponse
57
57
  from pluggy_sdk.models.connector_user_action import ConnectorUserAction
58
+ from pluggy_sdk.models.consent import Consent
58
59
  from pluggy_sdk.models.create_boleto_payment_request import CreateBoletoPaymentRequest
59
60
  from pluggy_sdk.models.create_bulk_payment import CreateBulkPayment
60
61
  from pluggy_sdk.models.create_client_category_rule import CreateClientCategoryRule
@@ -67,6 +68,7 @@ from pluggy_sdk.models.create_payment_recipient import CreatePaymentRecipient
67
68
  from pluggy_sdk.models.create_payment_request import CreatePaymentRequest
68
69
  from pluggy_sdk.models.create_pix_qr_payment_request import CreatePixQrPaymentRequest
69
70
  from pluggy_sdk.models.create_smart_account_request import CreateSmartAccountRequest
71
+ from pluggy_sdk.models.create_smart_account_transfer_request import CreateSmartAccountTransferRequest
70
72
  from pluggy_sdk.models.create_webhook import CreateWebhook
71
73
  from pluggy_sdk.models.credential_select_option import CredentialSelectOption
72
74
  from pluggy_sdk.models.credit_card_metadata import CreditCardMetadata
@@ -110,6 +112,7 @@ from pluggy_sdk.models.page_response_acquirer_anticipations import PageResponseA
110
112
  from pluggy_sdk.models.page_response_acquirer_receivables import PageResponseAcquirerReceivables
111
113
  from pluggy_sdk.models.page_response_acquirer_sales import PageResponseAcquirerSales
112
114
  from pluggy_sdk.models.page_response_category_rules import PageResponseCategoryRules
115
+ from pluggy_sdk.models.page_response_consents import PageResponseConsents
113
116
  from pluggy_sdk.models.page_response_investment_transactions import PageResponseInvestmentTransactions
114
117
  from pluggy_sdk.models.page_response_transactions import PageResponseTransactions
115
118
  from pluggy_sdk.models.parameter_validation_error import ParameterValidationError
@@ -132,13 +135,25 @@ from pluggy_sdk.models.payment_recipients_list200_response import PaymentRecipie
132
135
  from pluggy_sdk.models.payment_request import PaymentRequest
133
136
  from pluggy_sdk.models.payment_request_callback_urls import PaymentRequestCallbackUrls
134
137
  from pluggy_sdk.models.payment_request_receipt_list200_response import PaymentRequestReceiptList200Response
138
+ from pluggy_sdk.models.payment_request_schedule import PaymentRequestSchedule
135
139
  from pluggy_sdk.models.payment_requests_list200_response import PaymentRequestsList200Response
140
+ from pluggy_sdk.models.payment_schedules_list200_response import PaymentSchedulesList200Response
141
+ from pluggy_sdk.models.payroll_loan_response import PayrollLoanResponse
142
+ from pluggy_sdk.models.payroll_loan_response_client import PayrollLoanResponseClient
143
+ from pluggy_sdk.models.payroll_loans_list200_response import PayrollLoansList200Response
136
144
  from pluggy_sdk.models.percentage_over_index import PercentageOverIndex
137
145
  from pluggy_sdk.models.phone_number import PhoneNumber
138
146
  from pluggy_sdk.models.pix_data import PixData
147
+ from pluggy_sdk.models.schedule_payment import SchedulePayment
148
+ from pluggy_sdk.models.schedule_type_custom import ScheduleTypeCustom
149
+ from pluggy_sdk.models.schedule_type_daily import ScheduleTypeDaily
150
+ from pluggy_sdk.models.schedule_type_monthly import ScheduleTypeMonthly
151
+ from pluggy_sdk.models.schedule_type_single import ScheduleTypeSingle
152
+ from pluggy_sdk.models.schedule_type_weekly import ScheduleTypeWeekly
139
153
  from pluggy_sdk.models.smart_account import SmartAccount
140
154
  from pluggy_sdk.models.smart_account_address import SmartAccountAddress
141
155
  from pluggy_sdk.models.smart_account_balance import SmartAccountBalance
156
+ from pluggy_sdk.models.smart_account_transfer import SmartAccountTransfer
142
157
  from pluggy_sdk.models.smart_accounts_list200_response import SmartAccountsList200Response
143
158
  from pluggy_sdk.models.status_detail import StatusDetail
144
159
  from pluggy_sdk.models.status_detail_product import StatusDetailProduct
@@ -0,0 +1,120 @@
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, field_validator
23
+ from typing import Any, ClassVar, Dict, List, Optional
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+
27
+ class Consent(BaseModel):
28
+ """
29
+ Item consent information
30
+ """ # noqa: E501
31
+ id: StrictStr = Field(description="Consent primary identifier")
32
+ item_id: StrictStr = Field(description="Primary identifier of the item associated to the consent", alias="itemId")
33
+ products: List[StrictStr] = Field(description="Products to be collected in the connection")
34
+ open_finance_permissions_granted: Optional[List[StrictStr]] = Field(default=None, description="Products consented by the user to be collected", alias="openFinancePermissionsGranted")
35
+ created_at: datetime = Field(description="Date when the consent was given", alias="createdAt")
36
+ expires_at: Optional[datetime] = Field(default=None, description="Date when the consent expires. Null if the consent doesn't expire", alias="expiresAt")
37
+ revoked_at: Optional[datetime] = Field(default=None, description="Date when the consent was revoked", alias="revokedAt")
38
+ __properties: ClassVar[List[str]] = ["id", "itemId", "products", "openFinancePermissionsGranted", "createdAt", "expiresAt", "revokedAt"]
39
+
40
+ @field_validator('products')
41
+ def products_validate_enum(cls, value):
42
+ """Validates the enum"""
43
+ for i in value:
44
+ if i not in set(['ACCOUNTS', 'CREDIT_CARDS', 'TRANSACTIONS', 'PAYMENT_DATA', 'INVESTMENTS', 'INVESTMENTS_TRANSACTIONS', 'IDENTITY', 'BROKERAGE_NOTE', 'OPPORTUNITIES', 'PORTFOLIO', 'INCOME_REPORTS', 'MOVE_SECURITY', 'LOANS', 'ACQUIRER_OPERATIONS']):
45
+ raise ValueError("each list item must be one of ('ACCOUNTS', 'CREDIT_CARDS', 'TRANSACTIONS', 'PAYMENT_DATA', 'INVESTMENTS', 'INVESTMENTS_TRANSACTIONS', 'IDENTITY', 'BROKERAGE_NOTE', 'OPPORTUNITIES', 'PORTFOLIO', 'INCOME_REPORTS', 'MOVE_SECURITY', 'LOANS', 'ACQUIRER_OPERATIONS')")
46
+ return value
47
+
48
+ @field_validator('open_finance_permissions_granted')
49
+ def open_finance_permissions_granted_validate_enum(cls, value):
50
+ """Validates the enum"""
51
+ if value is None:
52
+ return value
53
+
54
+ for i in value:
55
+ if i not in set(['REGISTRATION_ALL', 'REGISTRATION_IDENTIFICATIONS', 'REGISTRATION_QUALIFICATIONS', 'REGISTRATION_FINANCIAL_RELATIONS', 'ACCOUNTS_ALL', 'ACCOUNTS_LIST', 'ACCOUNTS_BALANCES', 'ACCOUNTS_LIMITS', 'ACCOUNTS_TRANSACTIONS', 'CREDIT_CARDS_ALL', 'CREDIT_CARDS_LIST', 'CREDIT_CARDS_LIMITS', 'CREDIT_CARDS_TRANSACTIONS', 'CREDIT_CARDS_BILLS', 'CREDIT_OPERATIONS_ALL', 'INVESTMENTS_ALL', 'EXCHANGES_ALL']):
56
+ raise ValueError("each list item must be one of ('REGISTRATION_ALL', 'REGISTRATION_IDENTIFICATIONS', 'REGISTRATION_QUALIFICATIONS', 'REGISTRATION_FINANCIAL_RELATIONS', 'ACCOUNTS_ALL', 'ACCOUNTS_LIST', 'ACCOUNTS_BALANCES', 'ACCOUNTS_LIMITS', 'ACCOUNTS_TRANSACTIONS', 'CREDIT_CARDS_ALL', 'CREDIT_CARDS_LIST', 'CREDIT_CARDS_LIMITS', 'CREDIT_CARDS_TRANSACTIONS', 'CREDIT_CARDS_BILLS', 'CREDIT_OPERATIONS_ALL', 'INVESTMENTS_ALL', 'EXCHANGES_ALL')")
57
+ return value
58
+
59
+ model_config = ConfigDict(
60
+ populate_by_name=True,
61
+ validate_assignment=True,
62
+ protected_namespaces=(),
63
+ )
64
+
65
+
66
+ def to_str(self) -> str:
67
+ """Returns the string representation of the model using alias"""
68
+ return pprint.pformat(self.model_dump(by_alias=True))
69
+
70
+ def to_json(self) -> str:
71
+ """Returns the JSON representation of the model using alias"""
72
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
73
+ return json.dumps(self.to_dict())
74
+
75
+ @classmethod
76
+ def from_json(cls, json_str: str) -> Optional[Self]:
77
+ """Create an instance of Consent from a JSON string"""
78
+ return cls.from_dict(json.loads(json_str))
79
+
80
+ def to_dict(self) -> Dict[str, Any]:
81
+ """Return the dictionary representation of the model using alias.
82
+
83
+ This has the following differences from calling pydantic's
84
+ `self.model_dump(by_alias=True)`:
85
+
86
+ * `None` is only added to the output dict for nullable fields that
87
+ were set at model initialization. Other fields with value `None`
88
+ are ignored.
89
+ """
90
+ excluded_fields: Set[str] = set([
91
+ ])
92
+
93
+ _dict = self.model_dump(
94
+ by_alias=True,
95
+ exclude=excluded_fields,
96
+ exclude_none=True,
97
+ )
98
+ return _dict
99
+
100
+ @classmethod
101
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
102
+ """Create an instance of Consent from a dict"""
103
+ if obj is None:
104
+ return None
105
+
106
+ if not isinstance(obj, dict):
107
+ return cls.model_validate(obj)
108
+
109
+ _obj = cls.model_validate({
110
+ "id": obj.get("id"),
111
+ "itemId": obj.get("itemId"),
112
+ "products": obj.get("products"),
113
+ "openFinancePermissionsGranted": obj.get("openFinancePermissionsGranted"),
114
+ "createdAt": obj.get("createdAt"),
115
+ "expiresAt": obj.get("expiresAt"),
116
+ "revokedAt": obj.get("revokedAt")
117
+ })
118
+ return _obj
119
+
120
+
@@ -29,10 +29,10 @@ class CreateBoletoPaymentRequest(BaseModel):
29
29
  Request with information to create a boleto payment request
30
30
  """ # noqa: E501
31
31
  description: Optional[StrictStr] = Field(default=None, description="Payment description")
32
- digitable_line: StrictStr = Field(description="Boleto digitable line", alias="digitableLine")
32
+ boleto_digitable_line: StrictStr = Field(description="Boleto digitable line", alias="boletoDigitableLine")
33
33
  callback_urls: Optional[PaymentRequestCallbackUrls] = Field(default=None, alias="callbackUrls")
34
34
  customer_id: Optional[StrictStr] = Field(default=None, description="Customer identifier associated to the payment", alias="customerId")
35
- __properties: ClassVar[List[str]] = ["description", "digitableLine", "callbackUrls", "customerId"]
35
+ __properties: ClassVar[List[str]] = ["description", "boletoDigitableLine", "callbackUrls", "customerId"]
36
36
 
37
37
  model_config = ConfigDict(
38
38
  populate_by_name=True,
@@ -89,7 +89,7 @@ class CreateBoletoPaymentRequest(BaseModel):
89
89
 
90
90
  _obj = cls.model_validate({
91
91
  "description": obj.get("description"),
92
- "digitableLine": obj.get("digitableLine"),
92
+ "boletoDigitableLine": obj.get("boletoDigitableLine"),
93
93
  "callbackUrls": PaymentRequestCallbackUrls.from_dict(obj["callbackUrls"]) if obj.get("callbackUrls") is not None else None,
94
94
  "customerId": obj.get("customerId")
95
95
  })
@@ -21,6 +21,7 @@ import json
21
21
  from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
22
22
  from typing import Any, ClassVar, Dict, List, Optional, Union
23
23
  from pluggy_sdk.models.payment_request_callback_urls import PaymentRequestCallbackUrls
24
+ from pluggy_sdk.models.payment_request_schedule import PaymentRequestSchedule
24
25
  from typing import Optional, Set
25
26
  from typing_extensions import Self
26
27
 
@@ -35,7 +36,8 @@ class CreatePaymentRequest(BaseModel):
35
36
  customer_id: Optional[StrictStr] = Field(default=None, description="Customer identifier associated to the payment", alias="customerId")
36
37
  client_payment_id: Optional[StrictStr] = Field(default=None, description="Your payment identifier", alias="clientPaymentId")
37
38
  smart_account_id: Optional[StrictStr] = Field(default=None, description="Smart account identifier associated to the payment, used to be able to use PIX Qr method", alias="smartAccountId")
38
- __properties: ClassVar[List[str]] = ["amount", "description", "callbackUrls", "recipientId", "customerId", "clientPaymentId", "smartAccountId"]
39
+ schedule: Optional[PaymentRequestSchedule] = None
40
+ __properties: ClassVar[List[str]] = ["amount", "description", "callbackUrls", "recipientId", "customerId", "clientPaymentId", "smartAccountId", "schedule"]
39
41
 
40
42
  model_config = ConfigDict(
41
43
  populate_by_name=True,
@@ -79,6 +81,9 @@ class CreatePaymentRequest(BaseModel):
79
81
  # override the default output from pydantic by calling `to_dict()` of callback_urls
80
82
  if self.callback_urls:
81
83
  _dict['callbackUrls'] = self.callback_urls.to_dict()
84
+ # override the default output from pydantic by calling `to_dict()` of schedule
85
+ if self.schedule:
86
+ _dict['schedule'] = self.schedule.to_dict()
82
87
  return _dict
83
88
 
84
89
  @classmethod
@@ -97,7 +102,8 @@ class CreatePaymentRequest(BaseModel):
97
102
  "recipientId": obj.get("recipientId"),
98
103
  "customerId": obj.get("customerId"),
99
104
  "clientPaymentId": obj.get("clientPaymentId"),
100
- "smartAccountId": obj.get("smartAccountId")
105
+ "smartAccountId": obj.get("smartAccountId"),
106
+ "schedule": PaymentRequestSchedule.from_dict(obj["schedule"]) if obj.get("schedule") is not None else None
101
107
  })
102
108
  return _obj
103
109
 
@@ -0,0 +1,92 @@
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, StrictStr
22
+ from typing import Any, ClassVar, Dict, List, Optional, Union
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class CreateSmartAccountTransferRequest(BaseModel):
27
+ """
28
+ Request with information to create a smart account transfer
29
+ """ # noqa: E501
30
+ amount: Union[StrictFloat, StrictInt] = Field(description="Transfer amount")
31
+ recipient_id: StrictStr = Field(description="Primary identifier of the recipient associated to the transfer", alias="recipientId")
32
+ client_payment_id: Optional[StrictStr] = Field(default=None, description="Primary identifier of the client payment associated to the transfer", alias="clientPaymentId")
33
+ __properties: ClassVar[List[str]] = ["amount", "recipientId", "clientPaymentId"]
34
+
35
+ model_config = ConfigDict(
36
+ populate_by_name=True,
37
+ validate_assignment=True,
38
+ protected_namespaces=(),
39
+ )
40
+
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.model_dump(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
49
+ return json.dumps(self.to_dict())
50
+
51
+ @classmethod
52
+ def from_json(cls, json_str: str) -> Optional[Self]:
53
+ """Create an instance of CreateSmartAccountTransferRequest from a JSON string"""
54
+ return cls.from_dict(json.loads(json_str))
55
+
56
+ def to_dict(self) -> Dict[str, Any]:
57
+ """Return the dictionary representation of the model using alias.
58
+
59
+ This has the following differences from calling pydantic's
60
+ `self.model_dump(by_alias=True)`:
61
+
62
+ * `None` is only added to the output dict for nullable fields that
63
+ were set at model initialization. Other fields with value `None`
64
+ are ignored.
65
+ """
66
+ excluded_fields: Set[str] = set([
67
+ ])
68
+
69
+ _dict = self.model_dump(
70
+ by_alias=True,
71
+ exclude=excluded_fields,
72
+ exclude_none=True,
73
+ )
74
+ return _dict
75
+
76
+ @classmethod
77
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
78
+ """Create an instance of CreateSmartAccountTransferRequest from a dict"""
79
+ if obj is None:
80
+ return None
81
+
82
+ if not isinstance(obj, dict):
83
+ return cls.model_validate(obj)
84
+
85
+ _obj = cls.model_validate({
86
+ "amount": obj.get("amount"),
87
+ "recipientId": obj.get("recipientId"),
88
+ "clientPaymentId": obj.get("clientPaymentId")
89
+ })
90
+ return _obj
91
+
92
+
@@ -0,0 +1,102 @@
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 pluggy_sdk.models.consent import Consent
24
+ from typing import Optional, Set
25
+ from typing_extensions import Self
26
+
27
+ class PageResponseConsents(BaseModel):
28
+ """
29
+
30
+ """ # noqa: E501
31
+ results: List[Consent]
32
+ page: Union[StrictFloat, StrictInt]
33
+ total: Union[StrictFloat, StrictInt]
34
+ total_pages: Union[StrictFloat, StrictInt] = Field(alias="totalPages")
35
+ __properties: ClassVar[List[str]] = ["results", "page", "total", "totalPages"]
36
+
37
+ model_config = ConfigDict(
38
+ populate_by_name=True,
39
+ validate_assignment=True,
40
+ protected_namespaces=(),
41
+ )
42
+
43
+
44
+ def to_str(self) -> str:
45
+ """Returns the string representation of the model using alias"""
46
+ return pprint.pformat(self.model_dump(by_alias=True))
47
+
48
+ def to_json(self) -> str:
49
+ """Returns the JSON representation of the model using alias"""
50
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
51
+ return json.dumps(self.to_dict())
52
+
53
+ @classmethod
54
+ def from_json(cls, json_str: str) -> Optional[Self]:
55
+ """Create an instance of PageResponseConsents from a JSON string"""
56
+ return cls.from_dict(json.loads(json_str))
57
+
58
+ def to_dict(self) -> Dict[str, Any]:
59
+ """Return the dictionary representation of the model using alias.
60
+
61
+ This has the following differences from calling pydantic's
62
+ `self.model_dump(by_alias=True)`:
63
+
64
+ * `None` is only added to the output dict for nullable fields that
65
+ were set at model initialization. Other fields with value `None`
66
+ are ignored.
67
+ """
68
+ excluded_fields: Set[str] = set([
69
+ ])
70
+
71
+ _dict = self.model_dump(
72
+ by_alias=True,
73
+ exclude=excluded_fields,
74
+ exclude_none=True,
75
+ )
76
+ # override the default output from pydantic by calling `to_dict()` of each item in results (list)
77
+ _items = []
78
+ if self.results:
79
+ for _item in self.results:
80
+ if _item:
81
+ _items.append(_item.to_dict())
82
+ _dict['results'] = _items
83
+ return _dict
84
+
85
+ @classmethod
86
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
87
+ """Create an instance of PageResponseConsents from a dict"""
88
+ if obj is None:
89
+ return None
90
+
91
+ if not isinstance(obj, dict):
92
+ return cls.model_validate(obj)
93
+
94
+ _obj = cls.model_validate({
95
+ "results": [Consent.from_dict(_item) for _item in obj["results"]] if obj.get("results") is not None else None,
96
+ "page": obj.get("page"),
97
+ "total": obj.get("total"),
98
+ "totalPages": obj.get("totalPages")
99
+ })
100
+ return _obj
101
+
102
+
@@ -18,7 +18,7 @@ import pprint
18
18
  import re # noqa: F401
19
19
  import json
20
20
 
21
- from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
21
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
22
22
  from typing import Any, ClassVar, Dict, List
23
23
  from typing import Optional, Set
24
24
  from typing_extensions import Self
@@ -29,16 +29,9 @@ class PaymentRecipientAccount(BaseModel):
29
29
  """ # noqa: E501
30
30
  branch: StrictStr = Field(description="Receiver bank account branch (agency)")
31
31
  number: StrictStr = Field(description="Receiver bank account number")
32
- type: StrictStr = Field(description="Receiver bank account type")
32
+ type: StrictStr = Field(description="Receiver bank account type, could be: 'CHECKING_ACCOUNT', 'SAVINGS_ACCOUNT' or 'GUARANTEED_ACCOUNT'")
33
33
  __properties: ClassVar[List[str]] = ["branch", "number", "type"]
34
34
 
35
- @field_validator('type')
36
- def type_validate_enum(cls, value):
37
- """Validates the enum"""
38
- if value not in set(['CHECKING_ACCOUNT', 'SAVINGS_ACCOUNT', 'GUARANTEED_ACCOUNT']):
39
- raise ValueError("must be one of enum values ('CHECKING_ACCOUNT', 'SAVINGS_ACCOUNT', 'GUARANTEED_ACCOUNT')")
40
- return value
41
-
42
35
  model_config = ConfigDict(
43
36
  populate_by_name=True,
44
37
  validate_assignment=True,
@@ -23,6 +23,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, Stric
23
23
  from typing import Any, ClassVar, Dict, List, Optional, Union
24
24
  from pluggy_sdk.models.boleto import Boleto
25
25
  from pluggy_sdk.models.payment_request_callback_urls import PaymentRequestCallbackUrls
26
+ from pluggy_sdk.models.payment_request_schedule import PaymentRequestSchedule
26
27
  from typing import Optional, Set
27
28
  from typing_extensions import Self
28
29
 
@@ -42,7 +43,8 @@ class PaymentRequest(BaseModel):
42
43
  payment_url: StrictStr = Field(description="URL to begin the payment intent creation flow for this payment request", alias="paymentUrl")
43
44
  pix_qr_code: Optional[StrictStr] = Field(default=None, description="Pix QR code generated by the payment receiver", alias="pixQrCode")
44
45
  boleto: Optional[Boleto] = None
45
- __properties: ClassVar[List[str]] = ["id", "amount", "description", "status", "clientPaymentId", "createdAt", "updatedAt", "callbackUrls", "recipientId", "paymentUrl", "pixQrCode", "boleto"]
46
+ schedule: Optional[PaymentRequestSchedule] = None
47
+ __properties: ClassVar[List[str]] = ["id", "amount", "description", "status", "clientPaymentId", "createdAt", "updatedAt", "callbackUrls", "recipientId", "paymentUrl", "pixQrCode", "boleto", "schedule"]
46
48
 
47
49
  @field_validator('status')
48
50
  def status_validate_enum(cls, value):
@@ -96,6 +98,9 @@ class PaymentRequest(BaseModel):
96
98
  # override the default output from pydantic by calling `to_dict()` of boleto
97
99
  if self.boleto:
98
100
  _dict['boleto'] = self.boleto.to_dict()
101
+ # override the default output from pydantic by calling `to_dict()` of schedule
102
+ if self.schedule:
103
+ _dict['schedule'] = self.schedule.to_dict()
99
104
  return _dict
100
105
 
101
106
  @classmethod
@@ -119,7 +124,8 @@ class PaymentRequest(BaseModel):
119
124
  "recipientId": obj.get("recipientId"),
120
125
  "paymentUrl": obj.get("paymentUrl"),
121
126
  "pixQrCode": obj.get("pixQrCode"),
122
- "boleto": Boleto.from_dict(obj["boleto"]) if obj.get("boleto") is not None else None
127
+ "boleto": Boleto.from_dict(obj["boleto"]) if obj.get("boleto") is not None else None,
128
+ "schedule": PaymentRequestSchedule.from_dict(obj["schedule"]) if obj.get("schedule") is not None else None
123
129
  })
124
130
  return _obj
125
131