linkedapi 1.0.0__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 (72) hide show
  1. linkedapi/__init__.py +127 -0
  2. linkedapi/admin/__init__.py +13 -0
  3. linkedapi/admin/accounts.py +91 -0
  4. linkedapi/admin/admin.py +22 -0
  5. linkedapi/admin/http_client.py +73 -0
  6. linkedapi/admin/limits.py +70 -0
  7. linkedapi/admin/subscription.py +69 -0
  8. linkedapi/client.py +160 -0
  9. linkedapi/config.py +10 -0
  10. linkedapi/core/__init__.py +4 -0
  11. linkedapi/core/operation.py +89 -0
  12. linkedapi/core/polling.py +48 -0
  13. linkedapi/errors.py +119 -0
  14. linkedapi/http/__init__.py +4 -0
  15. linkedapi/http/base.py +22 -0
  16. linkedapi/http/linked_api_http_client.py +74 -0
  17. linkedapi/mappers/__init__.py +16 -0
  18. linkedapi/mappers/array.py +49 -0
  19. linkedapi/mappers/base.py +70 -0
  20. linkedapi/mappers/simple.py +56 -0
  21. linkedapi/mappers/then.py +175 -0
  22. linkedapi/mappers/void.py +33 -0
  23. linkedapi/operations/__init__.py +58 -0
  24. linkedapi/operations/check_connection_status.py +15 -0
  25. linkedapi/operations/comment_on_post.py +12 -0
  26. linkedapi/operations/create_post.py +15 -0
  27. linkedapi/operations/custom_workflow.py +22 -0
  28. linkedapi/operations/fetch_company.py +35 -0
  29. linkedapi/operations/fetch_person.py +43 -0
  30. linkedapi/operations/fetch_post.py +33 -0
  31. linkedapi/operations/nv_fetch_company.py +33 -0
  32. linkedapi/operations/nv_fetch_person.py +23 -0
  33. linkedapi/operations/nv_search_companies.py +15 -0
  34. linkedapi/operations/nv_search_people.py +15 -0
  35. linkedapi/operations/nv_send_message.py +12 -0
  36. linkedapi/operations/nv_sync_conversation.py +12 -0
  37. linkedapi/operations/react_to_post.py +12 -0
  38. linkedapi/operations/remove_connection.py +12 -0
  39. linkedapi/operations/retrieve_connections.py +15 -0
  40. linkedapi/operations/retrieve_pending_requests.py +15 -0
  41. linkedapi/operations/retrieve_performance.py +15 -0
  42. linkedapi/operations/retrieve_ssi.py +15 -0
  43. linkedapi/operations/search_companies.py +15 -0
  44. linkedapi/operations/search_people.py +15 -0
  45. linkedapi/operations/send_connection_request.py +12 -0
  46. linkedapi/operations/send_message.py +12 -0
  47. linkedapi/operations/sync_conversation.py +12 -0
  48. linkedapi/operations/withdraw_connection_request.py +12 -0
  49. linkedapi/py.typed +1 -0
  50. linkedapi/types/__init__.py +336 -0
  51. linkedapi/types/account.py +8 -0
  52. linkedapi/types/admin/__init__.py +91 -0
  53. linkedapi/types/admin/accounts.py +71 -0
  54. linkedapi/types/admin/config.py +8 -0
  55. linkedapi/types/admin/limits.py +77 -0
  56. linkedapi/types/admin/subscription.py +58 -0
  57. linkedapi/types/base.py +47 -0
  58. linkedapi/types/company.py +140 -0
  59. linkedapi/types/connection.py +86 -0
  60. linkedapi/types/message.py +48 -0
  61. linkedapi/types/params.py +15 -0
  62. linkedapi/types/person.py +105 -0
  63. linkedapi/types/post.py +119 -0
  64. linkedapi/types/responses.py +18 -0
  65. linkedapi/types/search_companies.py +72 -0
  66. linkedapi/types/search_people.py +46 -0
  67. linkedapi/types/statistics.py +27 -0
  68. linkedapi/types/workflow.py +55 -0
  69. linkedapi-1.0.0.dist-info/METADATA +125 -0
  70. linkedapi-1.0.0.dist-info/RECORD +72 -0
  71. linkedapi-1.0.0.dist-info/WHEEL +4 -0
  72. linkedapi-1.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,15 @@
