aio-sf 0.1.0b1__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.
@@ -0,0 +1,303 @@
1
+ """
2
+ TypedDict definitions for Salesforce API responses.
3
+ """
4
+
5
+ from typing import Any, Dict, List, Optional, TypedDict, Union
6
+
7
+
8
+ class SalesforceAttributes(TypedDict):
9
+ """Standard Salesforce record attributes."""
10
+
11
+ type: str
12
+ url: str
13
+
14
+
15
+ class OrganizationInfo(TypedDict):
16
+ """Organization information from SOQL query."""
17
+
18
+ attributes: SalesforceAttributes
19
+ Id: str
20
+ Name: str
21
+ OrganizationType: str
22
+ InstanceName: str
23
+ IsSandbox: bool
24
+
25
+
26
+ class LimitInfo(TypedDict):
27
+ """Individual limit information."""
28
+
29
+ Max: int
30
+ Remaining: int
31
+
32
+
33
+ class OrganizationLimits(TypedDict, total=False):
34
+ """Organization limits - using total=False since keys vary by org."""
35
+
36
+ # API Limits
37
+ DailyApiRequests: LimitInfo
38
+ DailyBulkApiBatches: LimitInfo
39
+ DailyBulkV2QueryJobs: LimitInfo
40
+ DailyStreamingApiEvents: LimitInfo
41
+
42
+ # Storage Limits
43
+ DataStorageMB: LimitInfo
44
+ FileStorageMB: LimitInfo
45
+
46
+ # Email Limits
47
+ DailyWorkflowEmails: LimitInfo
48
+ MassEmail: LimitInfo
49
+ SingleEmail: LimitInfo
50
+
51
+ # Other common limits - there are many more, but these are the most common
52
+ # Using Any for the rest since there are 60+ different limit types
53
+ # and they vary by org type and features
54
+
55
+
56
+ class SObjectUrls(TypedDict):
57
+ """URLs for various SObject operations."""
58
+
59
+ sobject: str
60
+ describe: str
61
+ rowTemplate: str
62
+
63
+
64
+ class SObjectInfo(TypedDict):
65
+ """Basic SObject information from list_sobjects."""
66
+
67
+ activateable: bool
68
+ associateEntityType: Optional[str]
69
+ associateParentEntity: Optional[str]
70
+ createable: bool
71
+ custom: bool
72
+ customSetting: bool
73
+ deepCloneable: bool
74
+ deletable: bool
75
+ deprecatedAndHidden: bool
76
+ feedEnabled: bool
77
+ hasSubtypes: bool
78
+ isInterface: bool
79
+ isSubtype: bool
80
+ keyPrefix: Optional[str]
81
+ label: str
82
+ labelPlural: str
83
+ layoutable: bool
84
+ mergeable: bool
85
+ mruEnabled: bool
86
+ name: str
87
+ queryable: bool
88
+ replicateable: bool
89
+ retrieveable: bool
90
+ searchable: bool
91
+ triggerable: bool
92
+ undeletable: bool
93
+ updateable: bool
94
+ urls: SObjectUrls
95
+
96
+
97
+ class ActionOverride(TypedDict):
98
+ """Action override information."""
99
+
100
+ formFactor: str
101
+ isAvailableInTouch: bool
102
+ name: str
103
+ pageId: Optional[str]
104
+ url: Optional[str]
105
+
106
+
107
+ class ChildRelationship(TypedDict):
108
+ """Child relationship information."""
109
+
110
+ cascadeDelete: bool
111
+ childSObject: str
112
+ deprecatedAndHidden: bool
113
+ field: str
114
+ junctionIdListNames: List[str]
115
+ junctionReferenceTo: List[str]
116
+ relationshipName: Optional[str]
117
+ restrictedDelete: bool
118
+
119
+
120
+ class PicklistValue(TypedDict):
121
+ """Picklist value information."""
122
+
123
+ active: bool
124
+ defaultValue: bool
125
+ label: str
126
+ validFor: Optional[str]
127
+ value: str
128
+
129
+
130
+ class FilteredLookupInfo(TypedDict):
131
+ """Filtered lookup information."""
132
+
133
+ controllingFields: List[str]
134
+ dependent: bool
135
+ optionalFilter: bool
136
+
137
+
138
+ class RecordTypeInfo(TypedDict):
139
+ """Record type information."""
140
+
141
+ available: bool
142
+ defaultRecordTypeMapping: bool
143
+ developerName: str
144
+ master: bool
145
+ name: str
146
+ recordTypeId: str
147
+ urls: Dict[str, str]
148
+
149
+
150
+ class NamedLayoutInfo(TypedDict):
151
+ """Named layout information."""
152
+
153
+ name: str
154
+ urls: Dict[str, str]
155
+
156
+
157
+ class ScopeInfo(TypedDict):
158
+ """Scope information."""
159
+
160
+ label: str
161
+ name: str
162
+
163
+
164
+ class FieldInfo(TypedDict, total=False):
165
+ """Field information from describe_sobject - using total=False due to many optional fields."""
166
+
167
+ # Core field properties (always present)
168
+ name: str
169
+ type: str
170
+ label: str
171
+
172
+ # Common properties (usually present)
173
+ length: int
174
+ nillable: bool
175
+ createable: bool
176
+ updateable: bool
177
+ custom: bool
178
+
179
+ # Boolean flags
180
+ aggregatable: bool
181
+ aiPredictionField: bool
182
+ autoNumber: bool
183
+ calculated: bool
184
+ caseSensitive: bool
185
+ dependentPicklist: bool
186
+ deprecatedAndHidden: bool
187
+ encrypted: bool
188
+ externalId: bool
189
+ filterable: bool
190
+ formulaTreatNullNumberAsZero: bool
191
+ groupable: bool
192
+ highScaleNumber: bool
193
+ htmlFormatted: bool
194
+ idLookup: bool
195
+ nameField: bool
196
+ namePointing: bool
197
+ permissionable: bool
198
+ polymorphicForeignKey: bool
199
+ queryByDistance: bool
200
+ restrictedPicklist: bool
201
+ searchPrefilterable: bool
202
+ sortable: bool
203
+ unique: bool
204
+ writeRequiresMasterRead: bool
205
+
206
+ # Numeric properties
207
+ byteLength: int
208
+ digits: int
209
+ precision: int
210
+ scale: int
211
+
212
+ # String properties
213
+ calculatedFormula: Optional[str]
214
+ compoundFieldName: Optional[str]
215
+ controllerName: Optional[str]
216
+ defaultValue: Optional[str]
217
+ defaultValueFormula: Optional[str]
218
+ extraTypeInfo: Optional[str]
219
+ inlineHelpText: Optional[str]
220
+ mask: Optional[str]
221
+ maskType: Optional[str]
222
+ referenceTargetField: Optional[str]
223
+ relationshipName: Optional[str]
224
+ soapType: str
225
+
226
+ # Boolean properties with defaults
227
+ cascadeDelete: bool
228
+ defaultedOnCreate: bool
229
+ displayLocationInDecimal: bool
230
+ restrictedDelete: bool
231
+
232
+ # Numeric properties
233
+ relationshipOrder: Optional[int]
234
+
235
+ # Array properties
236
+ picklistValues: List[PicklistValue]
237
+ referenceTo: List[str]
238
+
239
+ # Object properties
240
+ filteredLookupInfo: Optional[FilteredLookupInfo]
241
+
242
+
243
+ class SObjectDescribe(TypedDict):
244
+ """Complete SObject describe information."""
245
+
246
+ # Basic properties
247
+ name: str
248
+ label: str
249
+ labelPlural: str
250
+ keyPrefix: Optional[str]
251
+ custom: bool
252
+
253
+ # Capabilities
254
+ activateable: bool
255
+ createable: bool
256
+ deletable: bool
257
+ mergeable: bool
258
+ queryable: bool
259
+ replicateable: bool
260
+ retrieveable: bool
261
+ searchable: bool
262
+ triggerable: bool
263
+ undeletable: bool
264
+ updateable: bool
265
+
266
+ # Layout and UI properties
267
+ compactLayoutable: bool
268
+ feedEnabled: bool
269
+ layoutable: bool
270
+ listviewable: bool
271
+ lookupLayoutable: bool
272
+ mruEnabled: bool
273
+ searchLayoutable: bool
274
+
275
+ # Advanced properties
276
+ customSetting: bool
277
+ deepCloneable: bool
278
+ deprecatedAndHidden: bool
279
+ hasSubtypes: bool
280
+ isInterface: bool
281
+ isSubtype: bool
282
+
283
+ # Optional properties
284
+ associateEntityType: Optional[str]
285
+ associateParentEntity: Optional[str]
286
+ defaultImplementation: Optional[str]
287
+ extendedBy: Optional[str]
288
+ extendsInterfaces: Optional[str]
289
+ implementedBy: Optional[str]
290
+ implementsInterfaces: Optional[str]
291
+ networkScopeFieldName: Optional[str]
292
+ sobjectDescribeOption: Optional[str]
293
+
294
+ # Array properties
295
+ actionOverrides: List[ActionOverride]
296
+ childRelationships: List[ChildRelationship]
297
+ fields: List[FieldInfo]
298
+ namedLayoutInfos: List[NamedLayoutInfo]
299
+ recordTypeInfos: List[RecordTypeInfo]
300
+ supportedScopes: List[ScopeInfo]
301
+
302
+ # URLs
303
+ urls: Dict[str, str]