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[]; }