pingram-python 1.0.37__py3-none-any.whl → 1.0.38__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.
- pingram/__init__.py +5 -3
- pingram/api/library_api.py +3 -3
- pingram/api/logs_api.py +277 -0
- pingram/api/profile_api.py +0 -290
- pingram/api/webhooks_api.py +6 -6
- pingram/api_client.py +1 -1
- pingram/configuration.py +1 -1
- pingram/models/__init__.py +2 -1
- pingram/models/{change_email_request.py → confirm_change_email_request.py} +8 -8
- pingram/models/create_library_request.py +1 -1
- pingram/models/get_logs_response_messages_inner.py +4 -4
- pingram/models/get_logs_response_messages_inner_attachments_inner.py +19 -7
- pingram/models/logs_get_response_logs_inner.py +28 -20
- pingram/models/start_change_email_request.py +91 -0
- pingram/models/webhook_endpoint_upsert_request.py +1 -1
- {pingram_python-1.0.37.dist-info → pingram_python-1.0.38.dist-info}/METADATA +1 -1
- {pingram_python-1.0.37.dist-info → pingram_python-1.0.38.dist-info}/RECORD +20 -19
- {pingram_python-1.0.37.dist-info → pingram_python-1.0.38.dist-info}/WHEEL +0 -0
- {pingram_python-1.0.37.dist-info → pingram_python-1.0.38.dist-info}/licenses/LICENSE +0 -0
- {pingram_python-1.0.37.dist-info → pingram_python-1.0.38.dist-info}/top_level.txt +0 -0
pingram/__init__.py
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
""" # noqa: E501
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
__version__ = "1.0.
|
|
17
|
+
__version__ = "1.0.38"
|
|
18
18
|
|
|
19
19
|
# Define package exports
|
|
20
20
|
__all__ = [
|
|
@@ -90,9 +90,9 @@ __all__ = [
|
|
|
90
90
|
"CampaignWebhookResponse",
|
|
91
91
|
"CancelSubscriptionRequest",
|
|
92
92
|
"Chained",
|
|
93
|
-
"ChangeEmailRequest",
|
|
94
93
|
"ChangePhoneRequest",
|
|
95
94
|
"ChannelsEnum",
|
|
95
|
+
"ConfirmChangeEmailRequest",
|
|
96
96
|
"CreateAccountRequest",
|
|
97
97
|
"CreateAccountRequestPlan",
|
|
98
98
|
"CreateAccountResponse",
|
|
@@ -308,6 +308,7 @@ __all__ = [
|
|
|
308
308
|
"SetDefaultTemplateRequest",
|
|
309
309
|
"SlackConnectInviteResponse",
|
|
310
310
|
"SlackInteractivityResponse",
|
|
311
|
+
"StartChangeEmailRequest",
|
|
311
312
|
"SubNotification",
|
|
312
313
|
"SubNotificationPUTRequest",
|
|
313
314
|
"SuccessResponse",
|
|
@@ -438,9 +439,9 @@ from pingram.models.broadcast_response_audience import BroadcastResponseAudience
|
|
|
438
439
|
from pingram.models.campaign_webhook_response import CampaignWebhookResponse as CampaignWebhookResponse
|
|
439
440
|
from pingram.models.cancel_subscription_request import CancelSubscriptionRequest as CancelSubscriptionRequest
|
|
440
441
|
from pingram.models.chained import Chained as Chained
|
|
441
|
-
from pingram.models.change_email_request import ChangeEmailRequest as ChangeEmailRequest
|
|
442
442
|
from pingram.models.change_phone_request import ChangePhoneRequest as ChangePhoneRequest
|
|
443
443
|
from pingram.models.channels_enum import ChannelsEnum as ChannelsEnum
|
|
444
|
+
from pingram.models.confirm_change_email_request import ConfirmChangeEmailRequest as ConfirmChangeEmailRequest
|
|
444
445
|
from pingram.models.create_account_request import CreateAccountRequest as CreateAccountRequest
|
|
445
446
|
from pingram.models.create_account_request_plan import CreateAccountRequestPlan as CreateAccountRequestPlan
|
|
446
447
|
from pingram.models.create_account_response import CreateAccountResponse as CreateAccountResponse
|
|
@@ -656,6 +657,7 @@ from pingram.models.sender_post_response import SenderPostResponse as SenderPost
|
|
|
656
657
|
from pingram.models.set_default_template_request import SetDefaultTemplateRequest as SetDefaultTemplateRequest
|
|
657
658
|
from pingram.models.slack_connect_invite_response import SlackConnectInviteResponse as SlackConnectInviteResponse
|
|
658
659
|
from pingram.models.slack_interactivity_response import SlackInteractivityResponse as SlackInteractivityResponse
|
|
660
|
+
from pingram.models.start_change_email_request import StartChangeEmailRequest as StartChangeEmailRequest
|
|
659
661
|
from pingram.models.sub_notification import SubNotification as SubNotification
|
|
660
662
|
from pingram.models.sub_notification_put_request import SubNotificationPUTRequest as SubNotificationPUTRequest
|
|
661
663
|
from pingram.models.success_response import SuccessResponse as SuccessResponse
|
pingram/api/library_api.py
CHANGED
|
@@ -59,7 +59,7 @@ class LibraryApi:
|
|
|
59
59
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
60
60
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
61
61
|
) -> CreateLibraryResponse:
|
|
62
|
-
"""Create an upload slot in the account library. PUT the file to the returned uploadUrl with
|
|
62
|
+
"""Create an upload slot in the account library. contentType must be image/png, image/jpeg, image/gif, or image/webp. PUT the file to the returned uploadUrl with that Content-Type, then use the returned url in emails and the editor.
|
|
63
63
|
|
|
64
64
|
|
|
65
65
|
:param use_case: Library use-case (required)
|
|
@@ -134,7 +134,7 @@ class LibraryApi:
|
|
|
134
134
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
135
135
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
136
136
|
) -> ApiResponse[CreateLibraryResponse]:
|
|
137
|
-
"""Create an upload slot in the account library. PUT the file to the returned uploadUrl with
|
|
137
|
+
"""Create an upload slot in the account library. contentType must be image/png, image/jpeg, image/gif, or image/webp. PUT the file to the returned uploadUrl with that Content-Type, then use the returned url in emails and the editor.
|
|
138
138
|
|
|
139
139
|
|
|
140
140
|
:param use_case: Library use-case (required)
|
|
@@ -209,7 +209,7 @@ class LibraryApi:
|
|
|
209
209
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
210
210
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
211
211
|
) -> RESTResponseType:
|
|
212
|
-
"""Create an upload slot in the account library. PUT the file to the returned uploadUrl with
|
|
212
|
+
"""Create an upload slot in the account library. contentType must be image/png, image/jpeg, image/gif, or image/webp. PUT the file to the returned uploadUrl with that Content-Type, then use the returned url in emails and the editor.
|
|
213
213
|
|
|
214
214
|
|
|
215
215
|
:param use_case: Library use-case (required)
|
pingram/api/logs_api.py
CHANGED
|
@@ -26,6 +26,7 @@ from pingram.models.logs_query_response import LogsQueryResponse
|
|
|
26
26
|
from pingram.models.logs_query_result_response import LogsQueryResultResponse
|
|
27
27
|
from pingram.models.logs_retention_response import LogsRetentionResponse
|
|
28
28
|
from pingram.models.logs_tail_response import LogsTailResponse
|
|
29
|
+
from pingram.models.message_response import MessageResponse
|
|
29
30
|
|
|
30
31
|
from pingram.api_client import ApiClient, RequestSerialized
|
|
31
32
|
from pingram.api_response import ApiResponse
|
|
@@ -1153,6 +1154,282 @@ class LogsApi:
|
|
|
1153
1154
|
|
|
1154
1155
|
|
|
1155
1156
|
|
|
1157
|
+
@validate_call
|
|
1158
|
+
async def logs_retry_inbound(
|
|
1159
|
+
self,
|
|
1160
|
+
tracking_id: Annotated[StrictStr, Field(description="Tracking ID of the inbound email")],
|
|
1161
|
+
_request_timeout: Union[
|
|
1162
|
+
None,
|
|
1163
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1164
|
+
Tuple[
|
|
1165
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1166
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1167
|
+
]
|
|
1168
|
+
] = None,
|
|
1169
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1170
|
+
_content_type: Optional[StrictStr] = None,
|
|
1171
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1172
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1173
|
+
) -> MessageResponse:
|
|
1174
|
+
"""Resend the EMAIL_INBOUND webhook for one inbound email. Uses the original tracking ID and does not count another email. Refused when the message is older than 30 days.
|
|
1175
|
+
|
|
1176
|
+
|
|
1177
|
+
:param tracking_id: Tracking ID of the inbound email (required)
|
|
1178
|
+
:type tracking_id: str
|
|
1179
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1180
|
+
number provided, it will be total request
|
|
1181
|
+
timeout. It can also be a pair (tuple) of
|
|
1182
|
+
(connection, read) timeouts.
|
|
1183
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1184
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1185
|
+
request; this effectively ignores the
|
|
1186
|
+
authentication in the spec for a single request.
|
|
1187
|
+
:type _request_auth: dict, optional
|
|
1188
|
+
:param _content_type: force content-type for the request.
|
|
1189
|
+
:type _content_type: str, Optional
|
|
1190
|
+
:param _headers: set to override the headers for a single
|
|
1191
|
+
request; this effectively ignores the headers
|
|
1192
|
+
in the spec for a single request.
|
|
1193
|
+
:type _headers: dict, optional
|
|
1194
|
+
:param _host_index: set to override the host_index for a single
|
|
1195
|
+
request; this effectively ignores the host_index
|
|
1196
|
+
in the spec for a single request.
|
|
1197
|
+
:type _host_index: int, optional
|
|
1198
|
+
:return: Returns the result object.
|
|
1199
|
+
""" # noqa: E501
|
|
1200
|
+
|
|
1201
|
+
_param = self._logs_retry_inbound_serialize(
|
|
1202
|
+
tracking_id=tracking_id,
|
|
1203
|
+
_request_auth=_request_auth,
|
|
1204
|
+
_content_type=_content_type,
|
|
1205
|
+
_headers=_headers,
|
|
1206
|
+
_host_index=_host_index
|
|
1207
|
+
)
|
|
1208
|
+
|
|
1209
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1210
|
+
'200': "MessageResponse",
|
|
1211
|
+
'400': "ApiErrorResponse",
|
|
1212
|
+
'401': None,
|
|
1213
|
+
'402': "ApiErrorResponse",
|
|
1214
|
+
'500': None,
|
|
1215
|
+
'502': "ApiErrorResponse",
|
|
1216
|
+
}
|
|
1217
|
+
response_data = await self.api_client.call_api(
|
|
1218
|
+
*_param,
|
|
1219
|
+
_request_timeout=_request_timeout
|
|
1220
|
+
)
|
|
1221
|
+
await response_data.read()
|
|
1222
|
+
return self.api_client.response_deserialize(
|
|
1223
|
+
response_data=response_data,
|
|
1224
|
+
response_types_map=_response_types_map,
|
|
1225
|
+
).data
|
|
1226
|
+
|
|
1227
|
+
|
|
1228
|
+
@validate_call
|
|
1229
|
+
async def logs_retry_inbound_with_http_info(
|
|
1230
|
+
self,
|
|
1231
|
+
tracking_id: Annotated[StrictStr, Field(description="Tracking ID of the inbound email")],
|
|
1232
|
+
_request_timeout: Union[
|
|
1233
|
+
None,
|
|
1234
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1235
|
+
Tuple[
|
|
1236
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1237
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1238
|
+
]
|
|
1239
|
+
] = None,
|
|
1240
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1241
|
+
_content_type: Optional[StrictStr] = None,
|
|
1242
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1243
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1244
|
+
) -> ApiResponse[MessageResponse]:
|
|
1245
|
+
"""Resend the EMAIL_INBOUND webhook for one inbound email. Uses the original tracking ID and does not count another email. Refused when the message is older than 30 days.
|
|
1246
|
+
|
|
1247
|
+
|
|
1248
|
+
:param tracking_id: Tracking ID of the inbound email (required)
|
|
1249
|
+
:type tracking_id: str
|
|
1250
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1251
|
+
number provided, it will be total request
|
|
1252
|
+
timeout. It can also be a pair (tuple) of
|
|
1253
|
+
(connection, read) timeouts.
|
|
1254
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1255
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1256
|
+
request; this effectively ignores the
|
|
1257
|
+
authentication in the spec for a single request.
|
|
1258
|
+
:type _request_auth: dict, optional
|
|
1259
|
+
:param _content_type: force content-type for the request.
|
|
1260
|
+
:type _content_type: str, Optional
|
|
1261
|
+
:param _headers: set to override the headers for a single
|
|
1262
|
+
request; this effectively ignores the headers
|
|
1263
|
+
in the spec for a single request.
|
|
1264
|
+
:type _headers: dict, optional
|
|
1265
|
+
:param _host_index: set to override the host_index for a single
|
|
1266
|
+
request; this effectively ignores the host_index
|
|
1267
|
+
in the spec for a single request.
|
|
1268
|
+
:type _host_index: int, optional
|
|
1269
|
+
:return: Returns the result object.
|
|
1270
|
+
""" # noqa: E501
|
|
1271
|
+
|
|
1272
|
+
_param = self._logs_retry_inbound_serialize(
|
|
1273
|
+
tracking_id=tracking_id,
|
|
1274
|
+
_request_auth=_request_auth,
|
|
1275
|
+
_content_type=_content_type,
|
|
1276
|
+
_headers=_headers,
|
|
1277
|
+
_host_index=_host_index
|
|
1278
|
+
)
|
|
1279
|
+
|
|
1280
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1281
|
+
'200': "MessageResponse",
|
|
1282
|
+
'400': "ApiErrorResponse",
|
|
1283
|
+
'401': None,
|
|
1284
|
+
'402': "ApiErrorResponse",
|
|
1285
|
+
'500': None,
|
|
1286
|
+
'502': "ApiErrorResponse",
|
|
1287
|
+
}
|
|
1288
|
+
response_data = await self.api_client.call_api(
|
|
1289
|
+
*_param,
|
|
1290
|
+
_request_timeout=_request_timeout
|
|
1291
|
+
)
|
|
1292
|
+
await response_data.read()
|
|
1293
|
+
return self.api_client.response_deserialize(
|
|
1294
|
+
response_data=response_data,
|
|
1295
|
+
response_types_map=_response_types_map,
|
|
1296
|
+
)
|
|
1297
|
+
|
|
1298
|
+
|
|
1299
|
+
@validate_call
|
|
1300
|
+
async def logs_retry_inbound_without_preload_content(
|
|
1301
|
+
self,
|
|
1302
|
+
tracking_id: Annotated[StrictStr, Field(description="Tracking ID of the inbound email")],
|
|
1303
|
+
_request_timeout: Union[
|
|
1304
|
+
None,
|
|
1305
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1306
|
+
Tuple[
|
|
1307
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1308
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1309
|
+
]
|
|
1310
|
+
] = None,
|
|
1311
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1312
|
+
_content_type: Optional[StrictStr] = None,
|
|
1313
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1314
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1315
|
+
) -> RESTResponseType:
|
|
1316
|
+
"""Resend the EMAIL_INBOUND webhook for one inbound email. Uses the original tracking ID and does not count another email. Refused when the message is older than 30 days.
|
|
1317
|
+
|
|
1318
|
+
|
|
1319
|
+
:param tracking_id: Tracking ID of the inbound email (required)
|
|
1320
|
+
:type tracking_id: str
|
|
1321
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1322
|
+
number provided, it will be total request
|
|
1323
|
+
timeout. It can also be a pair (tuple) of
|
|
1324
|
+
(connection, read) timeouts.
|
|
1325
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1326
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1327
|
+
request; this effectively ignores the
|
|
1328
|
+
authentication in the spec for a single request.
|
|
1329
|
+
:type _request_auth: dict, optional
|
|
1330
|
+
:param _content_type: force content-type for the request.
|
|
1331
|
+
:type _content_type: str, Optional
|
|
1332
|
+
:param _headers: set to override the headers for a single
|
|
1333
|
+
request; this effectively ignores the headers
|
|
1334
|
+
in the spec for a single request.
|
|
1335
|
+
:type _headers: dict, optional
|
|
1336
|
+
:param _host_index: set to override the host_index for a single
|
|
1337
|
+
request; this effectively ignores the host_index
|
|
1338
|
+
in the spec for a single request.
|
|
1339
|
+
:type _host_index: int, optional
|
|
1340
|
+
:return: Returns the result object.
|
|
1341
|
+
""" # noqa: E501
|
|
1342
|
+
|
|
1343
|
+
_param = self._logs_retry_inbound_serialize(
|
|
1344
|
+
tracking_id=tracking_id,
|
|
1345
|
+
_request_auth=_request_auth,
|
|
1346
|
+
_content_type=_content_type,
|
|
1347
|
+
_headers=_headers,
|
|
1348
|
+
_host_index=_host_index
|
|
1349
|
+
)
|
|
1350
|
+
|
|
1351
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1352
|
+
'200': "MessageResponse",
|
|
1353
|
+
'400': "ApiErrorResponse",
|
|
1354
|
+
'401': None,
|
|
1355
|
+
'402': "ApiErrorResponse",
|
|
1356
|
+
'500': None,
|
|
1357
|
+
'502': "ApiErrorResponse",
|
|
1358
|
+
}
|
|
1359
|
+
response_data = await self.api_client.call_api(
|
|
1360
|
+
*_param,
|
|
1361
|
+
_request_timeout=_request_timeout
|
|
1362
|
+
)
|
|
1363
|
+
return response_data.response
|
|
1364
|
+
|
|
1365
|
+
|
|
1366
|
+
def _logs_retry_inbound_serialize(
|
|
1367
|
+
self,
|
|
1368
|
+
tracking_id,
|
|
1369
|
+
_request_auth,
|
|
1370
|
+
_content_type,
|
|
1371
|
+
_headers,
|
|
1372
|
+
_host_index,
|
|
1373
|
+
) -> RequestSerialized:
|
|
1374
|
+
|
|
1375
|
+
_host = None
|
|
1376
|
+
|
|
1377
|
+
_collection_formats: Dict[str, str] = {
|
|
1378
|
+
}
|
|
1379
|
+
|
|
1380
|
+
_path_params: Dict[str, str] = {}
|
|
1381
|
+
_query_params: List[Tuple[str, str]] = []
|
|
1382
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
1383
|
+
_form_params: List[Tuple[str, str]] = []
|
|
1384
|
+
_files: Dict[
|
|
1385
|
+
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
|
1386
|
+
] = {}
|
|
1387
|
+
_body_params: Optional[bytes] = None
|
|
1388
|
+
|
|
1389
|
+
# process the path parameters
|
|
1390
|
+
if tracking_id is not None:
|
|
1391
|
+
_path_params['trackingId'] = tracking_id
|
|
1392
|
+
# process the query parameters
|
|
1393
|
+
# process the header parameters
|
|
1394
|
+
# process the form parameters
|
|
1395
|
+
# process the body parameter
|
|
1396
|
+
|
|
1397
|
+
|
|
1398
|
+
# set the HTTP header `Accept`
|
|
1399
|
+
if 'Accept' not in _header_params:
|
|
1400
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
1401
|
+
[
|
|
1402
|
+
'application/json'
|
|
1403
|
+
]
|
|
1404
|
+
)
|
|
1405
|
+
|
|
1406
|
+
|
|
1407
|
+
# authentication setting
|
|
1408
|
+
_auth_settings: List[str] = [
|
|
1409
|
+
'endUserHashed',
|
|
1410
|
+
'endUser',
|
|
1411
|
+
'apiKey',
|
|
1412
|
+
'clientCredentials'
|
|
1413
|
+
]
|
|
1414
|
+
|
|
1415
|
+
return self.api_client.param_serialize(
|
|
1416
|
+
method='POST',
|
|
1417
|
+
resource_path='/logs/retry/{trackingId}',
|
|
1418
|
+
path_params=_path_params,
|
|
1419
|
+
query_params=_query_params,
|
|
1420
|
+
header_params=_header_params,
|
|
1421
|
+
body=_body_params,
|
|
1422
|
+
post_params=_form_params,
|
|
1423
|
+
files=_files,
|
|
1424
|
+
auth_settings=_auth_settings,
|
|
1425
|
+
collection_formats=_collection_formats,
|
|
1426
|
+
_host=_host,
|
|
1427
|
+
_request_auth=_request_auth
|
|
1428
|
+
)
|
|
1429
|
+
|
|
1430
|
+
|
|
1431
|
+
|
|
1432
|
+
|
|
1156
1433
|
@validate_call
|
|
1157
1434
|
async def logs_start_logs_query(
|
|
1158
1435
|
self,
|
pingram/api/profile_api.py
CHANGED
|
@@ -20,7 +20,6 @@ from pydantic import Field, StrictStr
|
|
|
20
20
|
from typing_extensions import Annotated
|
|
21
21
|
from pingram.models.accept_invite_request import AcceptInviteRequest
|
|
22
22
|
from pingram.models.accept_invite_response import AcceptInviteResponse
|
|
23
|
-
from pingram.models.change_email_request import ChangeEmailRequest
|
|
24
23
|
from pingram.models.delete_account_request import DeleteAccountRequest
|
|
25
24
|
from pingram.models.mfa_setup_request import MFASetupRequest
|
|
26
25
|
from pingram.models.mfa_setup_response import MFASetupResponse
|
|
@@ -331,295 +330,6 @@ class ProfileApi:
|
|
|
331
330
|
|
|
332
331
|
|
|
333
332
|
|
|
334
|
-
@validate_call
|
|
335
|
-
async def profile_change_email(
|
|
336
|
-
self,
|
|
337
|
-
change_email_request: ChangeEmailRequest,
|
|
338
|
-
_request_timeout: Union[
|
|
339
|
-
None,
|
|
340
|
-
Annotated[StrictFloat, Field(gt=0)],
|
|
341
|
-
Tuple[
|
|
342
|
-
Annotated[StrictFloat, Field(gt=0)],
|
|
343
|
-
Annotated[StrictFloat, Field(gt=0)]
|
|
344
|
-
]
|
|
345
|
-
] = None,
|
|
346
|
-
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
347
|
-
_content_type: Optional[StrictStr] = None,
|
|
348
|
-
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
349
|
-
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
350
|
-
) -> SuccessResponse:
|
|
351
|
-
"""Change the email address of the authenticated user
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
:param change_email_request: (required)
|
|
355
|
-
:type change_email_request: ChangeEmailRequest
|
|
356
|
-
:param _request_timeout: timeout setting for this request. If one
|
|
357
|
-
number provided, it will be total request
|
|
358
|
-
timeout. It can also be a pair (tuple) of
|
|
359
|
-
(connection, read) timeouts.
|
|
360
|
-
:type _request_timeout: int, tuple(int, int), optional
|
|
361
|
-
:param _request_auth: set to override the auth_settings for an a single
|
|
362
|
-
request; this effectively ignores the
|
|
363
|
-
authentication in the spec for a single request.
|
|
364
|
-
:type _request_auth: dict, optional
|
|
365
|
-
:param _content_type: force content-type for the request.
|
|
366
|
-
:type _content_type: str, Optional
|
|
367
|
-
:param _headers: set to override the headers for a single
|
|
368
|
-
request; this effectively ignores the headers
|
|
369
|
-
in the spec for a single request.
|
|
370
|
-
:type _headers: dict, optional
|
|
371
|
-
:param _host_index: set to override the host_index for a single
|
|
372
|
-
request; this effectively ignores the host_index
|
|
373
|
-
in the spec for a single request.
|
|
374
|
-
:type _host_index: int, optional
|
|
375
|
-
:return: Returns the result object.
|
|
376
|
-
""" # noqa: E501
|
|
377
|
-
|
|
378
|
-
_param = self._profile_change_email_serialize(
|
|
379
|
-
change_email_request=change_email_request,
|
|
380
|
-
_request_auth=_request_auth,
|
|
381
|
-
_content_type=_content_type,
|
|
382
|
-
_headers=_headers,
|
|
383
|
-
_host_index=_host_index
|
|
384
|
-
)
|
|
385
|
-
|
|
386
|
-
_response_types_map: Dict[str, Optional[str]] = {
|
|
387
|
-
'200': "SuccessResponse",
|
|
388
|
-
'400': "ApiErrorResponse",
|
|
389
|
-
'401': None,
|
|
390
|
-
'402': "ApiErrorResponse",
|
|
391
|
-
'500': None,
|
|
392
|
-
'502': "ApiErrorResponse",
|
|
393
|
-
}
|
|
394
|
-
response_data = await self.api_client.call_api(
|
|
395
|
-
*_param,
|
|
396
|
-
_request_timeout=_request_timeout
|
|
397
|
-
)
|
|
398
|
-
await response_data.read()
|
|
399
|
-
return self.api_client.response_deserialize(
|
|
400
|
-
response_data=response_data,
|
|
401
|
-
response_types_map=_response_types_map,
|
|
402
|
-
).data
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
@validate_call
|
|
406
|
-
async def profile_change_email_with_http_info(
|
|
407
|
-
self,
|
|
408
|
-
change_email_request: ChangeEmailRequest,
|
|
409
|
-
_request_timeout: Union[
|
|
410
|
-
None,
|
|
411
|
-
Annotated[StrictFloat, Field(gt=0)],
|
|
412
|
-
Tuple[
|
|
413
|
-
Annotated[StrictFloat, Field(gt=0)],
|
|
414
|
-
Annotated[StrictFloat, Field(gt=0)]
|
|
415
|
-
]
|
|
416
|
-
] = None,
|
|
417
|
-
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
418
|
-
_content_type: Optional[StrictStr] = None,
|
|
419
|
-
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
420
|
-
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
421
|
-
) -> ApiResponse[SuccessResponse]:
|
|
422
|
-
"""Change the email address of the authenticated user
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
:param change_email_request: (required)
|
|
426
|
-
:type change_email_request: ChangeEmailRequest
|
|
427
|
-
:param _request_timeout: timeout setting for this request. If one
|
|
428
|
-
number provided, it will be total request
|
|
429
|
-
timeout. It can also be a pair (tuple) of
|
|
430
|
-
(connection, read) timeouts.
|
|
431
|
-
:type _request_timeout: int, tuple(int, int), optional
|
|
432
|
-
:param _request_auth: set to override the auth_settings for an a single
|
|
433
|
-
request; this effectively ignores the
|
|
434
|
-
authentication in the spec for a single request.
|
|
435
|
-
:type _request_auth: dict, optional
|
|
436
|
-
:param _content_type: force content-type for the request.
|
|
437
|
-
:type _content_type: str, Optional
|
|
438
|
-
:param _headers: set to override the headers for a single
|
|
439
|
-
request; this effectively ignores the headers
|
|
440
|
-
in the spec for a single request.
|
|
441
|
-
:type _headers: dict, optional
|
|
442
|
-
:param _host_index: set to override the host_index for a single
|
|
443
|
-
request; this effectively ignores the host_index
|
|
444
|
-
in the spec for a single request.
|
|
445
|
-
:type _host_index: int, optional
|
|
446
|
-
:return: Returns the result object.
|
|
447
|
-
""" # noqa: E501
|
|
448
|
-
|
|
449
|
-
_param = self._profile_change_email_serialize(
|
|
450
|
-
change_email_request=change_email_request,
|
|
451
|
-
_request_auth=_request_auth,
|
|
452
|
-
_content_type=_content_type,
|
|
453
|
-
_headers=_headers,
|
|
454
|
-
_host_index=_host_index
|
|
455
|
-
)
|
|
456
|
-
|
|
457
|
-
_response_types_map: Dict[str, Optional[str]] = {
|
|
458
|
-
'200': "SuccessResponse",
|
|
459
|
-
'400': "ApiErrorResponse",
|
|
460
|
-
'401': None,
|
|
461
|
-
'402': "ApiErrorResponse",
|
|
462
|
-
'500': None,
|
|
463
|
-
'502': "ApiErrorResponse",
|
|
464
|
-
}
|
|
465
|
-
response_data = await self.api_client.call_api(
|
|
466
|
-
*_param,
|
|
467
|
-
_request_timeout=_request_timeout
|
|
468
|
-
)
|
|
469
|
-
await response_data.read()
|
|
470
|
-
return self.api_client.response_deserialize(
|
|
471
|
-
response_data=response_data,
|
|
472
|
-
response_types_map=_response_types_map,
|
|
473
|
-
)
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
@validate_call
|
|
477
|
-
async def profile_change_email_without_preload_content(
|
|
478
|
-
self,
|
|
479
|
-
change_email_request: ChangeEmailRequest,
|
|
480
|
-
_request_timeout: Union[
|
|
481
|
-
None,
|
|
482
|
-
Annotated[StrictFloat, Field(gt=0)],
|
|
483
|
-
Tuple[
|
|
484
|
-
Annotated[StrictFloat, Field(gt=0)],
|
|
485
|
-
Annotated[StrictFloat, Field(gt=0)]
|
|
486
|
-
]
|
|
487
|
-
] = None,
|
|
488
|
-
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
489
|
-
_content_type: Optional[StrictStr] = None,
|
|
490
|
-
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
491
|
-
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
492
|
-
) -> RESTResponseType:
|
|
493
|
-
"""Change the email address of the authenticated user
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
:param change_email_request: (required)
|
|
497
|
-
:type change_email_request: ChangeEmailRequest
|
|
498
|
-
:param _request_timeout: timeout setting for this request. If one
|
|
499
|
-
number provided, it will be total request
|
|
500
|
-
timeout. It can also be a pair (tuple) of
|
|
501
|
-
(connection, read) timeouts.
|
|
502
|
-
:type _request_timeout: int, tuple(int, int), optional
|
|
503
|
-
:param _request_auth: set to override the auth_settings for an a single
|
|
504
|
-
request; this effectively ignores the
|
|
505
|
-
authentication in the spec for a single request.
|
|
506
|
-
:type _request_auth: dict, optional
|
|
507
|
-
:param _content_type: force content-type for the request.
|
|
508
|
-
:type _content_type: str, Optional
|
|
509
|
-
:param _headers: set to override the headers for a single
|
|
510
|
-
request; this effectively ignores the headers
|
|
511
|
-
in the spec for a single request.
|
|
512
|
-
:type _headers: dict, optional
|
|
513
|
-
:param _host_index: set to override the host_index for a single
|
|
514
|
-
request; this effectively ignores the host_index
|
|
515
|
-
in the spec for a single request.
|
|
516
|
-
:type _host_index: int, optional
|
|
517
|
-
:return: Returns the result object.
|
|
518
|
-
""" # noqa: E501
|
|
519
|
-
|
|
520
|
-
_param = self._profile_change_email_serialize(
|
|
521
|
-
change_email_request=change_email_request,
|
|
522
|
-
_request_auth=_request_auth,
|
|
523
|
-
_content_type=_content_type,
|
|
524
|
-
_headers=_headers,
|
|
525
|
-
_host_index=_host_index
|
|
526
|
-
)
|
|
527
|
-
|
|
528
|
-
_response_types_map: Dict[str, Optional[str]] = {
|
|
529
|
-
'200': "SuccessResponse",
|
|
530
|
-
'400': "ApiErrorResponse",
|
|
531
|
-
'401': None,
|
|
532
|
-
'402': "ApiErrorResponse",
|
|
533
|
-
'500': None,
|
|
534
|
-
'502': "ApiErrorResponse",
|
|
535
|
-
}
|
|
536
|
-
response_data = await self.api_client.call_api(
|
|
537
|
-
*_param,
|
|
538
|
-
_request_timeout=_request_timeout
|
|
539
|
-
)
|
|
540
|
-
return response_data.response
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
def _profile_change_email_serialize(
|
|
544
|
-
self,
|
|
545
|
-
change_email_request,
|
|
546
|
-
_request_auth,
|
|
547
|
-
_content_type,
|
|
548
|
-
_headers,
|
|
549
|
-
_host_index,
|
|
550
|
-
) -> RequestSerialized:
|
|
551
|
-
|
|
552
|
-
_host = None
|
|
553
|
-
|
|
554
|
-
_collection_formats: Dict[str, str] = {
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
_path_params: Dict[str, str] = {}
|
|
558
|
-
_query_params: List[Tuple[str, str]] = []
|
|
559
|
-
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
560
|
-
_form_params: List[Tuple[str, str]] = []
|
|
561
|
-
_files: Dict[
|
|
562
|
-
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
|
563
|
-
] = {}
|
|
564
|
-
_body_params: Optional[bytes] = None
|
|
565
|
-
|
|
566
|
-
# process the path parameters
|
|
567
|
-
# process the query parameters
|
|
568
|
-
# process the header parameters
|
|
569
|
-
# process the form parameters
|
|
570
|
-
# process the body parameter
|
|
571
|
-
if change_email_request is not None:
|
|
572
|
-
_body_params = change_email_request
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
# set the HTTP header `Accept`
|
|
576
|
-
if 'Accept' not in _header_params:
|
|
577
|
-
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
578
|
-
[
|
|
579
|
-
'application/json'
|
|
580
|
-
]
|
|
581
|
-
)
|
|
582
|
-
|
|
583
|
-
# set the HTTP header `Content-Type`
|
|
584
|
-
if _content_type:
|
|
585
|
-
_header_params['Content-Type'] = _content_type
|
|
586
|
-
else:
|
|
587
|
-
_default_content_type = (
|
|
588
|
-
self.api_client.select_header_content_type(
|
|
589
|
-
[
|
|
590
|
-
'application/json'
|
|
591
|
-
]
|
|
592
|
-
)
|
|
593
|
-
)
|
|
594
|
-
if _default_content_type is not None:
|
|
595
|
-
_header_params['Content-Type'] = _default_content_type
|
|
596
|
-
|
|
597
|
-
# authentication setting
|
|
598
|
-
_auth_settings: List[str] = [
|
|
599
|
-
'endUserHashed',
|
|
600
|
-
'endUser',
|
|
601
|
-
'apiKey',
|
|
602
|
-
'clientCredentials'
|
|
603
|
-
]
|
|
604
|
-
|
|
605
|
-
return self.api_client.param_serialize(
|
|
606
|
-
method='POST',
|
|
607
|
-
resource_path='/profile/change-email',
|
|
608
|
-
path_params=_path_params,
|
|
609
|
-
query_params=_query_params,
|
|
610
|
-
header_params=_header_params,
|
|
611
|
-
body=_body_params,
|
|
612
|
-
post_params=_form_params,
|
|
613
|
-
files=_files,
|
|
614
|
-
auth_settings=_auth_settings,
|
|
615
|
-
collection_formats=_collection_formats,
|
|
616
|
-
_host=_host,
|
|
617
|
-
_request_auth=_request_auth
|
|
618
|
-
)
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
333
|
@validate_call
|
|
624
334
|
async def profile_delete_account(
|
|
625
335
|
self,
|
pingram/api/webhooks_api.py
CHANGED
|
@@ -57,7 +57,7 @@ class WebhooksApi:
|
|
|
57
57
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
58
58
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
59
59
|
) -> WebhookEndpoint:
|
|
60
|
-
"""Create a webhook endpoint. Pingram POSTs signed JSON to the URL when one of the subscribed events happens. The response includes id and a signing secret starting with pingram_whsecret_. Save it and verify the X-Pingram-Signature header. Updates keep this secret. At most 10 endpoints per account. The URL must be
|
|
60
|
+
"""Create a webhook endpoint. Pingram POSTs signed JSON to the URL when one of the subscribed events happens. The response includes id and a signing secret starting with pingram_whsecret_. Save it and verify the X-Pingram-Signature header. Updates keep this secret. At most 10 endpoints per account. The URL must be a public HTTPS URL and should return 2xx.
|
|
61
61
|
|
|
62
62
|
|
|
63
63
|
:param webhook_endpoint_upsert_request: (required)
|
|
@@ -128,7 +128,7 @@ class WebhooksApi:
|
|
|
128
128
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
129
129
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
130
130
|
) -> ApiResponse[WebhookEndpoint]:
|
|
131
|
-
"""Create a webhook endpoint. Pingram POSTs signed JSON to the URL when one of the subscribed events happens. The response includes id and a signing secret starting with pingram_whsecret_. Save it and verify the X-Pingram-Signature header. Updates keep this secret. At most 10 endpoints per account. The URL must be
|
|
131
|
+
"""Create a webhook endpoint. Pingram POSTs signed JSON to the URL when one of the subscribed events happens. The response includes id and a signing secret starting with pingram_whsecret_. Save it and verify the X-Pingram-Signature header. Updates keep this secret. At most 10 endpoints per account. The URL must be a public HTTPS URL and should return 2xx.
|
|
132
132
|
|
|
133
133
|
|
|
134
134
|
:param webhook_endpoint_upsert_request: (required)
|
|
@@ -199,7 +199,7 @@ class WebhooksApi:
|
|
|
199
199
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
200
200
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
201
201
|
) -> RESTResponseType:
|
|
202
|
-
"""Create a webhook endpoint. Pingram POSTs signed JSON to the URL when one of the subscribed events happens. The response includes id and a signing secret starting with pingram_whsecret_. Save it and verify the X-Pingram-Signature header. Updates keep this secret. At most 10 endpoints per account. The URL must be
|
|
202
|
+
"""Create a webhook endpoint. Pingram POSTs signed JSON to the URL when one of the subscribed events happens. The response includes id and a signing secret starting with pingram_whsecret_. Save it and verify the X-Pingram-Signature header. Updates keep this secret. At most 10 endpoints per account. The URL must be a public HTTPS URL and should return 2xx.
|
|
203
203
|
|
|
204
204
|
|
|
205
205
|
:param webhook_endpoint_upsert_request: (required)
|
|
@@ -884,7 +884,7 @@ class WebhooksApi:
|
|
|
884
884
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
885
885
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
886
886
|
) -> WebhookEndpoint:
|
|
887
|
-
"""Replace one webhook endpoint's URL and its full event subscription. endpointId comes from list or create. The signing secret stays the same. events is the complete set; omitting an event unsubscribes it. The URL must be
|
|
887
|
+
"""Replace one webhook endpoint's URL and its full event subscription. endpointId comes from list or create. The signing secret stays the same. events is the complete set; omitting an event unsubscribes it. The URL must be a public HTTPS URL.
|
|
888
888
|
|
|
889
889
|
|
|
890
890
|
:param endpoint_id: Id of the webhook endpoint, from list or create. (required)
|
|
@@ -959,7 +959,7 @@ class WebhooksApi:
|
|
|
959
959
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
960
960
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
961
961
|
) -> ApiResponse[WebhookEndpoint]:
|
|
962
|
-
"""Replace one webhook endpoint's URL and its full event subscription. endpointId comes from list or create. The signing secret stays the same. events is the complete set; omitting an event unsubscribes it. The URL must be
|
|
962
|
+
"""Replace one webhook endpoint's URL and its full event subscription. endpointId comes from list or create. The signing secret stays the same. events is the complete set; omitting an event unsubscribes it. The URL must be a public HTTPS URL.
|
|
963
963
|
|
|
964
964
|
|
|
965
965
|
:param endpoint_id: Id of the webhook endpoint, from list or create. (required)
|
|
@@ -1034,7 +1034,7 @@ class WebhooksApi:
|
|
|
1034
1034
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1035
1035
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1036
1036
|
) -> RESTResponseType:
|
|
1037
|
-
"""Replace one webhook endpoint's URL and its full event subscription. endpointId comes from list or create. The signing secret stays the same. events is the complete set; omitting an event unsubscribes it. The URL must be
|
|
1037
|
+
"""Replace one webhook endpoint's URL and its full event subscription. endpointId comes from list or create. The signing secret stays the same. events is the complete set; omitting an event unsubscribes it. The URL must be a public HTTPS URL.
|
|
1038
1038
|
|
|
1039
1039
|
|
|
1040
1040
|
:param endpoint_id: Id of the webhook endpoint, from list or create. (required)
|
pingram/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 = 'pingram-python/1.0.
|
|
94
|
+
self.user_agent = 'pingram-python/1.0.38'
|
|
95
95
|
self.client_side_validation = configuration.client_side_validation
|
|
96
96
|
|
|
97
97
|
async def __aenter__(self):
|
pingram/configuration.py
CHANGED
|
@@ -551,7 +551,7 @@ conf = pingram.Configuration(
|
|
|
551
551
|
"OS: {env}\n"\
|
|
552
552
|
"Python Version: {pyversion}\n"\
|
|
553
553
|
"Version of the API: 1.0.0\n"\
|
|
554
|
-
"SDK Package Version: 1.0.
|
|
554
|
+
"SDK Package Version: 1.0.38".\
|
|
555
555
|
format(env=sys.platform, pyversion=sys.version)
|
|
556
556
|
|
|
557
557
|
def get_host_settings(self) -> List[HostSetting]:
|
pingram/models/__init__.py
CHANGED
|
@@ -48,9 +48,9 @@ from pingram.models.broadcast_response_audience import BroadcastResponseAudience
|
|
|
48
48
|
from pingram.models.campaign_webhook_response import CampaignWebhookResponse
|
|
49
49
|
from pingram.models.cancel_subscription_request import CancelSubscriptionRequest
|
|
50
50
|
from pingram.models.chained import Chained
|
|
51
|
-
from pingram.models.change_email_request import ChangeEmailRequest
|
|
52
51
|
from pingram.models.change_phone_request import ChangePhoneRequest
|
|
53
52
|
from pingram.models.channels_enum import ChannelsEnum
|
|
53
|
+
from pingram.models.confirm_change_email_request import ConfirmChangeEmailRequest
|
|
54
54
|
from pingram.models.create_account_request import CreateAccountRequest
|
|
55
55
|
from pingram.models.create_account_request_plan import CreateAccountRequestPlan
|
|
56
56
|
from pingram.models.create_account_response import CreateAccountResponse
|
|
@@ -266,6 +266,7 @@ from pingram.models.sender_post_response import SenderPostResponse
|
|
|
266
266
|
from pingram.models.set_default_template_request import SetDefaultTemplateRequest
|
|
267
267
|
from pingram.models.slack_connect_invite_response import SlackConnectInviteResponse
|
|
268
268
|
from pingram.models.slack_interactivity_response import SlackInteractivityResponse
|
|
269
|
+
from pingram.models.start_change_email_request import StartChangeEmailRequest
|
|
269
270
|
from pingram.models.sub_notification import SubNotification
|
|
270
271
|
from pingram.models.sub_notification_put_request import SubNotificationPUTRequest
|
|
271
272
|
from pingram.models.success_response import SuccessResponse
|
|
@@ -17,17 +17,17 @@ import pprint
|
|
|
17
17
|
import re # noqa: F401
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
|
-
from pydantic import BaseModel, ConfigDict,
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, StrictStr
|
|
21
21
|
from typing import Any, ClassVar, Dict, List
|
|
22
22
|
from typing import Optional, Set
|
|
23
23
|
from typing_extensions import Self
|
|
24
24
|
|
|
25
|
-
class
|
|
25
|
+
class ConfirmChangeEmailRequest(BaseModel):
|
|
26
26
|
"""
|
|
27
|
-
|
|
27
|
+
ConfirmChangeEmailRequest
|
|
28
28
|
""" # noqa: E501
|
|
29
|
-
|
|
30
|
-
__properties: ClassVar[List[str]] = ["
|
|
29
|
+
code: StrictStr
|
|
30
|
+
__properties: ClassVar[List[str]] = ["code"]
|
|
31
31
|
|
|
32
32
|
model_config = ConfigDict(
|
|
33
33
|
populate_by_name=True,
|
|
@@ -47,7 +47,7 @@ class ChangeEmailRequest(BaseModel):
|
|
|
47
47
|
|
|
48
48
|
@classmethod
|
|
49
49
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
50
|
-
"""Create an instance of
|
|
50
|
+
"""Create an instance of ConfirmChangeEmailRequest from a JSON string"""
|
|
51
51
|
return cls.from_dict(json.loads(json_str))
|
|
52
52
|
|
|
53
53
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -72,7 +72,7 @@ class ChangeEmailRequest(BaseModel):
|
|
|
72
72
|
|
|
73
73
|
@classmethod
|
|
74
74
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
75
|
-
"""Create an instance of
|
|
75
|
+
"""Create an instance of ConfirmChangeEmailRequest from a dict"""
|
|
76
76
|
if obj is None:
|
|
77
77
|
return None
|
|
78
78
|
|
|
@@ -80,7 +80,7 @@ class ChangeEmailRequest(BaseModel):
|
|
|
80
80
|
return cls.model_validate(obj)
|
|
81
81
|
|
|
82
82
|
_obj = cls.model_validate({
|
|
83
|
-
"
|
|
83
|
+
"code": obj.get("code")
|
|
84
84
|
})
|
|
85
85
|
return _obj
|
|
86
86
|
|
|
@@ -27,7 +27,7 @@ class CreateLibraryRequest(BaseModel):
|
|
|
27
27
|
CreateLibraryRequest
|
|
28
28
|
""" # noqa: E501
|
|
29
29
|
filename: StrictStr = Field(description="Original filename, including extension (e.g. hero.png).")
|
|
30
|
-
content_type: StrictStr = Field(description="MIME type of
|
|
30
|
+
content_type: StrictStr = Field(description="Image MIME type. One of image/png, image/jpeg, image/gif, or image/webp.", alias="contentType")
|
|
31
31
|
__properties: ClassVar[List[str]] = ["filename", "contentType"]
|
|
32
32
|
|
|
33
33
|
model_config = ConfigDict(
|
|
@@ -32,13 +32,13 @@ class GetLogsResponseMessagesInner(BaseModel):
|
|
|
32
32
|
event_type: StrictStr = Field(alias="eventType")
|
|
33
33
|
timestamp: StrictStr
|
|
34
34
|
epoch_ms: Union[StrictFloat, StrictInt] = Field(alias="epochMs")
|
|
35
|
-
inbox: Optional[StrictStr] = None
|
|
35
|
+
inbox: Optional[StrictStr] = Field(default=None, description="Address that received the mail. Same value as `matched.email` on the EMAIL_INBOUND webhook, including when that address was only in Cc or Bcc.")
|
|
36
36
|
var_from: Optional[StrictStr] = Field(default=None, alias="from")
|
|
37
37
|
from_name: Optional[StrictStr] = Field(default=None, alias="fromName")
|
|
38
38
|
subject: Optional[StrictStr] = None
|
|
39
|
-
to: Optional[List[StrictStr]] = None
|
|
40
|
-
cc: Optional[List[StrictStr]] = None
|
|
41
|
-
bcc: Optional[List[StrictStr]] = None
|
|
39
|
+
to: Optional[List[StrictStr]] = Field(default=None, description="Original To header addresses. Not the address that received the mail.")
|
|
40
|
+
cc: Optional[List[StrictStr]] = Field(default=None, description="Original Cc header addresses.")
|
|
41
|
+
bcc: Optional[List[StrictStr]] = Field(default=None, description="Bcc header addresses still on the delivered message. Usually omitted, because the Bcc header is removed before delivery.")
|
|
42
42
|
reply_to: Optional[StrictStr] = Field(default=None, alias="replyTo")
|
|
43
43
|
body_text: Optional[StrictStr] = Field(default=None, alias="bodyText")
|
|
44
44
|
body_html: Optional[StrictStr] = Field(default=None, alias="bodyHtml")
|
|
@@ -17,7 +17,7 @@ import pprint
|
|
|
17
17
|
import re # noqa: F401
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
|
-
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator
|
|
21
21
|
from typing import Any, ClassVar, Dict, List, Optional, Union
|
|
22
22
|
from typing import Optional, Set
|
|
23
23
|
from typing_extensions import Self
|
|
@@ -26,11 +26,22 @@ class GetLogsResponseMessagesInnerAttachmentsInner(BaseModel):
|
|
|
26
26
|
"""
|
|
27
27
|
GetLogsResponseMessagesInnerAttachmentsInner
|
|
28
28
|
""" # noqa: E501
|
|
29
|
-
filename: StrictStr
|
|
30
|
-
content_type: StrictStr = Field(alias="contentType")
|
|
31
|
-
size: Union[StrictFloat, StrictInt]
|
|
32
|
-
content_id: Optional[StrictStr] = Field(default=None, alias="contentId")
|
|
33
|
-
|
|
29
|
+
filename: StrictStr = Field(description="Original filename from the message.")
|
|
30
|
+
content_type: StrictStr = Field(description="MIME type of the file.", alias="contentType")
|
|
31
|
+
size: Union[StrictFloat, StrictInt] = Field(description="Size in bytes. This response does not include the file bytes.")
|
|
32
|
+
content_id: Optional[StrictStr] = Field(default=None, description="Content-ID with angle brackets removed, so it matches `cid:` references in `bodyHtml`. Omitted when the part has no Content-ID.", alias="contentId")
|
|
33
|
+
content_disposition: Optional[StrictStr] = Field(default=None, description="`inline` when the HTML body references this file; `attachment` when it is a separate file. Omitted when the message does not say which.", alias="contentDisposition")
|
|
34
|
+
__properties: ClassVar[List[str]] = ["filename", "contentType", "size", "contentId", "contentDisposition"]
|
|
35
|
+
|
|
36
|
+
@field_validator('content_disposition')
|
|
37
|
+
def content_disposition_validate_enum(cls, value):
|
|
38
|
+
"""Validates the enum"""
|
|
39
|
+
if value is None:
|
|
40
|
+
return value
|
|
41
|
+
|
|
42
|
+
if value not in set(['inline', 'attachment']):
|
|
43
|
+
raise ValueError("must be one of enum values ('inline', 'attachment')")
|
|
44
|
+
return value
|
|
34
45
|
|
|
35
46
|
model_config = ConfigDict(
|
|
36
47
|
populate_by_name=True,
|
|
@@ -86,7 +97,8 @@ class GetLogsResponseMessagesInnerAttachmentsInner(BaseModel):
|
|
|
86
97
|
"filename": obj.get("filename"),
|
|
87
98
|
"contentType": obj.get("contentType"),
|
|
88
99
|
"size": obj.get("size"),
|
|
89
|
-
"contentId": obj.get("contentId")
|
|
100
|
+
"contentId": obj.get("contentId"),
|
|
101
|
+
"contentDisposition": obj.get("contentDisposition")
|
|
90
102
|
})
|
|
91
103
|
return _obj
|
|
92
104
|
|
|
@@ -79,25 +79,29 @@ class LogsGetResponseLogsInner(BaseModel):
|
|
|
79
79
|
email_clicked_link: Optional[StrictStr] = None
|
|
80
80
|
email_clicked_link_tags: Optional[StrictStr] = None
|
|
81
81
|
email_clicked_webhook_res: Optional[StrictStr] = None
|
|
82
|
-
email_inbound_at: Optional[StrictStr] = None
|
|
83
|
-
email_inbound_from: Optional[StrictStr] = None
|
|
84
|
-
email_inbound_from_name: Optional[StrictStr] = None
|
|
85
|
-
email_inbound_to: Optional[StrictStr] = None
|
|
86
|
-
email_inbound_cc: Optional[StrictStr] = None
|
|
87
|
-
email_inbound_bcc: Optional[StrictStr] = None
|
|
88
|
-
email_inbound_reply_to: Optional[StrictStr] = None
|
|
89
|
-
email_inbound_inbox: Optional[StrictStr] = None
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
82
|
+
email_inbound_at: Optional[StrictStr] = Field(default=None, description="When the message was accepted, ISO 8601. Log order and the 30-day resend window use this time.")
|
|
83
|
+
email_inbound_from: Optional[StrictStr] = Field(default=None, description="Sender email address.")
|
|
84
|
+
email_inbound_from_name: Optional[StrictStr] = Field(default=None, description="Sender display name, when the From header includes one.")
|
|
85
|
+
email_inbound_to: Optional[StrictStr] = Field(default=None, description="Comma-separated To header addresses. This is the header, not necessarily the Pingram inbox.")
|
|
86
|
+
email_inbound_cc: Optional[StrictStr] = Field(default=None, description="Comma-separated CC header addresses.")
|
|
87
|
+
email_inbound_bcc: Optional[StrictStr] = Field(default=None, description="Comma-separated BCC header addresses. Often empty because that header is stripped before delivery.")
|
|
88
|
+
email_inbound_reply_to: Optional[StrictStr] = Field(default=None, description="Reply-To header address.")
|
|
89
|
+
email_inbound_inbox: Optional[StrictStr] = Field(default=None, description="Address that received the mail. Same value as `matched.email` on the EMAIL_INBOUND webhook, including when that address was only in Cc or Bcc.")
|
|
90
|
+
email_inbound_to_name: Optional[StrictStr] = Field(default=None, description="Display name of `email_inbound_inbox` when the headers include one. Same value as `matched.name`. Omitted when that address has no display name.")
|
|
91
|
+
email_inbound_sent_at: Optional[StrictStr] = Field(default=None, description="Sender Date header, ISO 8601. Omitted when that header is missing or invalid.")
|
|
92
|
+
email_inbound_retry_key: Optional[StrictStr] = Field(default=None, description="Key used to resend this inbound email for 30 days.")
|
|
93
|
+
email_inbound_user_id: Optional[StrictStr] = Field(default=None, description="User id from the original notification when this mail is a reply to one.")
|
|
94
|
+
email_inbound_subject: Optional[StrictStr] = Field(default=None, description="Subject line.")
|
|
95
|
+
email_inbound_body_text: Optional[StrictStr] = Field(default=None, description="Plain-text body.")
|
|
96
|
+
email_inbound_body_html: Optional[StrictStr] = Field(default=None, description="HTML body. Inline images use `cid:` values that match attachment content IDs on the webhook payload.")
|
|
97
|
+
email_inbound_has_attachments: Optional[StrictBool] = Field(default=None, description="True when the message includes at least one attachment.")
|
|
98
|
+
email_inbound_attachment_count: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Number of attachments. File bytes are not stored on this log.")
|
|
99
|
+
email_inbound_message_id: Optional[StrictStr] = Field(default=None, description="Message-ID header. Use it to thread later replies.")
|
|
100
|
+
email_inbound_in_reply_to: Optional[StrictStr] = Field(default=None, description="In-Reply-To header: the Message-ID this mail replies to.")
|
|
101
|
+
email_inbound_references: Optional[StrictStr] = Field(default=None, description="References header: the chain of Message-IDs in the thread.")
|
|
102
|
+
email_inbound_webhook_delivered: Optional[StrictBool] = Field(default=None, description="True when an EMAIL_INBOUND webhook endpoint returned a 2xx response.")
|
|
103
|
+
email_inbound_webhook_res: Optional[StrictStr] = Field(default=None, description="JSON delivery result for each EMAIL_INBOUND endpoint.")
|
|
104
|
+
email_inbound_resolution_type: Optional[StrictStr] = Field(default=None, description="How the inbox was matched: `reply` for a reply to a sent notification, `builtin` for a Pingram inbox, or `custom` for a custom domain.")
|
|
101
105
|
sms_inbound_at: Optional[StrictStr] = None
|
|
102
106
|
sms_inbound_from: Optional[StrictStr] = None
|
|
103
107
|
sms_inbound_to: Optional[StrictStr] = Field(default=None, description="Pingram number that received the inbound message.")
|
|
@@ -200,7 +204,7 @@ class LogsGetResponseLogsInner(BaseModel):
|
|
|
200
204
|
schedule_updated_at: Optional[StrictStr] = None
|
|
201
205
|
schedule_updated_to: Optional[StrictStr] = None
|
|
202
206
|
schedule_deleted_at: Optional[StrictStr] = None
|
|
203
|
-
__properties: ClassVar[List[str]] = ["received_at", "type", "envId", "clientId", "agent", "ip", "request", "test", "trackingId", "accountId", "failed_at", "failed_code", "failed_internal", "inapp_sent_at", "inapp_sent_after", "inapp_delivered_at", "inapp_delivered_after", "inapp_failed_at", "inapp_failed_code", "inapp_failed_internal", "mobile_push_failed_at", "mobile_push_failed_code", "mobile_push_failed_token", "mobile_push_failed_internal", "mobile_push_sent_at", "mobile_push_sent_after", "mobile_push_sent_token", "mobile_push_delivered_at", "mobile_push_delivered_after", "email_sent_at", "email_sent_message_id", "email_sent_after", "email_preview", "email_delivered_at", "email_delivered_recipients", "email_delivered_after", "email_delivered_webhook_res", "email_failed_at", "email_failed_code", "email_failed_recipient", "email_failed_diagnostic_code", "email_failed_internal", "email_failed_webhook_res", "email_opened_at", "email_opened_user_agent", "email_opened_ip", "email_opened_webhook_res", "email_clicked_at", "email_clicked_user_agent", "email_clicked_ip", "email_clicked_link", "email_clicked_link_tags", "email_clicked_webhook_res", "email_inbound_at", "email_inbound_from", "email_inbound_from_name", "email_inbound_to", "email_inbound_cc", "email_inbound_bcc", "email_inbound_reply_to", "email_inbound_inbox", "email_inbound_subject", "email_inbound_body_text", "email_inbound_body_html", "email_inbound_has_attachments", "email_inbound_attachment_count", "email_inbound_message_id", "email_inbound_in_reply_to", "email_inbound_references", "email_inbound_webhook_delivered", "email_inbound_webhook_res", "email_inbound_resolution_type", "sms_inbound_at", "sms_inbound_from", "sms_inbound_to", "sms_inbound_text", "sms_inbound_webhook_delivered", "sms_inbound_webhook_res", "sms_inbound_media", "sms_replied_at", "sms_replied_to", "sms_replied_text", "sms_replied_segments", "sms_replied_encoding", "sms_unsubscribe_at", "sms_unsubscribe_from", "sms_unsubscribe_keyword", "sms_unsubscribe_webhook_delivered", "sms_unsubscribe_webhook_res", "sms_subscribe_at", "sms_subscribe_from", "sms_subscribe_keyword", "sms_subscribe_webhook_delivered", "sms_subscribe_webhook_res", "web_push_sent_token", "web_push_sent_at", "web_push_sent_after", "web_push_delivered_at", "web_push_delivered_after", "web_push_delivered_token", "web_push_delivered_internal", "web_push_failed_at", "web_push_failed_token", "web_push_failed_code", "web_push_failed_internal", "processed_at", "ignored", "scheduled_for", "user_id", "user_email", "user_number", "email_routing", "email_routing_reason", "sms_routing", "sms_routing_reason", "web_push_routing", "web_push_routing_reason", "mobile_push_routing", "mobile_push_routing_reason", "call_routing", "call_routing_reason", "inapp_routing", "inapp_routing_reason", "slack_routing", "slack_routing_reason", "sms_preview", "call_preview", "web_push_preview", "mobile_push_preview", "slack_preview", "inapp_preview", "slack_sent_at", "slack_sent_after", "slack_delivered_at", "slack_delivered_after", "slack_delivered_internal", "slack_failed_at", "slack_failed_code", "slack_failed_internal", "call_sent_at", "call_sent_after", "call_sent_from", "call_delivered_at", "call_delivered_after", "call_delivered_code", "call_delivered_cost_internal", "call_delivered_cost", "call_failed_at", "call_failed_code", "call_failed_internal", "sms_failed_at", "sms_failed_code", "sms_failed_internal", "sms_sent_at", "sms_sent_after", "sms_sent_from", "sms_sent_carrier", "sms_sent_line_type", "sms_sent_encoding", "sms_sent_segments", "sms_sent_parts", "sms_sent_cost", "sms_sent_country", "sms_sent_messageId", "sms_sent_mms", "sms_carrier_cost_internal", "sms_carrier_fee_internal", "sms_rate_internal", "sms_delivered_at", "sms_delivered_after", "sms_delivered_cost_internal", "schedule_updated_at", "schedule_updated_to", "schedule_deleted_at"]
|
|
207
|
+
__properties: ClassVar[List[str]] = ["received_at", "type", "envId", "clientId", "agent", "ip", "request", "test", "trackingId", "accountId", "failed_at", "failed_code", "failed_internal", "inapp_sent_at", "inapp_sent_after", "inapp_delivered_at", "inapp_delivered_after", "inapp_failed_at", "inapp_failed_code", "inapp_failed_internal", "mobile_push_failed_at", "mobile_push_failed_code", "mobile_push_failed_token", "mobile_push_failed_internal", "mobile_push_sent_at", "mobile_push_sent_after", "mobile_push_sent_token", "mobile_push_delivered_at", "mobile_push_delivered_after", "email_sent_at", "email_sent_message_id", "email_sent_after", "email_preview", "email_delivered_at", "email_delivered_recipients", "email_delivered_after", "email_delivered_webhook_res", "email_failed_at", "email_failed_code", "email_failed_recipient", "email_failed_diagnostic_code", "email_failed_internal", "email_failed_webhook_res", "email_opened_at", "email_opened_user_agent", "email_opened_ip", "email_opened_webhook_res", "email_clicked_at", "email_clicked_user_agent", "email_clicked_ip", "email_clicked_link", "email_clicked_link_tags", "email_clicked_webhook_res", "email_inbound_at", "email_inbound_from", "email_inbound_from_name", "email_inbound_to", "email_inbound_cc", "email_inbound_bcc", "email_inbound_reply_to", "email_inbound_inbox", "email_inbound_to_name", "email_inbound_sent_at", "email_inbound_retry_key", "email_inbound_user_id", "email_inbound_subject", "email_inbound_body_text", "email_inbound_body_html", "email_inbound_has_attachments", "email_inbound_attachment_count", "email_inbound_message_id", "email_inbound_in_reply_to", "email_inbound_references", "email_inbound_webhook_delivered", "email_inbound_webhook_res", "email_inbound_resolution_type", "sms_inbound_at", "sms_inbound_from", "sms_inbound_to", "sms_inbound_text", "sms_inbound_webhook_delivered", "sms_inbound_webhook_res", "sms_inbound_media", "sms_replied_at", "sms_replied_to", "sms_replied_text", "sms_replied_segments", "sms_replied_encoding", "sms_unsubscribe_at", "sms_unsubscribe_from", "sms_unsubscribe_keyword", "sms_unsubscribe_webhook_delivered", "sms_unsubscribe_webhook_res", "sms_subscribe_at", "sms_subscribe_from", "sms_subscribe_keyword", "sms_subscribe_webhook_delivered", "sms_subscribe_webhook_res", "web_push_sent_token", "web_push_sent_at", "web_push_sent_after", "web_push_delivered_at", "web_push_delivered_after", "web_push_delivered_token", "web_push_delivered_internal", "web_push_failed_at", "web_push_failed_token", "web_push_failed_code", "web_push_failed_internal", "processed_at", "ignored", "scheduled_for", "user_id", "user_email", "user_number", "email_routing", "email_routing_reason", "sms_routing", "sms_routing_reason", "web_push_routing", "web_push_routing_reason", "mobile_push_routing", "mobile_push_routing_reason", "call_routing", "call_routing_reason", "inapp_routing", "inapp_routing_reason", "slack_routing", "slack_routing_reason", "sms_preview", "call_preview", "web_push_preview", "mobile_push_preview", "slack_preview", "inapp_preview", "slack_sent_at", "slack_sent_after", "slack_delivered_at", "slack_delivered_after", "slack_delivered_internal", "slack_failed_at", "slack_failed_code", "slack_failed_internal", "call_sent_at", "call_sent_after", "call_sent_from", "call_delivered_at", "call_delivered_after", "call_delivered_code", "call_delivered_cost_internal", "call_delivered_cost", "call_failed_at", "call_failed_code", "call_failed_internal", "sms_failed_at", "sms_failed_code", "sms_failed_internal", "sms_sent_at", "sms_sent_after", "sms_sent_from", "sms_sent_carrier", "sms_sent_line_type", "sms_sent_encoding", "sms_sent_segments", "sms_sent_parts", "sms_sent_cost", "sms_sent_country", "sms_sent_messageId", "sms_sent_mms", "sms_carrier_cost_internal", "sms_carrier_fee_internal", "sms_rate_internal", "sms_delivered_at", "sms_delivered_after", "sms_delivered_cost_internal", "schedule_updated_at", "schedule_updated_to", "schedule_deleted_at"]
|
|
204
208
|
|
|
205
209
|
@field_validator('failed_code')
|
|
206
210
|
def failed_code_validate_enum(cls, value):
|
|
@@ -564,6 +568,10 @@ class LogsGetResponseLogsInner(BaseModel):
|
|
|
564
568
|
"email_inbound_bcc": obj.get("email_inbound_bcc"),
|
|
565
569
|
"email_inbound_reply_to": obj.get("email_inbound_reply_to"),
|
|
566
570
|
"email_inbound_inbox": obj.get("email_inbound_inbox"),
|
|
571
|
+
"email_inbound_to_name": obj.get("email_inbound_to_name"),
|
|
572
|
+
"email_inbound_sent_at": obj.get("email_inbound_sent_at"),
|
|
573
|
+
"email_inbound_retry_key": obj.get("email_inbound_retry_key"),
|
|
574
|
+
"email_inbound_user_id": obj.get("email_inbound_user_id"),
|
|
567
575
|
"email_inbound_subject": obj.get("email_inbound_subject"),
|
|
568
576
|
"email_inbound_body_text": obj.get("email_inbound_body_text"),
|
|
569
577
|
"email_inbound_body_html": obj.get("email_inbound_body_html"),
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Pingram
|
|
5
|
+
|
|
6
|
+
Internal API for notification delivery and management
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0.0
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
21
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
22
|
+
from typing import Optional, Set
|
|
23
|
+
from typing_extensions import Self
|
|
24
|
+
|
|
25
|
+
class StartChangeEmailRequest(BaseModel):
|
|
26
|
+
"""
|
|
27
|
+
StartChangeEmailRequest
|
|
28
|
+
""" # noqa: E501
|
|
29
|
+
new_email: StrictStr = Field(alias="newEmail")
|
|
30
|
+
password: StrictStr = Field(description="Current account password. Required before a login-email change starts.")
|
|
31
|
+
mfa_code: Optional[StrictStr] = Field(default=None, description="TOTP code. Required when software-token MFA is enabled.", alias="mfaCode")
|
|
32
|
+
__properties: ClassVar[List[str]] = ["newEmail", "password", "mfaCode"]
|
|
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 StartChangeEmailRequest 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 StartChangeEmailRequest 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
|
+
"newEmail": obj.get("newEmail"),
|
|
86
|
+
"password": obj.get("password"),
|
|
87
|
+
"mfaCode": obj.get("mfaCode")
|
|
88
|
+
})
|
|
89
|
+
return _obj
|
|
90
|
+
|
|
91
|
+
|
|
@@ -26,7 +26,7 @@ class WebhookEndpointUpsertRequest(BaseModel):
|
|
|
26
26
|
"""
|
|
27
27
|
Request body for creating or updating an events webhook endpoint.
|
|
28
28
|
""" # noqa: E501
|
|
29
|
-
webhook: StrictStr = Field(description="Public
|
|
29
|
+
webhook: StrictStr = Field(description="Public HTTPS URL that accepts POST with a JSON event body. Return 2xx to acknowledge. Private, loopback, and link-local addresses are rejected. Requests include X-Pingram-Id, X-Pingram-Signature (v1 HMAC-SHA256), and X-Pingram-Timestamp.")
|
|
30
30
|
events: List[StrictStr] = Field(description="Full set of event types to deliver to this URL. Omitting an event on update unsubscribes it. Inbound SMS to the free shared number only works when that person has already received a text from this number. Inbound SMS to a dedicated number works normally.")
|
|
31
31
|
__properties: ClassVar[List[str]] = ["webhook", "events"]
|
|
32
32
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
pingram/__init__.py,sha256=
|
|
2
|
-
pingram/api_client.py,sha256=
|
|
1
|
+
pingram/__init__.py,sha256=madtC0oG5OhYW-k-QMzV_YWdcJyM7Gh8yzVwysKZ_j0,50656
|
|
2
|
+
pingram/api_client.py,sha256=VzyYEibIFV0pYkK7CpHzv62w9FleHNs1tkght7JDVkw,27792
|
|
3
3
|
pingram/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
|
|
4
4
|
pingram/client_wrapper.py,sha256=sreT63NgmWEWLUzdYQWZTN0PneHhYITsfPTSjthCjqw,15358
|
|
5
|
-
pingram/configuration.py,sha256=
|
|
5
|
+
pingram/configuration.py,sha256=jUP8ffj7fQp01o4R1dILyDE_d8xuLHqnMWK3-OilyX8,19466
|
|
6
6
|
pingram/exceptions.py,sha256=0l6B9dlFRwmPx-sfytj3wC9rdGgVPJY3AQ39qHx3GS4,8483
|
|
7
7
|
pingram/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
8
|
pingram/rest.py,sha256=soB0_p6OMFlXrz5pDmdf2nIZchqPua9hgtuj8A5Yea4,6426
|
|
@@ -21,11 +21,11 @@ pingram/api/environments_api.py,sha256=V7WMAxQZo_m02kbyC2-IZRUoki3WpNinqt4SHobCU
|
|
|
21
21
|
pingram/api/health_api.py,sha256=0c0CcuVQ2VaATvYlhjiIuGNuCygErc4oZjQUIRGoO-k,10787
|
|
22
22
|
pingram/api/insights_api.py,sha256=SJcLUrd9PyU5WmMjo-RQPTfqA2XiH0GiBHFXMeg2i-o,12387
|
|
23
23
|
pingram/api/keys_api.py,sha256=sonPmnG5rfk80Gm2j-DQ_pdvbO3qMDPHwHjiO7UebTA,32790
|
|
24
|
-
pingram/api/library_api.py,sha256=
|
|
25
|
-
pingram/api/logs_api.py,sha256=
|
|
24
|
+
pingram/api/library_api.py,sha256=CboFtuoW2ZaLTa3AIvIYzfcdu-0Hzq6XtbnoPpYZpDg,26055
|
|
25
|
+
pingram/api/logs_api.py,sha256=t9vc3C_wvKVpU6S_0ksMUxagexWhFxn-UIxSQoqvdQY,77468
|
|
26
26
|
pingram/api/members_api.py,sha256=mo5TGL3TQMMcbHo24abKozxac0KseswMQMGN_8tZvSY,70113
|
|
27
27
|
pingram/api/numbers_api.py,sha256=2v0O4THsnhc0D1HV-JjPd1hufiUWbfIvSRW0TLB74QE,58330
|
|
28
|
-
pingram/api/profile_api.py,sha256=
|
|
28
|
+
pingram/api/profile_api.py,sha256=e-x3zcGCTwuS42Yra2-wzUWIjHx-6FM_rvoTK3Neer8,66434
|
|
29
29
|
pingram/api/registrations_api.py,sha256=xj9ZGY28RpSuaIGVPYvr_kjCfHv3ltNPW96pk1ssnXs,57220
|
|
30
30
|
pingram/api/sender_api.py,sha256=LDst-NVk9N5kOKixZp_s2_S276KvmCaf-dHWKNCMiSY,35372
|
|
31
31
|
pingram/api/sms_api.py,sha256=gQV3E0NcjIjgtG4mcP5mcF268sVAUzwY3YVRyZpxEYA,12283
|
|
@@ -35,8 +35,8 @@ pingram/api/types_api.py,sha256=AL7Hj6hLe-pWYiXRUGYnevVDfZeVJDi2V8x70uYgqfg,5639
|
|
|
35
35
|
pingram/api/user_api.py,sha256=333C444u7EnCowDoIRY6bogaoqlTf_exvM76xeM7QP4,33489
|
|
36
36
|
pingram/api/users_api.py,sha256=AERWQ8wGRve3TovcVBp9CamZOUV8lpjJb_P9HnsxV4g,37532
|
|
37
37
|
pingram/api/voice_api.py,sha256=ML4Xbnn64f47nkM7_Bn2kwvcvng_T4Nv1uLg6Jhd3-Y,125242
|
|
38
|
-
pingram/api/webhooks_api.py,sha256=
|
|
39
|
-
pingram/models/__init__.py,sha256=
|
|
38
|
+
pingram/api/webhooks_api.py,sha256=U0CHXmPzK9W6U_ktArfZRHaArlhlUSyngeYXeg7NgCk,47863
|
|
39
|
+
pingram/models/__init__.py,sha256=JSITLkeXSW6oto0huBysdyWHi8diHOkG4GEm2-3cQmo,27010
|
|
40
40
|
pingram/models/accept_invite_request.py,sha256=ZXIkBQFXWjD0g0Akfuz6CuWTWZ8AWpWXHfY8EMgo4XE,2443
|
|
41
41
|
pingram/models/accept_invite_response.py,sha256=R-fqCEzKwX1XxJscgtPSU7MUCeKGmuBkzh8fha-9KEM,2869
|
|
42
42
|
pingram/models/account_addresses_response.py,sha256=0nev-caxYCmHQHHTXSvpmrz6yYPx92UcB8Umzkt2RK8,3068
|
|
@@ -72,9 +72,9 @@ pingram/models/broadcast_response_audience.py,sha256=33Dzou7tVPbK-nyuN3aJ8w7es2Q
|
|
|
72
72
|
pingram/models/campaign_webhook_response.py,sha256=gyQNeLXCSiYq-6dsaXwy_LEjPa1pwv00QbwRpB7P-YU,2489
|
|
73
73
|
pingram/models/cancel_subscription_request.py,sha256=20D7UTpBQQ0tTZeRsndXyR9xsBvK_ae6VjHtsnY65gQ,2696
|
|
74
74
|
pingram/models/chained.py,sha256=8popCOK-R43PUusrXv9K3l6IQ4XDo-6QLv8izjL1A0U,3827
|
|
75
|
-
pingram/models/change_email_request.py,sha256=Go8lqBknowjhU9ORXbgEtgE1Zi_vucXx6Kp-HDC4Si4,2485
|
|
76
75
|
pingram/models/change_phone_request.py,sha256=lYxKSwEtu-6LSTkFwSe823JoR72wEF6YLbDT_XQuoRw,2500
|
|
77
76
|
pingram/models/channels_enum.py,sha256=h_ZOhc2M5OKhT6mfdHn53ULNn4eFud-C4NO2FpuVHWo,818
|
|
77
|
+
pingram/models/confirm_change_email_request.py,sha256=uUMvhYCdVITJPya5QQeoqSRtHldTaqzQJ8Cm21_Dtnc,2463
|
|
78
78
|
pingram/models/create_account_request.py,sha256=y5SNInmj6ZqnqAv-NhIKCld9lrffqYry4v1mpryYt7Y,3220
|
|
79
79
|
pingram/models/create_account_request_plan.py,sha256=RqELmToZvFKyAkBpkyFOzPPN_4KU8Zoa6aSSwpYim2M,3193
|
|
80
80
|
pingram/models/create_account_response.py,sha256=ub9xzw97D7AoFgMrJmGUKv9sfDlYU5-AEF-MEkxBhtA,3967
|
|
@@ -82,7 +82,7 @@ pingram/models/create_address_request.py,sha256=yJePVB_5sqZYGB_q8yT_O5_-B8M2Pegk
|
|
|
82
82
|
pingram/models/create_broadcast_request.py,sha256=dTx7lBR1xY7xbiId_mCj2OANL379h4JKN9PeN9lCXHU,4330
|
|
83
83
|
pingram/models/create_key_request.py,sha256=VdtYzV06gx27l39UyFtQ4Bj5D1XaxvaxK6RPFEtEO-U,3285
|
|
84
84
|
pingram/models/create_key_response.py,sha256=Ery7qLao-9IS6s3QHrYyc13kc-1quB6fDQ5_mkQ3riw,3714
|
|
85
|
-
pingram/models/create_library_request.py,sha256=
|
|
85
|
+
pingram/models/create_library_request.py,sha256=919AJi8wQ7iwvZXq7alDn4bXVDrzXh1TnZO8EwDKGlM,2756
|
|
86
86
|
pingram/models/create_library_response.py,sha256=79ZAqnWFY6bGrk9Y0NPwl8oPwcLdoBiNGuxQBw7Ty_g,3443
|
|
87
87
|
pingram/models/create_personal_access_token_request.py,sha256=4-nTn1fL1pc3orqH7vsssT5C4G9Mv80vSIIBeUlIcJc,2774
|
|
88
88
|
pingram/models/create_personal_access_token_response.py,sha256=_m0ewoRCefhkjvW8_bJ59RlsPRQl0XH6ZDniq9Qesnc,3356
|
|
@@ -120,8 +120,8 @@ pingram/models/get_inapp_notifications_response_notifications_inner_template_any
|
|
|
120
120
|
pingram/models/get_keys_response.py,sha256=rRU2_r2GSsPjUPz1UpMxnU3gYiRWBRDZxrBcRogu1SY,3084
|
|
121
121
|
pingram/models/get_keys_response_keys_inner.py,sha256=Qz5Q_hjqLjdtmQ2NIPsBU_6Ot65450Qe39CNxn_wBwo,4183
|
|
122
122
|
pingram/models/get_logs_response.py,sha256=yw-MbS9oSphSfSEh49rEarAAu0yE7RrOSqQi__8rPGY,3150
|
|
123
|
-
pingram/models/get_logs_response_messages_inner.py,sha256=
|
|
124
|
-
pingram/models/get_logs_response_messages_inner_attachments_inner.py,sha256=
|
|
123
|
+
pingram/models/get_logs_response_messages_inner.py,sha256=0Xn8WLFPas3TDWpeKylumIq8b_yUCIGc5HapoIA0jlM,6875
|
|
124
|
+
pingram/models/get_logs_response_messages_inner_attachments_inner.py,sha256=iB9DTim30vmOA88op-Q2SMhGkiMAAtyJ-gNaIZ2dUJ0,3968
|
|
125
125
|
pingram/models/get_logs_response_messages_inner_media_inner.py,sha256=CV5LL4clLNwQ4KJIBKjtYdeRv-jNoC1avdW5gZvQmm4,2675
|
|
126
126
|
pingram/models/get_members_response_inner.py,sha256=bwXtll4mIifY9BC_kzAQT63eKRkwSZ3RqxgUrUI1tcs,3757
|
|
127
127
|
pingram/models/get_metrics_response_inner.py,sha256=2O5rpUGYHOD81H6hmxNpvXDKc2fOXyecLvN7B7I6RE0,5199
|
|
@@ -223,7 +223,7 @@ pingram/models/list_voice_calls_response_calls_inner.py,sha256=ncBMGwHrTayeLJV6w
|
|
|
223
223
|
pingram/models/log_query_post_body.py,sha256=ti396ju2KidR5YJTVczSHbIWpgr8--4XODJGIz3pyvQ,4090
|
|
224
224
|
pingram/models/logs_bulk_request.py,sha256=Gm7dbaWACc2MdKYYA-YhG3ZufTIkGSxdAdjVvItndDc,2511
|
|
225
225
|
pingram/models/logs_get_response.py,sha256=AqWy0tdIKLgtSDA6dL6Yzv4sfFhv2co0JxjEsW4Sn9c,2962
|
|
226
|
-
pingram/models/logs_get_response_logs_inner.py,sha256=
|
|
226
|
+
pingram/models/logs_get_response_logs_inner.py,sha256=OmVLA0zeVaD1clmenTglh96s9R5PAD-fI-ibgGxGmVk,44962
|
|
227
227
|
pingram/models/logs_query_response.py,sha256=ym1yEiQUcc_1Y72Fqbqb2z9MmCUY2wB9Yk3fY_rQhlQ,2493
|
|
228
228
|
pingram/models/logs_query_result_response.py,sha256=DUcg_wocJDbHJVv4P1uk0mXVstbTCnMGcXsyF9AcTO4,3259
|
|
229
229
|
pingram/models/logs_retention_response.py,sha256=HnaIpS4TU4RYy_0VXpti5Ef8TxkIWxsdQKrSJCv56dY,2589
|
|
@@ -290,6 +290,7 @@ pingram/models/sender_post_response.py,sha256=CLUFGdzNVbJEY8Oh9Ut0DBhzeJgK62VN-L
|
|
|
290
290
|
pingram/models/set_default_template_request.py,sha256=gY8rMuEUcJ6NKBx1yntIE1d3YgVF-q6qXNyEOJO__uk,2965
|
|
291
291
|
pingram/models/slack_connect_invite_response.py,sha256=HLdU2UPCduNekQ2ttrHOi_CRI3gVOB9wWZaazmgM5zI,2645
|
|
292
292
|
pingram/models/slack_interactivity_response.py,sha256=eNsfRl-0wRzZiDIVfOvaft_9hLLEBmk2_x_H0EOTyzk,2524
|
|
293
|
+
pingram/models/start_change_email_request.py,sha256=pJsVRMqbQelQU1PNdsaXBAA2Oom_E_vyfAdDu5cW2yY,2888
|
|
293
294
|
pingram/models/sub_notification.py,sha256=mMMCA4x34DtNS7F1r8H1Zby9y32Ok77xrB-TgULRSxc,2839
|
|
294
295
|
pingram/models/sub_notification_put_request.py,sha256=amZToL4DqVyBcGXFgm7CCARzXffTvEaVuJyGImTpDlY,2467
|
|
295
296
|
pingram/models/success_response.py,sha256=eDmPsP27a51wmPvcTq7JDTnn-uQLXTPdmRRHyq2hLIQ,2437
|
|
@@ -335,14 +336,14 @@ pingram/models/voice_browser_call_response.py,sha256=Hi-6mtkCv1Rb6ILB6-hVbYhzG--
|
|
|
335
336
|
pingram/models/voice_call_request.py,sha256=nO7Ci5yB_jqJrVkMBt5p59gLsYsVDT5fsZl0stuHCn8,3287
|
|
336
337
|
pingram/models/voice_call_response.py,sha256=wxVY-uyUvw8uvGPRbQBLmCOE5RYOQl8c_zS6RPtFIQE,2788
|
|
337
338
|
pingram/models/webhook_endpoint.py,sha256=_suPfjuHzFMdqTf_DN_s5Zfl8YzlVXLScm72FP1SKWw,4161
|
|
338
|
-
pingram/models/webhook_endpoint_upsert_request.py,sha256=
|
|
339
|
+
pingram/models/webhook_endpoint_upsert_request.py,sha256=LdtEE5LfFZSep7g38pOGS0TEFnAbZNaZ0naRdgTkZC0,4208
|
|
339
340
|
pingram/models/webhook_endpoints_response.py,sha256=ukoMTHiFVi1h2lUsZKCzxhOcwZqZI8YxUSS5jJDxjM0,3187
|
|
340
341
|
pingram/models/webhook_endpoints_response_endpoints_inner.py,sha256=CGjdTpATE7lCvuzMFZwdQs1ixhDoSk1U9k3C0DoqZ0g,4230
|
|
341
342
|
pingram/models/webhook_event.py,sha256=Njpdjk6KdTvoXl-WYEOuQhFcuZcs3vPHCfYeoclo6aQ,7262
|
|
342
343
|
pingram/models/webhook_event_usage_value.py,sha256=6oTIeL15GY-JTn_2x8304bz-9Av66OEVMH5ukHKFgjM,2770
|
|
343
344
|
pingram/models/webhook_response.py,sha256=rwCh3OTCE3TK6tVEKOKVlq9w0b1fZ-fKKEoe9Tz0tIc,3233
|
|
344
|
-
pingram_python-1.0.
|
|
345
|
-
pingram_python-1.0.
|
|
346
|
-
pingram_python-1.0.
|
|
347
|
-
pingram_python-1.0.
|
|
348
|
-
pingram_python-1.0.
|
|
345
|
+
pingram_python-1.0.38.dist-info/licenses/LICENSE,sha256=jFcP99OXuZ-3f_86j4Q4OjmvvHNm7SG94ytcAhqvldk,1059
|
|
346
|
+
pingram_python-1.0.38.dist-info/METADATA,sha256=NdjC31aAnKnA8a9QNyEkfXHjCmki0EAHGtpdhIXSRrQ,2268
|
|
347
|
+
pingram_python-1.0.38.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
348
|
+
pingram_python-1.0.38.dist-info/top_level.txt,sha256=6BmMatn4_wswGo1u11HkRU892yP2gG5dddsmmRhSjD8,8
|
|
349
|
+
pingram_python-1.0.38.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|