type maybe = T | null | undefined; // From // https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_describesobjects_describesobjectresult.htm export interface DescribeSObjectResult { activateable: boolean; actionOverrides?: maybe | undefined; childRelationships: ChildRelationship[]; compactLayoutable: boolean; createable: boolean; custom: boolean; customSetting: boolean; deletable: boolean; deprecatedAndHidden: boolean; feedEnabled: boolean; fields: Field[]; keyPrefix?: maybe | undefined; label: string; labelPlural: string; layoutable: boolean; listviewable?: maybe | undefined; lookupLayoutable?: maybe | undefined; mergeable: boolean; mruEnabled: boolean; name: string; namedLayoutInfos: NamedLayoutInfo[]; networkScopeFieldName?: maybe | undefined; queryable: boolean; recordTypeInfos: RecordTypeInfo[]; replicateable: boolean; retrieveable: boolean; searchable: boolean; searchLayoutable: boolean; supportedScopes: ScopeInfo[]; triggerable: boolean; undeletable: boolean; updateable: boolean; urlDetail?: string | undefined; urlEdit?: string | undefined; urlNew?: string | undefined; urls: Record; } export interface ActionOverride { formFactor: string; isAvailableInTouch: boolean; name: string; pageId: string; url?: maybe | undefined; } export interface ChildRelationship { cascadeDelete: boolean; childSObject: string; deprecatedAndHidden: boolean; field: string; junctionIdListNames: string[]; junctionReferenceTo: string[]; relationshipName?: maybe | undefined; restrictedDelete: boolean; } export interface Field { aggregatable: boolean; // Not in documentation, but exists in data aiPredictionField?: maybe | undefined; // Salesforce documentation is wrong, they show `autonumber` but true data returned is `autoNumber` autoNumber: boolean; byteLength: number; calculated: boolean; calculatedFormula?: maybe | undefined; cascadeDelete: boolean; caseSensitive: boolean; compoundFieldName?: maybe | undefined; controllerName?: maybe | undefined; createable: boolean; custom: boolean; defaultValue?: maybe | undefined; defaultValueFormula?: maybe | undefined; defaultedOnCreate: boolean; dependentPicklist: boolean; deprecatedAndHidden: boolean; digits?: maybe | undefined; displayLocationInDecimal?: maybe | undefined; encrypted?: maybe | undefined; externalId: boolean; extraTypeInfo?: maybe | undefined; filterable: boolean; filteredLookupInfo?: maybe | undefined; // Salesforce documentation is wrong, this field does not exist, calculatedFormula is correct formula?: maybe | undefined; // Not in documentation, but exists in data formulaTreatNullNumberAsZero?: maybe | undefined; groupable: boolean; highScaleNumber?: maybe | undefined; htmlFormatted: boolean; idLookup: boolean; inlineHelpText?: maybe | undefined; label: string; length: number; mask?: maybe | undefined; maskType?: maybe | undefined; name: string; nameField: boolean; namePointing: boolean; nillable: boolean; permissionable: boolean; picklistValues?: maybe | undefined; polymorphicForeignKey: boolean; precision?: maybe | undefined; queryByDistance: boolean; referenceTargetField?: maybe | undefined; referenceTo?: maybe | undefined; relationshipName?: maybe | undefined; relationshipOrder?: maybe | undefined; restrictedDelete?: maybe | undefined; restrictedPicklist: boolean; scale: number; searchPrefilterable: boolean; soapType: SOAPType; sortable: boolean; type: FieldType; unique: boolean; updateable: boolean; writeRequiresMasterRead?: maybe | undefined; } export type ExtraTypeInfo = | 'imageurl' | 'personname' | 'plaintextarea' | 'richtextarea' | 'switchablepersonname' | 'externallookup' | 'indirectlookup'; export type FieldType = | 'string' | 'boolean' | 'int' | 'double' | 'date' | 'datetime' | 'base64' | 'id' | 'reference' | 'currency' | 'textarea' | 'percent' | 'phone' | 'url' | 'email' | 'combobox' | 'picklist' | 'multipicklist' | 'anyType' | 'location' // the following are not found in official documentation, but still occur when describing an sobject | 'time' | 'encryptedstring' | 'address' | 'complexvalue'; export interface FilteredLookupInfo { controllingFields: string[]; dependent: boolean; optionalFilter: boolean; } export type SOAPType = | 'tns:ID' | 'xsd:anyType' | 'xsd:base64Binary' | 'xsd:boolean' | 'xsd:date' | 'xsd:dateTime' | 'xsd:double' | 'xsd:int' | 'xsd:string' // the following are not found in official documentation, but still occur when describing an sobject | 'xsd:time' | 'urn:address' | 'urn:JunctionIdListNames' | 'urn:location' | 'urn:RecordTypesSupported' | 'urn:RelationshipReferenceTo' | 'urn:SearchLayoutButtonsDisplayed' | 'urn:SearchLayoutFieldsDisplayed'; export interface PicklistEntry { active: boolean; validFor?: maybe | undefined; defaultValue: boolean; label?: maybe | undefined; value: string; } export interface RecordTypeInfo { available: boolean; defaultRecordTypeMapping: boolean; developerName?: maybe | undefined; master: boolean; name: string; recordTypeId: string; urls: Record; } export interface NamedLayoutInfo { name: string; urls: Record; } export interface ScopeInfo { label: string; name: string; } // From // https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_describeglobal_describeglobalresult.htm#! export interface DescribeGlobalSObjectResult { activateable: boolean; createable: boolean; custom: boolean; customSetting: boolean; deletable: boolean; deprecatedAndHidden: boolean; feedEnabled: boolean; hasSubtypes: boolean; isSubtype: boolean; keyPrefix: string | null; label: string; labelPlural: string; layoutable: boolean; mergeable: boolean; mruEnabled: boolean; name: string; queryable: boolean; replicateable: boolean; retrieveable: boolean; searchable: boolean; triggerable: boolean; undeletable: boolean; updateable: boolean; urls: Record; } export interface DescribeSObjectOptions { type: string; ifModifiedSince?: string | undefined; } export interface BatchDescribeSObjectOptions { types: string[]; autofetch?: boolean | undefined; maxConcurrentRequests?: number | undefined; } export interface DescribeGlobalResult { encoding: string; maxBatchSize: number; sobjects: DescribeGlobalSObjectResult[]; }