UNPKG

mcdev

Version:

Accenture Salesforce Marketing Cloud DevTools

1,849 lines 41.3 kB
declare const _default: {}; export default _default; export type BuObject = { /** * installed package client id */ clientId?: string; /** * installed package client secret */ clientSecret?: string; /** * subdomain part of Authentication Base Uri */ tenant?: string; /** * Enterprise ID = MID of the parent BU */ eid?: number; /** * MID of the BU to work with */ mid?: number; /** * name of the BU to interact with */ businessUnit?: string; /** * name of the credential to interact with */ credential?: string; }; export type TemplateMap = { [x: string]: string; }; export type SupportedMetadataTypes = "asset" | "asset-archive" | "asset-asset" | "asset-audio" | "asset-block" | "asset-code" | "asset-document" | "asset-image" | "asset-message" | "asset-other" | "asset-rawimage" | "asset-template" | "asset-textfile" | "asset-video" | "attributeGroup" | "attributeSet" | "automation" | "campaign" | "contentArea" | "dataExtension" | "dataExtensionField" | "dataExtensionTemplate" | "dataExtract" | "dataExtractType" | "discovery" | "deliveryProfile" | "email" | "emailSend" | "event" | "fileLocation" | "fileTransfer" | "filter" | "folder" | "importFile" | "journey" | "list" | "mobileCode" | "mobileKeyword" | "mobileMessage" | "query" | "role" | "script" | "sendClassification" | "senderProfile" | "transactionalEmail" | "transactionalPush" | "transactionalSMS" | "triggeredSend" | "user" | "verification"; /** * object-key=SupportedMetadataTypes, value=array of external keys */ export type TypeKeyCombo = { [x: string]: string[]; }; /** * generic metadata item */ export type MetadataTypeItem = any; /** * key=customer key */ export type MetadataTypeMap = { [x: string]: any; }; /** * key=Supported MetadataType */ export type MultiMetadataTypeMap = { [x: string]: { [x: string]: any; }; }; /** * key=Supported MetadataType */ export type MultiMetadataTypeList = { [x: string]: any[]; }; export type MetadataTypeMapObj = { metadata: MetadataTypeMap; type: string; }; export type MetadataTypeItemObj = { metadata: MetadataTypeItem; type: string; }; /** * key=MID */ export type Cache = { [x: number]: { [x: string]: { [x: string]: any; }; }; }; /** * used during update */ export type MetadataTypeItemDiff = { before: MetadataTypeItem; after: MetadataTypeItem; }; export type CodeExtractItem = { /** * metadata of one item w/o code */ json: MetadataTypeItem; /** * list of code snippets in this item */ codeArr: CodeExtract[]; /** * mostly set to null, otherwise list of subfolders */ subFolder: string[]; }; export type CodeExtract = { /** * mostly set to null, otherwise subfolders path split into elements */ subFolder: string[]; /** * name of file w/o extension */ fileName: string; /** * file extension */ fileExt: string; /** * file content */ content: string; /** * optional for binary files */ encoding?: "base64"; }; export type QueryItem = { /** * name */ name: string; /** * key */ key: string; /** * - */ description: string; /** * Object ID of DE (removed before save) */ targetId?: string; /** * key of target data extension */ targetKey: string; /** * key of target data extension */ r__dataExtension_key: string; /** * e.g. "2020-09-14T01:42:03.017" */ createdDate: string; /** * e.g. "2020-09-14T01:42:03.017" */ modifiedDate: string; /** * defines how the query writes into the target data extension */ targetUpdateTypeName: "Overwrite" | "Update" | "Append"; /** * 0|1|2, mapped to targetUpdateTypeName via this.definition.targetUpdateTypeMapping */ targetUpdateTypeId?: number; /** * Description DE (removed before save) */ targetDescription?: string; /** * looks like this is always set to false */ isFrozen: boolean; /** * contains SQL query with line breaks converted to '\n'. The content is extracted during retrieval and written into a separate *.sql file */ queryText?: string; /** * holds folder ID, replaced with r__folder_Path during retrieve */ categoryId?: string; /** * folder path in which this DE is saved */ r__folder_Path: string; /** * Object ID of query */ queryDefinitionId?: string; }; export type QueryMap = { [x: string]: QueryItem; }; export type ScriptItem = { /** * name */ name: string; /** * key */ key: string; /** * - */ description: string; /** * e.g. "2020-09-14T01:42:03.017" */ createdDate: string; /** * e.g. "2020-09-14T01:42:03.017" */ modifiedDate: string; /** * contains script with line breaks converted to '\n'. The content is extracted during retrieval and written into a separate *.ssjs file */ script?: string; /** * holds folder ID, replaced with r__folder_Path during retrieve */ categoryId?: string; /** * folder path in which this DE is saved */ r__folder_Path: string; }; export type ScriptMap = { [x: string]: ScriptItem; }; export type AssetItem = { [x: string]: any; }; export type AssetMap = { [x: string]: { [x: string]: any; }; }; export type AssetSubType = "archive" | "asset" | "audio" | "block" | "code" | "document" | "image" | "message" | "other" | "rawimage" | "template" | "textfile" | "video"; export type DataExtensionFieldItem = { /** * id */ ObjectID?: string; /** * key in format [DEkey].[FieldName] */ CustomerKey?: string; /** * - */ DataExtension?: { CustomerKey: string; }; /** * name of field */ Name: string; /** * custom attribute that is only used when trying to rename a field from Name to Name_new */ Name_new?: string; /** * empty string for not set */ DefaultValue: string; /** * - */ IsRequired: true | false; /** * opposite of IsRequired */ IsNullable?: true | false; /** * - */ IsPrimaryKey: true | false; /** * 1, 2, 3, ... */ Ordinal: number; /** * can only be set on create */ FieldType: "Text" | "Number" | "Date" | "Boolean" | "Decimal" | "EmailAddress" | "Phone" | "Locale"; /** * field length */ MaxLength: number | string; /** * the number of places after the decimal that the field can hold; example: "0","1", ... */ Scale: string; }; /** * key: name of field, value: DataExtensionFieldItem */ export type DataExtensionFieldMap = { [x: string]: DataExtensionFieldItem; }; export type DataExtensionItem = { /** * key */ CustomerKey: string; /** * name */ Name: string; /** * - */ Description: string; /** * iso format */ CreatedDate?: string; /** * iso format */ ModifiedDate?: string; /** * - */ IsSendable: true | false; /** * - */ IsTestable: true | false; /** * - */ SendableDataExtensionField: { Name: string; }; /** * - */ SendableSubscriberField: { Name: string; }; /** * list of DE fields */ Fields: DataExtensionFieldItem[]; /** * retrieved from associated folder */ r__folder_ContentType: "dataextension" | "salesforcedataextension" | "synchronizeddataextension" | "shared_dataextension" | "shared_salesforcedataextension"; /** * folder path in which this DE is saved */ r__folder_Path: string; /** * holds folder ID, replaced with r__folder_Path during retrieve */ CategoryID?: string; /** * name of optionally associated DE template */ r__dataExtensionTemplate_name?: string; /** * - */ Template?: { CustomerKey?: string; }; /** * empty string or US date + 12:00:00 AM */ RetainUntil: string; /** * YYYY-MM-DD */ c__retainUntil: string; /** * readable name of retention policy */ c__retentionPolicy?: "none" | "allRecordsAndDataextension" | "allRecords" | "individialRecords"; /** * number of days/weeks/months/years before retention kicks in */ DataRetentionPeriodLength?: number; /** * 3:Days, 4:Weeks, 5:Months, 6:Years */ DataRetentionPeriodUnitOfMeasure?: number; /** * 3:Days, 4:Weeks, 5:Months, 6:Years */ c__dataRetentionPeriodUnitOfMeasure?: string; /** * true for retention policy individialRecords */ RowBasedRetention?: boolean; /** * ? */ ResetRetentionPeriodOnImport: boolean; /** * true for retention policy allRecords */ DeleteAtEndOfRetentionPeriod?: boolean; }; export type DataExtensionMap = { [x: string]: DataExtensionItem; }; export type UserDocument = { /** * - */ TYPE: "User" | "Installed Package" | "Inactivated User"; /** * equal to UserID; optional in update/create calls */ ID?: string; /** * equal to ID; required in update/create calls */ UserID: string; /** * user.AccountUserID */ AccountUserID?: number; /** * copy of AccountUserID */ c__AccountUserID: number; /** * user.CustomerKey */ CustomerKey: string; /** * user.Name */ Name: string; /** * user.Email */ Email: string; /** * user.NotificationEmailAddress */ NotificationEmailAddress: string; /** * user.ActiveFlag === true ? '✓' : '-' */ ActiveFlag: boolean; /** * user.IsAPIUser === true ? '✓' : '-' */ IsAPIUser: boolean; /** * user.MustChangePassword === true ? '✓' : '-' */ MustChangePassword: boolean; /** * default MID; BUName after we resolved it */ DefaultBusinessUnit: number; /** * associatedBus */ c__AssociatedBusinessUnits: number[]; /** * (API only) */ Roles?: { Role?: object[]; }; /** * roles */ c__RoleNamesGlobal: string[]; /** * userPermissions */ UserPermissions: string[]; /** * this.timeSinceDate(user.LastSuccessfulLogin) */ LastSuccessfulLogin: string; /** * user.CreatedDate */ CreatedDate: string; /** * user.ModifiedDate */ ModifiedDate: string; /** * - */ Client: { ID?: number; ModifiedBy?: number; }; /** * - */ c__type: "User" | "Installed Package"; /** * (API only) */ IsLocked?: boolean; /** * used to unlock a user that has IsLocked === true */ Unlock?: boolean; /** * copy of IsLocked */ c__IsLocked_readOnly: boolean; /** * name of timezone */ c__TimeZoneName: string; /** * (API only) */ TimeZone?: { Name?: string; ID?: string; }; /** * only used to set the password. cannot be retrieved */ Password?: string; /** * fr-CA, en-US, ... */ c__LocaleCode: "en-US" | "fr-CA" | "fr-FR" | "de-DE" | "it-IT" | "ja-JP" | "pt-BR" | "es-419" | "es-ES"; /** * (API only) */ Locale?: { LocaleCode?: "en-US" | "fr-CA" | "fr-FR" | "de-DE" | "it-IT" | "ja-JP" | "pt-BR" | "es-419" | "es-ES"; }; /** * - */ SsoIdentity?: object; /** * - */ SsoIdentities?: any[] | object; }; export type UserDocumentDiff = { before: UserDocument; after: UserDocument; }; /** * key=customer key */ export type UserDocumentMap = { [x: string]: UserDocument; }; export type UserDocumentDocumentHelper = { /** * docs: user.ActiveFlag === true ? '✓' : '-' */ ActiveFlagDocs: string; /** * docs: user.IsAPIUser === true ? '✓' : '-' */ IsAPIUserDocs: string; /** * docs: user.MustChangePassword === true ? '✓' : '-' */ MustChangePasswordDocs: string; /** * docs: default MID; BUName after we resolved it */ DefaultBusinessUnitDocs: string; /** * docs: list of roles as concatenated string */ RolesDocs: string; /** * docs: list of associated BUs as concatenated string */ AssociatedBusDocs: string; /** * docs: user name who last modified this user */ ModifiedBy: string | number; /** * docs: name of timezone */ TimeZoneName: string; /** * docs: if the user cannot login */ IsLockedDocs: string; }; export type UserDocumentDocument = UserDocument & UserDocumentDocumentHelper; export type AccountUserConfiguration = { /** * wrapper */ Client: { ID: number; }; /** * empty string */ PartnerKey?: string; /** * User ID e.g:717133502 */ ID: number | string; /** * empty string */ ObjectID?: string; /** * 0,1 */ Delete?: number; /** * - */ BusinessUnitAssignmentConfiguration: BusinessUnitAssignmentConfiguration; }; export type BusinessUnitAssignmentConfiguration = { /** * wrapper */ BusinessUnitIds: { BusinessUnitId: number[] | number; }; /** * assign BU if false, remove assignment if true */ IsDelete: boolean; }; export type AutomationActivity = { /** * key of associated activity */ r__key: string; /** * name (not key) of associated activity */ name?: string; /** * used by wait activity if a specific time of day was set */ timeZone?: string; /** * Id of assoicated activity type; see this.definition.activityTypeMapping */ objectTypeId?: number; /** * Object Id of assoicated metadata item */ activityObjectId?: string; /** * order within step; starts with 1 or higher number */ displayOrder?: number; /** * see this.definition.activityTypeMapping */ r__type: string; }; export type AutomationStep = { /** * description */ name: string; /** * equals AutomationStep.name */ annotation?: string; /** * step iterator; starts with 1 */ step?: number; /** * step iterator, automatically set during deployment */ stepNumber?: number; /** * - */ activities: AutomationActivity[]; }; /** * REST format */ export type AutomationSchedule = { /** * legacy id of schedule */ id: string; /** * equals schedule.scheduleTypeId; upsert endpoint requires scheduleTypeId. retrieve endpoint returns typeId */ typeId: number; /** * equals schedule.typeId; upsert endpoint requires scheduleTypeId. retrieve endpoint returns typeId */ scheduleTypeId?: number; /** * example: '2021-05-07T09:00:00' */ startDate: string; /** * example: '2021-05-07T09:00:00' */ endDate: string; /** * example: 'FREQ=DAILY;UNTIL=20790606T160000;INTERVAL=1' */ icalRecur: string; /** * same as icalRecur but returned by legacy-API; example: 'FREQ=DAILY;UNTIL=20790606T160000;INTERVAL=1' */ iCalRecur?: string; /** * example: 'W. Europe Standard Time'; see this.definition.timeZoneMapping */ timezoneName: string; /** * same as timezoneName but returned by legacy-API; example: 'W. Europe Standard Time'; see this.definition.timeZoneMapping */ timeZone?: string; /** * kept in legacy API only, exact description of what this schedule does */ description?: string; /** * see this.definition.timeZoneMapping */ timezoneId?: number; /** * same as timezoneId but returned by legacy-API; see this.definition.timeZoneMapping */ timeZoneId?: number; /** * ? */ rangeTypeId?: number; /** * ? */ pattern?: any; /** * ? */ scheduledTime?: any; /** * ? */ scheduledStatus?: string; }; /** * SOAP format */ export type AutomationScheduleSoap = { /** * 'Minutely'|'Hourly'|'Daily'|'Weekly'|'Monthly'|'Yearly' */ RecurrenceType?: string; /** * - */ Recurrence: { $?: object; YearlyRecurrencePatternType?: "ByYear"; MonthlyRecurrencePatternType?: "ByMonth"; WeeklyRecurrencePatternType?: "ByWeek"; DailyRecurrencePatternType?: "ByDay"; MinutelyRecurrencePatternType?: "Interval"; HourlyRecurrencePatternType?: "Interval"; YearInterval?: number; MonthInterval?: number; WeekInterval?: number; DayInterval?: number; HourInterval?: number; MinuteInterval?: number; }; /** * internal variable for CLI output only */ _interval?: number; /** * - */ TimeZone: { ID: number; IDSpecified?: true; }; /** * internal variable for CLI output only */ _timezoneString?: string; /** * AutomationSchedule.startDate */ StartDateTime: string; /** * AutomationSchedule.startDate; internal variable for CLI output only */ _StartDateTime?: string; /** * AutomationSchedule.endDate */ EndDateTime?: string; /** * set to 'EndOn' if AutomationSchedule.icalRecur contains 'UNTIL'; otherwise to 'EndAfter' */ RecurrenceRangeType: "EndOn" | "EndAfter"; /** * only exists if RecurrenceRangeType=='EndAfter' */ Occurrences?: number; }; export type AutomationItem = { /** * Object Id */ id: string; /** * legacy Object Id - used for handling notifications */ legacyId?: string; /** * Object Id as returned by SOAP API */ ObjectID?: string; /** * legacy id */ programId?: string; /** * key (Rest API) */ key: string; /** * key (SOAP API) */ CustomerKey?: string; /** * name (Rest API) */ name?: string; /** * name (SOAP API) */ Name?: string; /** * notifications */ notifications?: any; /** * - */ description?: string; /** * Starting Source = Schedule / File Drop */ type?: "scheduled" | "triggered" | "automationtriggered"; /** * Starting Source = Schedule / File Drop; from legacy api */ automationType?: "scheduled" | "triggered" | "automationtriggered"; /** * automation status */ status?: "Scheduled" | "Running" | "Ready" | "Building" | "PausedSchedule" | "InactiveTrigger"; /** * automation status */ statusId?: number; /** * only existing if type=scheduled */ schedule?: AutomationSchedule; /** * only existing if type=triggered */ fileTrigger?: { fileNamingPattern: string; fileNamePatternTypeId: number; folderLocationText: string; isPublished: boolean; queueFiles: boolean; triggerActive: boolean; }; /** * only existing if type=automationtriggered */ automationTrigger?: object; /** * - */ startSource?: { schedule?: AutomationSchedule; fileDrop?: { fileNamePattern: string; fileNamePatternTypeId: number; folderLocation: string; queueFiles: boolean; }; typeId: number; }; /** * - */ steps?: AutomationStep[]; /** * folder path */ r__folder_Path?: string; /** * holds folder ID, replaced with r__folder_Path during retrieve */ categoryId?: string; /** * user name of person who created this automation */ createdName?: string; /** * iso format */ createdDate?: string; /** * user name of person who last modified this automation */ modifiedName?: string; /** * iso format */ modifiedDate?: string; /** * user name of person who paused this automation */ pausedName?: string; /** * iso format */ pausedDate?: string; }; export type VerificationItem = { /** * ID / Key */ dataVerificationDefinitionId: string; /** * key */ verificationType: "IsEqualTo" | "IsLessThan" | "IsGreaterThan" | "IsOutsideRange" | "IsInsideRange" | "IsNotEqualTo" | "IsNotLessThan" | "IsNotGreaterThan" | "IsNotOutsideRange" | "IsNotInsideRange"; /** * used for all verificationTypes; lower value for IsOutsideRange, IsInsideRange, IsNotOutsideRange, IsNotInsideRange */ value1: number; /** * only used for IsOutsideRange, IsInsideRange, IsNotOutsideRange, IsNotInsideRange; otherwise set to 0 */ value2: number; /** * flag to stop automation if verification fails */ shouldStopOnFailure: boolean; /** * flag to send email if verification fails */ shouldEmailOnFailure: boolean; /** * email address to send notification to; empty string if shouldEmailOnFailure=false */ notificationEmailAddress: string; /** * email message to send; empty string if shouldEmailOnFailure=false */ notificationEmailMessage: string; /** * user id of creator */ createdBy: number; /** * ObjectID of target data extension */ targetObjectId?: string; /** * key of target data extension */ r__dataExtension_key: string; /** * custom key for verifications based on automation, step and activity number */ c__automation_step: string; }; export type AutomationMap = { [x: string]: AutomationItem; }; export type AutomationMapObj = { metadata: AutomationMap; type: string; }; export type AutomationItemObj = { metadata: object | AutomationItem; type: string; }; export type McdevDeltaPkgItem = { /** * relative path to file */ file: string; /** * changed lines */ changes: number; /** * added lines */ insertions: number; /** * deleted lines */ deletions: number; /** * is a binary file */ binary: boolean; /** * git thinks this file was moved */ moved: boolean; /** * git thinks this relative path is where the file was before */ fromPath?: string; /** * metadata type */ type: string; /** * key */ externalKey: string; /** * name */ name: string; /** * what git recognized as an action */ gitAction: "move" | "add/update" | "delete"; /** * mcdev credential name */ _credential: string; /** * mcdev business unit name inside of _credential */ _businessUnit: string; }; export type DeltaPkgItem = import("simple-git").DiffResultTextFile & McdevDeltaPkgItem; export type RestError = import("sfmc-sdk/util").RestError; export type SOAPError = import("sfmc-sdk/util").SOAPError; export type SDKError = SOAPError & RestError; /** * signals what to insert automatically for things usually asked via wizard */ export type SkipInteraction = { /** * client id of installed package */ client_id?: string; /** * client secret of installed package */ client_secret?: string; /** * tenant specific auth url of installed package */ auth_url?: string; /** * MID of the Parent Business Unit */ account_id?: number; /** * how you would like the credential to be named */ credentialName?: string; /** * URL of Git remote server */ gitRemoteUrl?: string; /** * will trigger re-downloading latest versions of dependent types after fixing keys */ fixKeysReretrieve?: boolean; /** * used by mcdev init to directly push to a remote */ gitPush?: string; /** * used by mcdev init to directly push to a remote */ developmentBu?: string; /** * used by mcdev init to directly push to a remote */ downloadBUs?: string; }; export type AuthObject = { /** * client_id client_id for sfmc-sdk auth */ client_id: string; /** * client_secret for sfmc-sdk auth */ client_secret: string; /** * mid of business unit to auth against */ account_id: number; /** * authentication base url */ auth_url: string; }; export type SoapRequestParams = { /** * request id */ continueRequest?: string; /** * additional options (CallsInConversation, Client, ConversationID, Priority, RequestType, SaveOptions, ScheduledTime, SendResponseTo, SequenceCode) */ options?: object; /** * ? */ clientIDs?: any; /** * simple or complex * complex */ filter?: SoapSDKFilter; /** * all BUs or just one */ QueryAllAccounts?: boolean; }; export type SoapFilterSimple = { /** * field */ property: string; /** * various options */ simpleOperator: "equals" | "notEquals" | "isNull" | "isNotNull" | "greaterThan" | "lessThan" | "greaterThanOrEqual" | "lessThanOrEqual" | "between" | "IN" | "in" | "like"; /** * field value */ value?: string | number | boolean | string[] | number[]; }; export type SoapFilterComplex = { /** * string for simple or a new filter-object for complex */ leftOperand: SoapSDKFilter; /** * various options */ logicalOperator: "AND" | "OR"; /** * string for simple or a new filter-object for complex; omit for isNull and isNotNull */ rightOperand: SoapSDKFilter; }; export type SoapSDKFilterSimple = { /** * string for simple or a new filter-object for complex */ leftOperand: SoapFilterSimple["property"]; /** * various options */ operator: SoapFilterSimple["simpleOperator"]; /** * string for simple or a new filter-object for complex; omit for isNull and isNotNull */ rightOperand?: SoapFilterSimple["value"]; }; export type SoapSDKFilterComplex = { /** * string for simple or a new filter-object for complex */ leftOperand: SoapFilterComplex["leftOperand"]; /** * various options */ operator: SoapFilterComplex["logicalOperator"]; /** * string for simple or a new filter-object for complex; omit for isNull and isNotNull */ rightOperand: SoapFilterComplex["rightOperand"]; }; export type SoapSDKFilter = SoapSDKFilterSimple | SoapSDKFilterComplex; export type AssetRequestParams = { /** * request id */ continueRequest?: string; /** * additional options (CallsInConversation, Client, ConversationID, Priority, RequestType, SaveOptions, ScheduledTime, SendResponseTo, SequenceCode) */ options?: object; /** * ? * complex */ clientIDs?: any; /** * pagination */ page?: object; /** * list of fields we want returned */ fields?: string[]; /** * pagination */ sort?: { property: string; direction: "ASC" | "DESC"; }[]; /** * simple or complex filter */ query?: AssetFilter | AssetFilterSimple; }; export type AssetFilter = { /** * string for simple or a new filter-object for complex */ leftOperand: AssetFilter | AssetFilterSimple; /** * various options */ logicalOperator: "AND" | "OR"; /** * string for simple or a new filter-object for complex; omit for isNull and isNotNull */ rightOperand?: SoapSDKFilter | AssetFilterSimple; }; export type AssetFilterSimple = { /** * field */ property: string; /** * various options */ simpleOperator: "equal" | "notEquals" | "isNull" | "isNotNull" | "greaterThan" | "lessThan" | "greaterThanOrEqual" | "lessThanOrEqual" | "between" | "IN" | "in" | "like"; /** * field value */ value: string | number | boolean | any[]; }; export type Mcdevrc = { /** * list of credentials */ credentials: object; /** * configure options for mcdev */ options: object; /** * configure directories for mcdev to read/write to */ directories: { businessUnits: string; deploy: string; docs: string; retrieve: string; template: string; templateBuilds: string; }; /** * templating variables grouped by markets */ markets: { [x: string]: any; }; /** * combination of markets and BUs for streamlined deployments */ marketList: object; /** * templating variables grouped by markets */ metaDataTypes: { retrieve: string[]; createDeltaPkg: string[]; documentOnRetrieve: string[]; }; /** * mcdev version that last updated the config file */ version: string; }; export type LoggerLevel = "error" | "verbose" | "info" | "debug"; export type McdevLogger = { /** * (msg) print info message */ level?: LoggerLevel; /** * (msg) print error message; wrapper around winstonLogger.error that also sets error code to 1 */ error: (msg: string) => void; /** * print error with trace message */ errorStack: (ex: SDKError, message?: string) => void; }; export type Logger = import("winston").Logger & McdevLogger; export type AssetItemSimple = { id: number; key: string; name: string; }; export type AssetItemSimpleMap = { [x: string]: AssetItemSimple; }; export type AssetItemIdSimpleMap = { [x: number]: AssetItemSimple; }; export type ContentBlockConversionTypes = "id" | "key" | "name"; export type ExplainType = { /** * readable name of type */ name: string; /** * api parameter name for type */ apiName: string; /** * more info on what this type is about */ description: string; /** * is it retrieved by default OR list of subtypes that are retrieved by default */ retrieveByDefault: boolean | string[]; /** * supported features */ supports: { retrieve: boolean; create: boolean; update: boolean; delete: boolean; changeKey: boolean; buildTemplate: boolean; retrieveAsTemplate: boolean; }; }; export type ListItem = { /** * wrapper */ Client?: { ID: number; }; /** * not used */ PartnerKey?: string; /** * "2021-06-21T11:54:57.103" */ CreatedDate?: string; /** * "2021-06-21T11:54:57.103" */ ModifiedDate?: string; /** * unique identifier per BU */ ID?: number; /** * not used */ ObjectID?: string; /** * unique identifer per BU */ CustomerKey?: string; /** * customn field that tracks the exact directory path of the current folder including its own name */ Path?: string; /** * wrapper */ ParentFolder?: { ID: number; ObjectID?: string; Path?: string; }; /** * folder name */ Name: string; /** * deprecated option to describe the folder content */ Description?: string; /** * e.g. "shared_data"; see folder-subtypes for complete list */ ContentType: string; /** * ? */ IsActive: boolean; /** * option to disable renaming/moving this folder via GUI */ IsEditable: boolean; /** * option to prevent creating subfolders via GUI */ AllowChildren: boolean; /** * helper flag for Deployer class to signal if the folder was auto-generated or manually placed */ _generated?: boolean; }; /** * key=id */ export type ListIdMap = { [x: number]: ListItem; }; /** * key=customer key */ export type ListMap = { [x: string]: ListItem; }; /** * returned by /data/v1/integration/member/salesforce/object/<OBJECT NAME>/referenceobjects */ export type ReferenceObject = { /** * label */ displayname: string; /** * api name of salesforce object */ referenceObjectName: string; /** * name of lookup/MD field on related object ending on __r (way to return fields from other object) */ relationshipName: string; /** * name of lookup/MD field on related object ending on __c (returning id) */ relationshipIdName: string; /** * if this lookup can point to multiple objects or not */ isPolymorphic: boolean; }; /** * returned by /legacy/v1/beta/integration/member/salesforce/object/<OBJECT NAME> */ export type SfObjectPicklist = { /** * - */ active: boolean; /** * - */ defaultValue: boolean; /** * what you see in the GUI */ label: string; /** * whats stored in the DB */ value: string; }; /** * returned by /legacy/v1/beta/integration/member/salesforce/object/<OBJECT NAME> */ export type SfObjectField = { /** * "Annual Revenue" */ label: string; /** * "AnnualRevenue" */ name: string; /** * type */ datatype: "currency" | "string" | "int" | "picklist" | "textarea" | "boolean" | "date" | "datetime" | "email"; /** * 0-4000 */ length: number; /** * == not required */ nillable: boolean; /** * is it a custom field */ custom: boolean; /** * always true? */ updateable: boolean; /** * always true? */ createable: boolean; /** * - */ defaultedoncreate: boolean; /** * - */ externalid: boolean; /** * - */ idlookup: boolean; /** * - */ precision: number; /** * - */ scale: number; /** * "Currency" */ displaydatatype: "Currency" | "Text" | "Number" | "Picklist" | "Text Area (long)" | "Checkbox" | "Date" | "Date/Time" | "Email"; /** * "Lead", */ objectname: string; /** * "", */ relationname: string; /** * - */ isnamefield: boolean; /** * list of values */ picklist?: SfObjectPicklist[]; }; export type configurationArguments = { /** * SalesforceObjectTriggerV2 */ applicationExtensionKey: string; /** * 3.0 */ version: string; /** * what record event in SF triggers this */ salesforceTriggerCriteria: "Created" | "Updated" | "CreatedUpdated"; /** * what objects are used by this event */ eventDataConfig: { objects: eventDataConfigObject[]; }; /** * TODO */ primaryObjectFilterCriteria: Conditions; /** * TODO */ relatedObjectFilterCriteria: Conditions; /** * seems to only exist on journey but not on event and also not on every journey */ additionalObjectFilterCriteria?: object; /** * defines how this event links to the all contacts list */ contactKey: { relationshipIdName: string; relationshipName: string; isPolymorphic: boolean; referenceObjectName: string; fieldName?: string; }; /** * TODO */ passThroughArgument: { fields: { ContactKey: string; Email: object; HasOptedOutOfEmail?: string; }; }; /** * primaryObjectFilterCriteria in simplified string-form */ primaryObjectFilterSummary: string; /** * relatedObjectFilterCriteria in simplified string-form */ relatedObjectFilterSummary: string; /** * eventDataConfig in simplified string-form */ eventDataSummary: string[]; /** * salesforceTriggerCriteria plus semi-colon */ evaluationCriteriaSummary: "Created;" | "Updated;" | "Created;Updated;"; /** * if objectAPIName==CampaignMember then this is also CampaignMember; otherwise it's Contact */ contactPersonType: "CampaignMember" | "Contact"; /** * the SF object on which the salesforceTriggerCriteria is listening on */ objectAPIName: string; /** * "objectAPIName (Contact / Lead / Contacts and Leads)" */ whoToInject: string; /** * empty string for SF events */ criteria: string; /** * set to 0 for SF events */ schemaVersionId: number; }; /** * part of configurationArguments */ export type eventDataConfigObject = { /** * CampaignMember:Campaign: */ dePrefix: string; /** * ? */ isPolymorphic: boolean; /** * field on parent object containing the id; ends on __c for custom fields; same as referenceObject for standard fields; can be "Contacts and Leads" */ referenceObject: string; /** * field on parent object acting as lookup; ends on __r for custom fields; same as referenceObject for standard fields; can be "Common" */ relationshipName: string; /** * ? */ relationshipIdName?: string; /** * list of field names that are used by this journey */ fields: string[]; }; /** * part of configurationArguments */ export type Conditions = { /** * - */ operand: "AND" | "OR"; /** * list of conditions */ conditions: (Conditions | FieldCondition)[]; }; /** * part of configurationArguments */ export type FieldCondition = { /** * is 0 for booleans, otherwise field length */ _length: number; /** * type */ datatype: "currency" | "string" | "int" | "picklist" | "textarea" | "boolean" | "date" | "datetime" | "email"; /** * field API name; "TR1__Email__c" */ fieldName: string; /** * "CampaignMember-CampaignMember" */ folderId: string; /** * "CampaignMember-CampaignMember-TR1__Email__c" */ id: string; /** * ? */ isPolymorphic: boolean; /** * likely the field label; "Email" */ name: string; /** * condition comparator */ operator: "equals" | "EQUALS" | "WASSET"; /** * value to compare the field with if operator is sth like "equals"; booleans are stored as upper-camel-case string! */ value?: string; /** * ? */ precision: number; /** * "Contacts and Leads" */ referenceObjectName: string; /** * "CommonId"; can be an empty string */ relationshipIdName: string; /** * "Common"; can be an empty string */ relationshipName: string; /** * ? */ scale: number; /** * seems to be equal to name-attribute?; "Email" */ text: string; }; export type validationRuleFix = () => boolean | null; export type validationRuleTest = () => boolean; export type validationRule = { /** * error message to display in case of a failed test */ failedMsg: string; /** * test to run */ passed: validationRuleTest; /** * test to run */ fix?: validationRuleFix; }; /** * key=rule name */ export type validationRuleList = { [x: string]: validationRule; }; export type DomainVerificationItem = { /** * EID */ enterpriseId?: number; /** * MID */ memberId?: number; /** * domain or email address used in retrieve and create */ domain?: string; /** * email address used in update call for isSendable field */ emailAddress?: string; /** * returned by retrieve */ status?: "Verified" | "Pending"; /** * returned by retrieve and required for update call */ domainType?: "SAP" | "UserDomain" | "PrivateDomain" | "RegisteredDomain"; /** * automatically true upon creation. can be changed to false via update */ isSendable: boolean; /** * e.g. ""2023-06-19T11:11:17.32"" */ emailSendTime?: string; /** * for bulk-creation only: email address to send notifications to when done */ notificationEmail?: string; /** * for bulk-creation only: list of email addresses to verify */ addresses?: string[]; /** * for bulk-creation only: instead of an array in addresses, specify the name of a DE */ deTable?: string; /** * for bulk-creation only: instead of an array in addresses, specify the name of a DE column/field here */ deColumn?: string; }; //# sourceMappingURL=mcdev.d.d.ts.map