1
+ from __future__ import annotations
2
+
3
+ from linkedapi.core import Operation
4
+ from linkedapi.mappers import ArrayWorkflowMapper
5
+ from linkedapi.types import SearchCompaniesParams, SearchCompanyResult
6
+
7
+
8
+ class SearchCompanies(Operation[SearchCompaniesParams, list[SearchCompanyResult]]):
9
+ """Search companies on standard LinkedIn."""
10
+
11
+ operation_name = "searchCompanies"
12
+ mapper = ArrayWorkflowMapper[SearchCompaniesParams, SearchCompanyResult](
13
+ "st.searchCompanies",
14
+ SearchCompanyResult,
15
+ )
@@ -0,0 +1,15 @@
1
+ from __future__ import annotations
2
+
3
+ from linkedapi.core import Operation
4
+ from linkedapi.mappers import ArrayWorkflowMapper
5
+ from linkedapi.types import SearchPeopleParams, SearchPeopleResult
6
+
7
+
8
+ class SearchPeople(Operation[SearchPeopleParams, list[SearchPeopleResult]]):
9
+ """Search people on standard LinkedIn."""
10
+
11
+ operation_name = "searchPeople"
12
+ mapper = ArrayWorkflowMapper[SearchPeopleParams, SearchPeopleResult](
13
+ "st.searchPeople",
14
+ SearchPeopleResult,
15
+ )
@@ -0,0 +1,12 @@
1
+ from __future__ import annotations
2
+
3
+ from linkedapi.core import Operation
4
+ from linkedapi.mappers import VoidWorkflowMapper
5
+ from linkedapi.types import SendConnectionRequestParams
6
+
7
+
8
+ class SendConnectionRequest(Operation[SendConnectionRequestParams, None]):
9
+ """Send a standard LinkedIn connection request."""
10
+
11
+ operation_name = "sendConnectionRequest"
12
+ mapper = VoidWorkflowMapper[SendConnectionRequestParams]("st.sendConnectionRequest")
@@ -0,0 +1,12 @@
1
+ from __future__ import annotations
2
+
3
+ from linkedapi.core import Operation
4
+ from linkedapi.mappers import VoidWorkflowMapper
5
+ from linkedapi.types import SendMessageParams
6
+
7
+
8
+ class SendMessage(Operation[SendMessageParams, None]):
9
+ """Send a standard LinkedIn message."""
10
+
11
+ operation_name = "sendMessage"
12
+ mapper = VoidWorkflowMapper[SendMessageParams]("st.sendMessage")
@@ -0,0 +1,12 @@
1
+ from __future__ import annotations
2
+
3
+ from linkedapi.core import Operation
4
+ from linkedapi.mappers import VoidWorkflowMapper
5
+ from linkedapi.types import SyncConversationParams
6
+
7
+
8
+ class SyncConversation(Operation[SyncConversationParams, None]):
9
+ """Sync a standard LinkedIn conversation."""
10
+
11
+ operation_name = "syncConversation"
12
+ mapper = VoidWorkflowMapper[SyncConversationParams]("st.syncConversation")
@@ -0,0 +1,12 @@
1
+ from __future__ import annotations
2
+
3
+ from linkedapi.core import Operation
4
+ from linkedapi.mappers import VoidWorkflowMapper
5
+ from linkedapi.types import WithdrawConnectionRequestParams
6
+
7
+
8
+ class WithdrawConnectionRequest(Operation[WithdrawConnectionRequestParams, None]):
9
+ """Withdraw a pending standard LinkedIn connection request."""
10
+
11
+ operation_name = "withdrawConnectionRequest"
12
+ mapper = VoidWorkflowMapper[WithdrawConnectionRequestParams]("st.withdrawConnectionRequest")
linkedapi/py.typed ADDED
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,336 @@
1
+ from linkedapi.types.account import AccountInfo
2
+ from linkedapi.types.admin import (
3
+ AccountsResult,
4
+ AdminAccount,
5
+ AdminAccountStatus,
6
+ AdminConfig,
7
+ BillingLinkResult,
8
+ BillingPeriod,
9
+ CancelConnectionSessionParams,
10
+ CancelResult,
11
+ ConnectionSession,
12
+ ConnectionSessionResult,
13
+ ConnectionSessionStatus,
14
+ CreateConnectionSessionResult,
15
+ Currency,
16
+ DeleteLimitEntry,
17
+ DeleteLimitsParams,
18
+ DisconnectParams,
19
+ GetConnectionSessionParams,
20
+ GetLimitsParams,
21
+ GetLimitsUsageParams,
22
+ Limit,
23
+ LimitCategory,
24
+ LimitPeriod,
25
+ LimitsResult,
26
+ LimitUsage,
27
+ LimitUsageResult,
28
+ PendingConnectionSession,
29
+ RegenerateTokenParams,
30
+ RegenerateTokenResult,
31
+ ResetLimitsParams,
32
+ SeatType,
33
+ SetLimitEntry,
34
+ SetLimitsParams,
35
+ SetSeatsParams,
36
+ SetSeatsResult,
37
+ SetSeatsStatus,
38
+ SubscriptionPricingResult,
39
+ SubscriptionProduct,
40
+ SubscriptionSeat,
41
+ SubscriptionSeatsResult,
42
+ SubscriptionStatus,
43
+ SubscriptionStatusValue,
44
+ )
45
+ from linkedapi.types.base import (
46
+ LinkedApiModel,
47
+ dump_model_by_name,
48
+ serialize_model,
49
+ serialize_value,
50
+ )
51
+ from linkedapi.types.company import (
52
+ BaseFetchCompanyParams,
53
+ BaseFetchCompanyParamsWide,
54
+ Company,
55
+ FetchCompanyParams,
56
+ FetchCompanyResult,
57
+ NvBaseFetchCompanyParams,
58
+ NvBaseFetchCompanyParamsWide,
59
+ NvCompany,
60
+ NvCompanyDm,
61
+ NvCompanyEmployee,
62
+ NvCompanyEmployeeFilter,
63
+ NvCompanyEmployeeRetrievalConfig,
64
+ NvFetchCompanyParams,
65
+ NvFetchCompanyResult,
66
+ StCompanyDm,
67
+ StCompanyEmployee,
68
+ StCompanyEmployeesFilter,
69
+ StCompanyEmployeesRetrievalConfig,
70
+ )
71
+ from linkedapi.types.connection import (
72
+ CheckConnectionStatusParams,
73
+ CheckConnectionStatusResult,
74
+ ConnectionPerson,
75
+ ConnectionStatus,
76
+ NvOpenPersonPageParams,
77
+ NvOpenPersonPageResult,
78
+ RemoveConnectionParams,
79
+ RetrieveConnectionsFilter,
80
+ RetrieveConnectionsParams,
81
+ RetrieveConnectionsResult,
82
+ RetrievePendingRequestsResult,
83
+ SendConnectionRequestParams,
84
+ WithdrawConnectionRequestParams,
85
+ )
86
+ from linkedapi.types.message import (
87
+ ConversationPollRequest,
88
+ ConversationPollResult,
89
+ ConversationType,
90
+ Message,
91
+ MessageSender,
92
+ NvSendMessageParams,
93
+ NvSyncConversationParams,
94
+ SendMessageParams,
95
+ SyncConversationParams,
96
+ )
97
+ from linkedapi.types.params import BaseActionParams, LimitParams, LimitSinceParams
98
+ from linkedapi.types.person import (
99
+ BaseFetchPersonParams,
100
+ BaseFetchPersonParamsWide,
101
+ EmploymentType,
102
+ FetchPersonParams,
103
+ FetchPersonResult,
104
+ LanguageProficiency,
105
+ LocationType,
106
+ Person,
107
+ PersonEducation,
108
+ PersonExperience,
109
+ PersonLanguage,
110
+ PersonSkill,
111
+ YearsOfExperience,
112
+ )
113
+ from linkedapi.types.post import (
114
+ AttachmentType,
115
+ BaseFetchPostParams,
116
+ BaseFetchPostParamsWide,
117
+ Comment,
118
+ CommentOnPostParams,
119
+ CreatePostAttachment,
120
+ CreatePostParams,
121
+ CreatePostResult,
122
+ FetchPostParams,
123
+ FetchPostResult,
124
+ Post,
125
+ PostComment,
126
+ PostCommenterType,
127
+ PostCommentsRetrievalConfig,
128
+ PostCommentsSort,
129
+ PostEngagerType,
130
+ PostReaction,
131
+ PostReactionsRetrievalConfig,
132
+ PostType,
133
+ Reaction,
134
+ ReactionType,
135
+ ReactToPostParams,
136
+ )
137
+ from linkedapi.types.responses import LinkedApiRequestError, LinkedApiResponse
138
+ from linkedapi.types.search_companies import (
139
+ AnnualRevenueFilter,
140
+ MaxAnnualRevenue,
141
+ MinAnnualRevenue,
142
+ NvSearchCompaniesFilter,
143
+ NvSearchCompaniesParams,
144
+ NvSearchCompanyResult,
145
+ SearchCompaniesFilter,
146
+ SearchCompaniesParams,
147
+ SearchCompanyResult,
148
+ SearchCompanySize,
149
+ )
150
+ from linkedapi.types.search_people import (
151
+ NvSearchPeopleFilter,
152
+ NvSearchPeopleParams,
153
+ NvSearchPeopleResult,
154
+ SearchPeopleFilter,
155
+ SearchPeopleParams,
156
+ SearchPeopleResult,
157
+ )
158
+ from linkedapi.types.statistics import (
159
+ ApiUsageAction,
160
+ ApiUsageParams,
161
+ RetrievePerformanceResult,
162
+ RetrieveSSIResult,
163
+ )
164
+ from linkedapi.types.workflow import (
165
+ LinkedApiActionError,
166
+ WorkflowCancelResponse,
167
+ WorkflowCompletion,
168
+ WorkflowCompletionSingleAction,
169
+ WorkflowDefinition,
170
+ WorkflowFailure,
171
+ WorkflowInProgressResponse,
172
+ WorkflowInProgressStatus,
173
+ WorkflowResponse,
174
+ WorkflowStartedResponse,
175
+ WorkflowStatus,
176
+ )
177
+
178
+ __all__ = [
179
+ "AccountInfo",
180
+ "AccountsResult",
181
+ "AdminAccount",
182
+ "AdminAccountStatus",
183
+ "AdminConfig",
184
+ "AnnualRevenueFilter",
185
+ "ApiUsageAction",
186
+ "ApiUsageParams",
187
+ "AttachmentType",
188
+ "BaseActionParams",
189
+ "BaseFetchCompanyParams",
190
+ "BaseFetchCompanyParamsWide",
191
+ "BaseFetchPersonParams",
192
+ "BaseFetchPersonParamsWide",
193
+ "BaseFetchPostParams",
194
+ "BaseFetchPostParamsWide",
195
+ "BillingLinkResult",
196
+ "BillingPeriod",
197
+ "CancelConnectionSessionParams",
198
+ "CancelResult",
199
+ "CheckConnectionStatusParams",
200
+ "CheckConnectionStatusResult",
201
+ "Comment",
202
+ "CommentOnPostParams",
203
+ "Company",
204
+ "ConnectionPerson",
205
+ "ConnectionSession",
206
+ "ConnectionSessionResult",
207
+ "ConnectionSessionStatus",
208
+ "ConnectionStatus",
209
+ "ConversationPollRequest",
210
+ "ConversationPollResult",
211
+ "ConversationType",
212
+ "CreateConnectionSessionResult",
213
+ "CreatePostAttachment",
214
+ "CreatePostParams",
215
+ "CreatePostResult",
216
+ "Currency",
217
+ "DeleteLimitEntry",
218
+ "DeleteLimitsParams",
219
+ "DisconnectParams",
220
+ "EmploymentType",
221
+ "FetchCompanyParams",
222
+ "FetchCompanyResult",
223
+ "FetchPersonParams",
224
+ "FetchPersonResult",
225
+ "FetchPostParams",
226
+ "FetchPostResult",
227
+ "GetConnectionSessionParams",
228
+ "GetLimitsParams",
229
+ "GetLimitsUsageParams",
230
+ "LanguageProficiency",
231
+ "Limit",
232
+ "LimitCategory",
233
+ "LimitParams",
234
+ "LimitPeriod",
235
+ "LimitSinceParams",
236
+ "LimitUsage",
237
+ "LimitUsageResult",
238
+ "LimitsResult",
239
+ "LinkedApiActionError",
240
+ "LinkedApiModel",
241
+ "LinkedApiRequestError",
242
+ "LinkedApiResponse",
243
+ "LocationType",
244
+ "MaxAnnualRevenue",
245
+ "Message",
246
+ "MessageSender",
247
+ "MinAnnualRevenue",
248
+ "NvBaseFetchCompanyParams",
249
+ "NvBaseFetchCompanyParamsWide",
250
+ "NvCompany",
251
+ "NvCompanyDm",
252
+ "NvCompanyEmployee",
253
+ "NvCompanyEmployeeFilter",
254
+ "NvCompanyEmployeeRetrievalConfig",
255
+ "NvFetchCompanyParams",
256
+ "NvFetchCompanyResult",
257
+ "NvOpenPersonPageParams",
258
+ "NvOpenPersonPageResult",
259
+ "NvSearchCompaniesFilter",
260
+ "NvSearchCompaniesParams",
261
+ "NvSearchCompanyResult",
262
+ "NvSearchPeopleFilter",
263
+ "NvSearchPeopleParams",
264
+ "NvSearchPeopleResult",
265
+ "NvSendMessageParams",
266
+ "NvSyncConversationParams",
267
+ "PendingConnectionSession",
268
+ "Person",
269
+ "PersonEducation",
270
+ "PersonExperience",
271
+ "PersonLanguage",
272
+ "PersonSkill",
273
+ "Post",
274
+ "PostComment",
275
+ "PostCommenterType",
276
+ "PostCommentsRetrievalConfig",
277
+ "PostCommentsSort",
278
+ "PostEngagerType",
279
+ "PostReaction",
280
+ "PostReactionsRetrievalConfig",
281
+ "PostType",
282
+ "ReactToPostParams",
283
+ "Reaction",
284
+ "ReactionType",
285
+ "RegenerateTokenParams",
286
+ "RegenerateTokenResult",
287
+ "RemoveConnectionParams",
288
+ "ResetLimitsParams",
289
+ "RetrieveConnectionsFilter",
290
+ "RetrieveConnectionsParams",
291
+ "RetrieveConnectionsResult",
292
+ "RetrievePendingRequestsResult",
293
+ "RetrievePerformanceResult",
294
+ "RetrieveSSIResult",
295
+ "SearchCompaniesFilter",
296
+ "SearchCompaniesParams",
297
+ "SearchCompanyResult",
298
+ "SearchCompanySize",
299
+ "SearchPeopleFilter",
300
+ "SearchPeopleParams",
301
+ "SearchPeopleResult",
302
+ "SeatType",
303
+ "SendConnectionRequestParams",
304
+ "SendMessageParams",
305
+ "SetLimitEntry",
306
+ "SetLimitsParams",
307
+ "SetSeatsParams",
308
+ "SetSeatsResult",
309
+ "SetSeatsStatus",
310
+ "StCompanyDm",
311
+ "StCompanyEmployee",
312
+ "StCompanyEmployeesFilter",
313
+ "StCompanyEmployeesRetrievalConfig",
314
+ "SubscriptionPricingResult",
315
+ "SubscriptionProduct",
316
+ "SubscriptionSeat",
317
+ "SubscriptionSeatsResult",
318
+ "SubscriptionStatus",
319
+ "SubscriptionStatusValue",
320
+ "SyncConversationParams",
321
+ "WithdrawConnectionRequestParams",
322
+ "WorkflowCancelResponse",
323
+ "WorkflowCompletion",
324
+ "WorkflowCompletionSingleAction",
325
+ "WorkflowDefinition",
326
+ "WorkflowFailure",
327
+ "WorkflowInProgressResponse",
328
+ "WorkflowInProgressStatus",
329
+ "WorkflowResponse",
330
+ "WorkflowStartedResponse",
331
+ "WorkflowStatus",
332
+ "YearsOfExperience",
333
+ "dump_model_by_name",
334
+ "serialize_model",
335
+ "serialize_value",
336
+ ]
@@ -0,0 +1,8 @@
1
+ from __future__ import annotations
2
+
3
+ from linkedapi.types.base import LinkedApiModel
4
+
5
+
6
+ class AccountInfo(LinkedApiModel):
7
+ name: str | None = None
8
+ url: str | None = None
@@ -0,0 +1,91 @@
1
+ from linkedapi.types.admin.accounts import (
2
+ AccountsResult,
3
+ AdminAccount,
4
+ AdminAccountStatus,
5
+ CancelConnectionSessionParams,
6
+ ConnectionSession,
7
+ ConnectionSessionResult,
8
+ ConnectionSessionStatus,
9
+ CreateConnectionSessionResult,
10
+ DisconnectParams,
11
+ GetConnectionSessionParams,
12
+ PendingConnectionSession,
13
+ RegenerateTokenParams,
14
+ RegenerateTokenResult,
15
+ )
16
+ from linkedapi.types.admin.config import AdminConfig
17
+ from linkedapi.types.admin.limits import (
18
+ DeleteLimitEntry,
19
+ DeleteLimitsParams,
20
+ GetLimitsParams,
21
+ GetLimitsUsageParams,
22
+ Limit,
23
+ LimitCategory,
24
+ LimitPeriod,
25
+ LimitsResult,
26
+ LimitUsage,
27
+ LimitUsageResult,
28
+ ResetLimitsParams,
29
+ SetLimitEntry,
30
+ SetLimitsParams,
31
+ )
32
+ from linkedapi.types.admin.subscription import (
33
+ BillingLinkResult,
34
+ BillingPeriod,
35
+ CancelResult,
36
+ Currency,
37
+ SeatType,
38
+ SetSeatsParams,
39
+ SetSeatsResult,
40
+ SetSeatsStatus,
41
+ SubscriptionPricingResult,
42
+ SubscriptionProduct,
43
+ SubscriptionSeat,
44
+ SubscriptionSeatsResult,
45
+ SubscriptionStatus,
46
+ SubscriptionStatusValue,
47
+ )
48
+
49
+ __all__ = [
50
+ "AccountsResult",
51
+ "AdminAccount",
52
+ "AdminAccountStatus",
53
+ "AdminConfig",
54
+ "BillingLinkResult",
55
+ "BillingPeriod",
56
+ "CancelConnectionSessionParams",
57
+ "CancelResult",
58
+ "ConnectionSession",
59
+ "ConnectionSessionResult",
60
+ "ConnectionSessionStatus",
61
+ "CreateConnectionSessionResult",
62
+ "Currency",
63
+ "DeleteLimitEntry",
64
+ "DeleteLimitsParams",
65
+ "DisconnectParams",
66
+ "GetConnectionSessionParams",
67
+ "GetLimitsParams",
68
+ "GetLimitsUsageParams",
69
+ "Limit",
70
+ "LimitCategory",
71
+ "LimitPeriod",
72
+ "LimitUsage",
73
+ "LimitUsageResult",
74
+ "LimitsResult",
75
+ "PendingConnectionSession",
76
+ "RegenerateTokenParams",
77
+ "RegenerateTokenResult",
78
+ "ResetLimitsParams",
79
+ "SeatType",
80
+ "SetLimitEntry",
81
+ "SetLimitsParams",
82
+ "SetSeatsParams",
83
+ "SetSeatsResult",
84
+ "SetSeatsStatus",
85
+ "SubscriptionPricingResult",
86
+ "SubscriptionProduct",
87
+ "SubscriptionSeat",
88
+ "SubscriptionSeatsResult",
89
+ "SubscriptionStatus",
90
+ "SubscriptionStatusValue",
91
+ ]
@@ -0,0 +1,71 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Literal
4
+
5
+ from linkedapi.types.base import LinkedApiModel
6
+
7
+ AdminAccountStatus = Literal["active", "frozen", "reconnection_required"]
8
+ ConnectionSessionStatus = Literal[
9
+ "pending",
10
+ "preparing",
11
+ "serving",
12
+ "streaming",
13
+ "success",
14
+ "expired",
15
+ "error",
16
+ "cancelled",
17
+ ]
18
+
19
+
20
+ class AdminAccount(LinkedApiModel):
21
+ id: str | None = None
22
+ name: str | None = None
23
+ country_code: str | None = None
24
+ identification_token: str | None = None
25
+ status: AdminAccountStatus | None = None
26
+ connected_at: str | None = None
27
+
28
+
29
+ class PendingConnectionSession(LinkedApiModel):
30
+ session_id: str | None = None
31
+ status: str | None = None
32
+
33
+
34
+ class AccountsResult(LinkedApiModel):
35
+ accounts: list[AdminAccount] | None = None
36
+ pending_connection_sessions: list[PendingConnectionSession] | None = None
37
+
38
+
39
+ class DisconnectParams(LinkedApiModel):
40
+ account_id: str
41
+
42
+
43
+ class RegenerateTokenParams(LinkedApiModel):
44
+ account_id: str
45
+
46
+
47
+ class RegenerateTokenResult(LinkedApiModel):
48
+ token: str | None = None
49
+
50
+
51
+ class CreateConnectionSessionResult(LinkedApiModel):
52
+ session_id: str | None = None
53
+ connection_link: str | None = None
54
+
55
+
56
+ class GetConnectionSessionParams(LinkedApiModel):
57
+ session_id: str
58
+
59
+
60
+ class ConnectionSession(LinkedApiModel):
61
+ session_id: str | None = None
62
+ status: ConnectionSessionStatus | None = None
63
+ type: str | None = None
64
+
65
+
66
+ class ConnectionSessionResult(LinkedApiModel):
67
+ session: ConnectionSession | None = None
68
+
69
+
70
+ class CancelConnectionSessionParams(LinkedApiModel):
71
+ session_id: str
@@ -0,0 +1,8 @@
1
+ from __future__ import annotations
2
+
3
+ from linkedapi.types.base import LinkedApiModel
4
+
5
+
6
+ class AdminConfig(LinkedApiModel):
7
+ linked_api_token: str
8
+ client: str = "python"
@@ -0,0 +1,77 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import Literal
4
+
5
+ from linkedapi.types.base import LinkedApiModel
6
+
7
+ LimitCategory = Literal[
8
+ "stPersonProfileViews",
9
+ "stCompanyPageViews",
10
+ "stConnectionRequests",
11
+ "stMessages",
12
+ "stSearchQueries",
13
+ "stReactions",
14
+ "stComments",
15
+ "stPosts",
16
+ "nvPersonProfileViews",
17
+ "nvCompanyPageViews",
18
+ "nvMessages",
19
+ ]
20
+ LimitPeriod = Literal["daily", "weekly", "monthly"]
21
+
22
+
23
+ class Limit(LinkedApiModel):
24
+ category: LimitCategory | None = None
25
+ period: LimitPeriod | None = None
26
+ max_value: int | None = None
27
+ is_enabled: bool | None = None
28
+
29
+
30
+ class LimitUsage(LinkedApiModel):
31
+ category: LimitCategory | None = None
32
+ period: LimitPeriod | None = None
33
+ max_value: int | None = None
34
+ current_usage: int | None = None
35
+ is_enabled: bool | None = None
36
+
37
+
38
+ class GetLimitsParams(LinkedApiModel):
39
+ account_id: str
40
+
41
+
42
+ class GetLimitsUsageParams(LinkedApiModel):
43
+ account_id: str
44
+
45
+
46
+ class SetLimitEntry(LinkedApiModel):
47
+ category: LimitCategory
48
+ period: LimitPeriod
49
+ max_value: int
50
+ is_enabled: bool | None = None
51
+
52
+
53
+ class SetLimitsParams(LinkedApiModel):
54
+ account_id: str
55
+ limits: list[SetLimitEntry]
56
+
57
+
58
+ class DeleteLimitEntry(LinkedApiModel):
59
+ category: LimitCategory
60
+ period: LimitPeriod
61
+
62
+
63
+ class DeleteLimitsParams(LinkedApiModel):
64
+ account_id: str
65
+ limits: list[DeleteLimitEntry]
66
+
67
+
68
+ class ResetLimitsParams(LinkedApiModel):
69
+ account_id: str
70
+
71
+
72
+ class LimitsResult(LinkedApiModel):
73
+ limits: list[Limit] | None = None
74
+
75
+
76
+ class LimitUsageResult(LinkedApiModel):
77
+ usage: list[LimitUsage] | None = None