purecloud-flow-scripting-api-sdk-javascript 0.63.8 → 0.64.0

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.
package/types.d.ts CHANGED
@@ -352,7 +352,7 @@ export class ArchEnums {
352
352
  * }
353
353
  * ```
354
354
  */
355
- readonly CUSTOM_JSON_TYPE_NAMESPACES: {"architect":"architect","decisionTable":"decisionTable","userDefined":"userDefined","worktype":"worktype"};
355
+ readonly CUSTOM_JSON_TYPE_NAMESPACES: {"architect":"architect","conversationAttribute":"conversationAttribute","decisionTable":"decisionTable","userDefined":"userDefined","worktype":"worktype"};
356
356
  /**
357
357
  * Returns a string array that contains all valid custom JSON type namespaces.
358
358
  */
@@ -448,7 +448,7 @@ export class ArchEnums {
448
448
  * }
449
449
  * ```
450
450
  */
451
- readonly EVENTS_FLOW_ERROR_HANDLING: {"changeState":"state","continue":"continue","disconnect":"disconnect","endFlow":"endFlow","endInQueueState":"endInQueueState","endWorkflow":"endWorkflow","exit":"exit","jumpToMenu":"menu","transferToQueue":"queue","jumpToTask":"task"};
451
+ readonly EVENTS_FLOW_ERROR_HANDLING: {"abortSend":"abortSend","changeState":"state","completeSend":"completeSend","continue":"continue","disconnect":"disconnect","endFlow":"endFlow","endInQueueState":"endInQueueState","endWorkflow":"endWorkflow","exit":"exit","jumpToMenu":"menu","transferToQueue":"queue","jumpToTask":"task"};
452
452
  /**
453
453
  * Returns a string array that contains all valid flow error event handling strings.
454
454
  */
@@ -505,7 +505,7 @@ export class ArchEnums {
505
505
  * }
506
506
  * ```
507
507
  */
508
- readonly FLOW_TYPES: {"bot":"bot","commonModule":"commonmodule","digitalBot":"digitalbot","inboundCall":"inboundcall","inboundChat":"inboundchat","inboundEmail":"inboundemail","inboundShortMessage":"inboundshortmessage","inqueueCall":"inqueuecall","inqueueEmail":"inqueueemail","inqueueShortMessage":"inqueueshortmessage","outboundCall":"outboundcall","secureCall":"securecall","surveyInvite":"surveyinvite","voice":"voice","voiceSurvey":"voicesurvey","voicemail":"voicemail","workflow":"workflow","workitem":"workitem"};
508
+ readonly FLOW_TYPES: {"bot":"bot","commonModule":"commonmodule","digitalBot":"digitalbot","emailSend":"emailsend","inboundCall":"inboundcall","inboundChat":"inboundchat","inboundEmail":"inboundemail","inboundShortMessage":"inboundshortmessage","inqueueCall":"inqueuecall","inqueueEmail":"inqueueemail","inqueueShortMessage":"inqueueshortmessage","outboundCall":"outboundcall","secureCall":"securecall","surveyInvite":"surveyinvite","voice":"voice","voiceSurvey":"voicesurvey","voicemail":"voicemail","workflow":"workflow","workitem":"workitem"};
509
509
  /**
510
510
  * Returns a string array that contains all valid flow type strings.
511
511
  */
@@ -1155,6 +1155,10 @@ export class ArchOrganizationInfo extends ArchBaseObject {
1155
1155
  * Returns whether the Default Speech To Text Engine selection is available in digital bot flows for this organization.
1156
1156
  */
1157
1157
  readonly defaultSttEngineSelection: boolean;
1158
+ /**
1159
+ * Returns whether Knowledge Configuration Settings are available in bot and digital bot flows for this organization.
1160
+ */
1161
+ readonly knowledgeSettingIsAvailable: boolean;
1158
1162
  /**
1159
1163
  * This is a string suitable for logging information about this object where it's just the object's type. This is normally used
1160
1164
  * when logging errors that occur in constructor parameter checking because the scripting object isn't set up and the normal
@@ -1934,6 +1938,14 @@ export class ArchFactoryActions extends ArchBaseFactory {
1934
1938
  * @param [previousArchAction] - the previous Architect action in the archBaseMultiActionContainer after which the new action should be added. If not specified, the new action will be appended to the end of the action container.
1935
1939
  */
1936
1940
  addActionAbortSurveyInvite(archMultiActionContainer: ArchBaseMultiActionContainer, name?: string, previousArchAction?: ArchBaseAction): ArchActionAbortSurveyInvite;
1941
+ /**
1942
+ * Adds a Complete Send action to an {@link ArchBaseMultiActionContainer} such as an [action output]{@link ArchActionOutput} or [task]{@link ArchTask}.
1943
+ * Available for Email Send flow type when the emailSendFlows feature is enabled.
1944
+ * @param archMultiActionContainer - the Architect multi-action container where the new action should be added.
1945
+ * @param [name] - the name for the new action. If not specified, a name will be auto-generated by Architect Scripting based on the action type being created.
1946
+ * @param [previousArchAction] - the previous Architect action in the archBaseMultiActionContainer after which the new action should be added. If not specified, the new action will be appended to the end of the action container.
1947
+ */
1948
+ addActionCompleteSend(archMultiActionContainer: ArchBaseMultiActionContainer, name?: string, previousArchAction?: ArchBaseAction): ArchActionCompleteSend;
1937
1949
  /**
1938
1950
  * Adds a complete survey invite action to an {@link ArchBaseMultiActionContainer} such as an [action output]{@link ArchActionOutput}, [task]{@link ArchTask} or [state]{@link ArchState}.
1939
1951
  * @param archMultiActionContainer - the Architect multi-action container where the new action should be added. For example, an Architect Scripting state, task or action output where you want the action added.
@@ -1969,6 +1981,13 @@ export class ArchFactoryActions extends ArchBaseFactory {
1969
1981
  * @param [previousArchAction] - the previous Architect action in the archBaseMultiActionContainer after which the new action should be added. If not specified, the new action will be appended to the end of the action container.
1970
1982
  */
1971
1983
  addActionExitBotFlow(archMultiActionContainer: ArchBaseMultiActionContainer, name?: string, previousArchAction?: ArchBaseAction): ArchActionExitBotFlow;
1984
+ /**
1985
+ * Adds an exit workitem flow action to an {@link ArchBaseMultiActionContainer} such as an [action output]{@link ArchActionOutput}, [task]{@link ArchTask} or [state]{@link ArchState}.
1986
+ * @param archMultiActionContainer - the Architect multi-action container where the new action should be added. For example, an Architect Scripting state, task or action output where you want the action added.
1987
+ * @param [name] - the name for the new action. If not specified, a name will be auto-generated by Architect Scripting based on the action type being created.
1988
+ * @param [previousArchAction] - the previous Architect action in the archBaseMultiActionContainer after which the new action should be added. If not specified, the new action will be appended to the end of the action container.
1989
+ */
1990
+ addActionExitWorkitemFlow(archMultiActionContainer: ArchBaseMultiActionContainer, name?: string, previousArchAction?: ArchBaseAction): ArchActionExitWorkitemFlow;
1972
1991
  /**
1973
1992
  * Adds a Find Emergency Group action to an {@link ArchBaseMultiActionContainer} such as an [action output]{@link ArchActionOutput} or [task]{@link ArchTask}.
1974
1993
  * @param archMultiActionContainer - the Architect multi-action container where the new action should be added. For example, an Architect Scripting task or action output where you want the action added.
@@ -4230,7 +4249,6 @@ export class ArchAsyncPolling extends ArchBaseObject {
4230
4249
  * as needed.
4231
4250
  */
4232
4251
  export class ArchAsyncTracker extends ArchBaseObject {
4233
- // constructor();
4234
4252
  /**
4235
4253
  * Returns the display type name string 'ArchAsyncTracker'.
4236
4254
  */
@@ -18861,6 +18879,10 @@ export class ArchBaseFlowBotWithKnowledge extends ArchBaseFlowBot {
18861
18879
  isFilterMatch(archFilterObject: ArchFilterObject): boolean;
18862
18880
  }
18863
18881
 
18882
+ /**
18883
+ * The Architect Scripting class for the base workflow instance.
18884
+ * @param coreInQueueDigitalFlow - ( *Internal* ) an Architect core in-queue email or short message flow.
18885
+ */
18864
18886
  export class ArchBaseFlowInQueueWorkflow extends ArchBaseFlowWorkflow {
18865
18887
  // constructor(coreInQueueDigitalFlow: any);
18866
18888
  /**
@@ -18876,440 +18898,6 @@ export class ArchBaseFlowInQueueWorkflow extends ArchBaseFlowWorkflow {
18876
18898
  * Returns the periodic state for this flow.
18877
18899
  */
18878
18900
  readonly periodicState: ArchState;
18879
- /**
18880
- * This function deletes the specified state from this flow.
18881
- * @param stateToDelete - the state to delete.
18882
- */
18883
- deleteState(stateToDelete: ArchState): void;
18884
- /**
18885
- * Sets the specified state to be the starting state on the flow.
18886
- * @param archState - An Architect Scripting state object.
18887
- */
18888
- setStartingState(archState: ArchState): void;
18889
- /**
18890
- * Returns the starting state for this flow.
18891
- * If there is no startup object configured, accessing this property returns null.
18892
- */
18893
- readonly startUpObject: ArchState;
18894
- /**
18895
- * The states in the flow.
18896
- */
18897
- readonly states: ArchState[];
18898
- /**
18899
- * This function deletes the specified reusable task from this flow.
18900
- * @param taskToDelete - the task to delete. This must be a reusable task which means the {@link ArchTask#isReusableTask}
18901
- * property on the specified task instance is true.
18902
- */
18903
- deleteTask(taskToDelete: ArchTask): void;
18904
- /**
18905
- * Returns an array of the currently defined reusable tasks for this flow.
18906
- */
18907
- readonly tasksReusable: ArchTask[];
18908
- /**
18909
- * This adds a new variable to the flow.
18910
- * @param name - the name of the variable to add. Remember that variable names must
18911
- * start with a letter and can then be followed by one or more letters, numbers
18912
- * or underscore characters to be valid. Submitting the variable scope on the name
18913
- * is optional. If specified, it must be 'Flow.' in order to be valid since you're
18914
- * adding the variable to a flow. You can also specify 'Slot.' to add a slot variable
18915
- * to the flow as long as the forceSlotVariableCreation parameter is true.
18916
- * @param type - the data type for the new variable. Remember that type must be supported
18917
- * in the flow type for which you're looking to add the variable. If you are
18918
- * not sure if a type is creatable, see the {@link ArchDataType#isScriptCreatableForFlowType} or
18919
- * {@link ArchDataType#isScriptCreatableForFlow} method.
18920
- * @param [description] - the description for the new variable.
18921
- * @param [forceSlotVariableCreation] - if true, will force the creation of a slot variable even when a Slot is not created in the Natural Language Understanding (NLU).
18922
- */
18923
- addVariable(name: string, type: ArchDataType, description?: string, forceSlotVariableCreation?: boolean): ArchBaseVariable;
18924
- /**
18925
- * This deletes the supplied variable from the flow. Remember you can call {@link ArchBaseVariable#canDelete}
18926
- * prior to calling this method to know if the supplied flow scoped variable can be deleted.
18927
- * @param archVariable - the flow scoped variable you wish to delete
18928
- * @returns - true if the variable was removed successfully, false otherwise.
18929
- */
18930
- removeVariable(archVariable: ArchBaseVariable): boolean;
18931
- /**
18932
- * Checkout this flow. This function returns an ArchInfo instance for it to the supplied callback function.
18933
- * @param [forceUnlock] - if true, will force an unlock of the flow.
18934
- * @param [callbackFunction] - a callback function to call if the flow was checked out.
18935
- * @returns - while this method returns a promise, you should use the callback function to perform any processing once the flow is checked out.
18936
- */
18937
- checkoutAsync(forceUnlock?: boolean, callbackFunction?: callbackVoid): Promise<ArchFlowInfo>;
18938
- /**
18939
- * Returns the division associated with this flow.
18940
- * This method first calls {@link ArchOrganizationInfo#areDivisionsAvailable} to ensure that divisions are available.
18941
- * If not available, nothing is returned.
18942
- */
18943
- readonly division: ArchDivision;
18944
- /**
18945
- * Loads a specific version of the flow. Any previously returned Architect Scripting objects associated with this flow should no
18946
- * longer be considered valid after loading new configuration.
18947
- * @param [flowVersion = "latest"] - the version of the flow to get. Valid values are "latest" to get the latest saved configuration of a flow,
18948
- * a version value such as "2.0" or "2", "debug" to get the currently published debug version configuration of a flow,
18949
- * or "published" to get the currently published version configuration of a flow. If you do not specify a version, then the latest saved configuration will be loaded.
18950
- * @param [callbackFunction] - a callback function to call if the flow was loaded.
18951
- * @returns - while this method returns a promise, you should use the callback function to perform any processing when the flow is loaded.
18952
- */
18953
- loadAsync(flowVersion?: string, callbackFunction?: callbackVoid): Promise<any>;
18954
- /**
18955
- * Returns a string suitable for logging that describes the flow
18956
- */
18957
- readonly logStr: string;
18958
- /**
18959
- * Unlocks this flow.
18960
- * @param [callbackFunction] - a callback function to call if the flow can be unlocked.
18961
- * @returns - while this method returns a promise, you should use the callback function to perform any processing once this flow is unlocked.
18962
- */
18963
- unlockAsync(callbackFunction?: callbackVoid): Promise<any>;
18964
- /**
18965
- * Helper method that accesses the flow's [settingsSupportedLanguages]{@link ArchBaseFlow#settingsSupportedLanguages} and then calls
18966
- * the [addSupportedLanguage]{@link ArchSettingsSupportedLanguagesFlow#addSupportedLanguage} function on the returned {@link ArchSettingsSupportedLanguagesFlow}
18967
- * value.
18968
- * @param archLanguage - the language to add to supported languages on the flow. Note that any language used as a supported
18969
- * language must have at least one region sub-tag.
18970
- * @param [setAsDefaultLanguage] - if true, the language will be set as the default language on the flow.
18971
- */
18972
- addFlowSupportedLanguage(archLanguage: ArchLanguage, setAsDefaultLanguage?: boolean): ArchSettingsSupportedLanguage;
18973
- /**
18974
- * Checks flow to see if a language can be added in its current state. Some flows may have restrictions
18975
- * if any or more than one can be added.
18976
- */
18977
- canAddSupportedLanguage(): boolean;
18978
- /**
18979
- * Checks in and unlocks the flow for the current user, does a save first
18980
- * Assumes the flow has been created, throws if not
18981
- * @param [ensureSearchable] - whether or not to poll after successful checkin to ensure that the flow is available for flow
18982
- * search operations such as {@link ArchFactoryFlows#getFlowInfoByFlowNameAsync} or {@link ArchFactoryFlows#getFlowInfoByFlowIdAsync}
18983
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
18984
- * flow instance.
18985
- */
18986
- checkInAsync(ensureSearchable?: boolean): Promise<ArchBaseFlow | undefined>;
18987
- /**
18988
- * Creates a new flow on the server and saves its configuration
18989
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
18990
- * flow instance.
18991
- */
18992
- createAsync(): Promise<any>;
18993
- /**
18994
- * Accessing this property returns an object with properties whose keys are data type names and values are
18995
- * {@link ArchDataType} instances.
18996
- */
18997
- readonly dataTypes: any;
18998
- /**
18999
- * The description of the flow
19000
- */
19001
- description: string;
19002
- /**
19003
- * Exports the current flow to a file in the specified directory. This destination directory *must* exist
19004
- * for the export to succeed. Note that this uses the file system and should not be used when running in a
19005
- * browser.
19006
- * @param [destinationDir] - the directory where the flow export should be saved.
19007
- * @param [callbackFunction] - the function to call back and pass in the full path where the
19008
- * flow export was saved.
19009
- * @param [flowFormat = ArchEnums.FLOW_FORMAT_TYPES.architect] - the desired flow format to use for the export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export formats. If no format is used,
19010
- * it will default to the Architect format.
19011
- * @param [fileName] - the file name to use for the exported flow. If a file extension is not added to the file name, it will use the default file extension for the desired export type for
19012
- * the desired export format and flow that you are exporting. If the format is YAML, the extension is always '.yaml' regardless of flow type. However, if it is the Architect format, the extension is unique per flow-type.
19013
- * To find the correct file extension for the Architect format, you can either export a flow from the Architect UI or look at the [flow definition]{@link ArchBaseFlow#definition}
19014
- * for a flow type and access the [fileExtension]{@link ArchDefinitionFlow#fileExtension} property to get the value. If an extension is found on the file name other than what is
19015
- * expected, the correct extension will be appended to the end of the exported file as per the logic described previously.
19016
- */
19017
- exportToDirAsync(destinationDir?: string, callbackFunction?: callbackExportFullPath, flowFormat?: string, fileName?: string): Promise<string>;
19018
- /**
19019
- * Exports the flow to a JSON object. The object passed back in the callback function
19020
- * will be a JSON object with a content and fileName property where the content holds
19021
- * the flow export contents and the fileName property holds the file name where the
19022
- * export would be written if {@link ArchBaseFlow#exportToDirAsync} is called.
19023
- * @param callbackFunction - the function to call back with the export information contained
19024
- * in the parameter passed to it.
19025
- * @param [flowFormat = archEnums.FLOW_FORMAT_TYPES.architect] - the desired export format to use on an export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export formats. If no format is used,
19026
- * it will default to the Architect format.
19027
- */
19028
- exportToObjectAsync(callbackFunction: callbackExportObject, flowFormat?: string): Promise<ExportInfoType>;
19029
- /**
19030
- * The type of the flow. The string
19031
- * values in {@link ArchEnums#FLOW_TYPES} lists valid flow type values.
19032
- */
19033
- readonly flowType: string;
19034
- /**
19035
- * This function will return the file path where a flow export will be written when calling the {@link ArchBaseFlow#exportToDirAsync}
19036
- * method for the supplied destination directory and export flow format. A typical use case for this function would be
19037
- * to get the export file path prior to calling the {@link ArchBaseFlow#exportToDirAsync} so you could see if the file already exists
19038
- * and decide if you want to perform an export or not since {@link ArchBaseFlow#exportToDirAsync} will attempt to overwrite
19039
- * a file if it already exists. Note that this uses the file system and should not be used when running in a
19040
- * browser.
19041
- * @param [destinationDir] - the directory where the flow export should be written. If no directory path is given, this method uses the
19042
- * current working directory. If a relative path is supplied, it will be resolved relative to the current
19043
- * working directory.
19044
- * @param [flowFormat = ArchEnums.FLOW_FORMAT_TYPES.architect] - the desired flow format to use for the export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export
19045
- * formats. If no format is supplied, it will use the Architect format.
19046
- * @param [fileName] - the file name to use for the exported flow. If a file extension is not added to the file name, it will use the default file extension for the desired export type for
19047
- * the desired export format and flow that you are exporting. If the format is YAML, the extension is always '.yaml' regardless of flow type. However, if it is the Architect format, the extension is unique per flow-type.
19048
- * To find the correct file extension for the Architect format, you can either export a flow from the Architect UI or look at the [flow definition]{@link ArchBaseFlow#definition}
19049
- * for a flow type and access the [fileExtension]{@link ArchDefinitionFlow#fileExtension} property to get the value. If an extension is found on the file name other than what is
19050
- * expected, the correct extension will be appended to the end of the exported file as per the logic described previously.
19051
- */
19052
- getExportFilePath(destinationDir?: string, flowFormat?: string, fileName?: string): string;
19053
- /**
19054
- * Returns the flow scoped variable for the supplied variable identifier ( if it exists ).
19055
- * If the variable name cannot be found, nothing is returned.
19056
- * @param variableId - the supllied variable identifier to look up such as __CALL_ANI__.
19057
- */
19058
- getVariableById<T extends ArchBaseVariable = ArchBaseVariable>(variableId: string): T;
19059
- /**
19060
- * Returns the flow scoped variable for the supplied fully scoped variable name ( if it exists ). Remember, looking
19061
- * up variables by name is case insensitive. If the variable name cannot be found, nothing is returned.
19062
- * @param variableName - the fully scoped variable name to look up such as Flow.MyVar.
19063
- */
19064
- getVariableByName<T extends ArchBaseVariable = ArchBaseVariable>(variableName: string): T;
19065
- /**
19066
- * Imports the flow content from the supplied content string. This content string should be for a flow of the
19067
- * same type as the one you're importing in to. Upon successful import, the callback function passed in
19068
- * will be called. Importing flow contents in to a flow is something where you should *not* attempt to
19069
- * do work with the flow on which this is being called until the callback is called.
19070
- * @param exportContent - the contents from a flow export.
19071
- * @param [callbackFunction] - a function to call if the export content successfully loaded and configured
19072
- * on this flow. The first parameter passed to the callback function will be this
19073
- * Architect flow instance.
19074
- */
19075
- importFromContentAsync<T extends ArchBaseFlow = ArchBaseFlow>(exportContent: string, callbackFunction?: (...params: any[]) => any): Promise<T>;
19076
- /**
19077
- * Imports the flow content from the supplied file path. Upon successful import, the callback function passed in
19078
- * will be called. Importing flow contents in to a flow is something where you should *not* attempt to
19079
- * do work with the flow on which this is being called until the callback is called.
19080
- * Also note that this method should not be used if running in a browser.
19081
- * @param exportFilePath - the file path to an Architect flow export file that should be imported.
19082
- * @param [callbackFunction] - a function to call if the export content successfully loaded and configured
19083
- * on this flow. The first parameter passed to the callback function will be this
19084
- * Architect flow instance.
19085
- */
19086
- importFromFileAsync<T extends ArchBaseFlow = ArchBaseFlow>(exportFilePath: string, callbackFunction?: (...params: any[]) => any): Promise<T>;
19087
- /**
19088
- * Returns whether or not the flow is created in Genesys Cloud.
19089
- */
19090
- readonly isCreated: boolean;
19091
- /**
19092
- * Returns whether or not the flow is read-only. Flows that have been created locally in
19093
- * scripting but not saved, checked in or published will report that they are not read-only.
19094
- */
19095
- readonly isReadOnly: boolean;
19096
- /**
19097
- * Returns whether or not the flow is secure. That means it contains something that is
19098
- * secure like a secure variable or secure action.
19099
- */
19100
- readonly isSecure: boolean;
19101
- /**
19102
- * Returns true indicating the flow acts as a variable container which means you can
19103
- * add variables to it.
19104
- */
19105
- readonly isVariableContainer: boolean;
19106
- /**
19107
- * The language settings for the flow. This property is now deprecated.
19108
- * Please replace calls to this property with {@link ArchBaseFlow#settingsSupportedLanguages} instead.
19109
- */
19110
- readonly languageSettings: ArchSettingsSupportedLanguagesFlow;
19111
- /**
19112
- * The name of the flow
19113
- */
19114
- name: string;
19115
- /**
19116
- * Publishes the flow. This will do a validate, save, checkin and then publish last. Any of these
19117
- * steps can fail and reject the promise. Operations are not atomic.
19118
- * @param [ensureSearchable] - whether or not to poll after successful publish to ensure that the flow is available for flow
19119
- * search operations such as {@link ArchFactoryFlows#getFlowInfoByFlowNameAsync} or {@link ArchFactoryFlows#getFlowInfoByFlowIdAsync}
19120
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
19121
- * flow instance.
19122
- */
19123
- publishAsync(ensureSearchable?: boolean): Promise<any>;
19124
- /**
19125
- * Save the current flow configuration, creating the flow if needed.
19126
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
19127
- * flow instance.
19128
- */
19129
- saveAsync(): Promise<any>;
19130
- /**
19131
- * Returns the error handling settings for the flow.
19132
- */
19133
- readonly settingsErrorHandling: ArchSettingsEventErrorFlow;
19134
- /**
19135
- * Returns the action default settings for the flow.
19136
- */
19137
- readonly settingsActionDefaults: ArchSettingsActionDefaults;
19138
- /**
19139
- * The supported language settings for the flow.
19140
- * This method will throw if the flow doesn't support languages. You can check {@link ArchBaseFlow#supportsLanguages} prior
19141
- * to calling this method to see if a flow supports languages or not.
19142
- */
19143
- readonly settingsSupportedLanguages: ArchSettingsSupportedLanguagesFlow;
19144
- /**
19145
- * Returns whether or not this flow supports audio channel.
19146
- */
19147
- readonly supportsAudio: boolean;
19148
- /**
19149
- * Returns whether or not this flow supports error handling.
19150
- */
19151
- readonly supportsErrorHandling: boolean;
19152
- /**
19153
- * Returns whether or not this flow supports languages. If false, that means you have to configure the flow
19154
- * when creating it to use English United States.
19155
- * Note: At this time this functionality is available while we're determining the needs of workflow and
19156
- * inbound email flow types. This property may go away in a future release of Architect Scripting.
19157
- */
19158
- readonly supportsLanguages: boolean;
19159
- /**
19160
- * Returns whether or not this flow supports setting a supported language as the default.
19161
- */
19162
- readonly supportsDefaultLanguage: boolean;
19163
- /**
19164
- * Returns a URL for this flow. If the flow has not been created or there is no startup object set on the flow,
19165
- * the returned URL will be blank.
19166
- */
19167
- readonly url: string;
19168
- /**
19169
- * Validates the flow. Promise returns an {@link ArchValidationResults} instance.
19170
- * @returns - On your promise's then handler, the first parameter passed to the then function will be the
19171
- * validation results.
19172
- */
19173
- validateAsync(): Promise<ArchValidationResults>;
19174
- /**
19175
- * Returns an array of variables defined at the flow scope for this flow.
19176
- */
19177
- readonly variables: ArchBaseVariable[];
19178
- /**
19179
- * The identifier string for this object.
19180
- */
19181
- readonly id: string;
19182
- /**
19183
- * Returns whether or not the id property may be blank or undefined for this object. For example, the returned settings from {@link ArchMenu#settingsMenu}
19184
- * will have a blank identifier along with the settings returned from {@link ArchMenu#settingsSpeechRec}. Note that this is
19185
- * an extremely rare case.
19186
- */
19187
- readonly idMayBeBlank: string;
19188
- /**
19189
- * Returns true indicating that this is an ArchBaseCoreObject instance.
19190
- */
19191
- readonly isArchBaseCoreObject: boolean;
19192
- /**
19193
- * This method iterates over this object and ArchBaseCoreObject instances
19194
- * within it. For each object it will call the {@link ArchBaseObject#isFilterMatch} method
19195
- * with a filter and call the supplied callback function if isMatch returns true.
19196
- * The callback will be passed an {@link ArchTraverseInfo} with details
19197
- * about the match such as the match object itself along with current contextual
19198
- * information such as the object hierarchy for the match object relative to
19199
- * the object on which this traverse call is being made.
19200
- *
19201
- * The traverse [filter]{@link ArchFilterObject} is one which you can create
19202
- * by calling {@link ArchFactoryFilters#createFilterObject} and then add desired clauses
19203
- * or clause containers to it. If not specified, this function will use a
19204
- * [default filter]{@link ArchFactoryFilters#createFilterTraverseDefault}.
19205
- *
19206
- * Here is an example that does a simple flow traversal using the default
19207
- * filter and logs information about objects in the callback from the
19208
- * traverse object that's passed back:
19209
- *
19210
- * ```
19211
- * archInboundCallFlow.traverse(function(traverseInfo) {
19212
- * archLogging.logNote(' Object : ' + traverseInfo.matchObject.logStr);
19213
- * archLogging.logNote(' Hierarchy: ' + traverseInfo.context.hierarchyStr);
19214
- * });
19215
- * ```
19216
- * This might be enough for most uses and you can check various aspects
19217
- * about the object in the callback such as "is this an Architect action?" by
19218
- * seeing if traverseInfo.matchObject.isArchBaseAction is true. You can specify
19219
- * a filter for the traversal code to use as well and only have it call your
19220
- * callback when the object's {@link ArchBaseCoreObject#isFilterMatch} method returns true for
19221
- * the filter. Here's an example that creates a filter for callbacks on
19222
- * [any type of transfer action]{@link ArchBaseActionTransfer}, any
19223
- * [decision action]{@link ArchActionDecision} or objects whose name
19224
- * property case insensitively matches the word 'foo'. While this could all be done
19225
- * with one property callback clause the example will use multiple clauses for
19226
- * the sake of simplicity:
19227
- * ```
19228
- * const myTraverseFilter = filterFactory.createFilterObject(archEnums.FILTER_CONTAINER_OPERATORS.or);
19229
- * myTraverseFilter.addClausePropertyValueEquals('isArchBaseActionTransfer', true);
19230
- * myTraverseFilter.addClausePropertyValueEquals('isArchActionDecision', true);
19231
- * myTraverseFilter.addClausePropertyCallback('name', function(propValue, archContainingObject, propName) {
19232
- * // We fully spelled out the function signature above but archContainingObject and propName are
19233
- * // not needed in this case. The archContainingObject is the object that contains the
19234
- * // property and propName is the property name itself. We pass in propName because the same
19235
- * // function could be used for multiple property callback clauses.
19236
- * // Remember to return a boolean true, false or undefined from ths callback. :)
19237
- * return propValue && propValue.toLowerCase() === 'foo';
19238
- * });
19239
- * archTask.traverse(function(traverseContext) {
19240
- * // You will only be called back here for ArchBaseCoreObject instances that
19241
- * // have the isArchBaseActionTransfer or isArchActionDecision property values equal to true.
19242
- * }, myTraverseFilter);
19243
- * ```
19244
- * If you supply a filter with no clauses, this tells the traverse method to
19245
- * call the supplied callback function for every {@link ArchBaseCoreObject} it traverses.
19246
- *
19247
- * If you want traversal itself to stop after a callback, simply return boolean
19248
- * false from the callback function you supply to the traverse call.
19249
- *
19250
- * The traverse method does not process deprecated property names such as [orgId]{@link ArchSession#orgId},
19251
- * [orgName]{@link ArchSession#orgName} or [languageSettings]{@link ArchBaseFlow#languageSettings}. Additionally
19252
- * it does not traverse in to properties that would "jump out" of the current traversal. An example of this
19253
- * would be if the code was traversing an {@link ArchActionJumpToMenu} action that it would not start traversing
19254
- * in to the menu that it jumps to. Another example would be a {@link ArchActionChangeState} action where
19255
- * it would not traverse in to the target state of the action. This also means traversal does not traverse
19256
- * in to the {@link ArchBaseValue#flowLevelDefault} property.
19257
- *
19258
- * And lastly, as Scripting evolves over time with new versions, you can expect to get callbacks for new object
19259
- * types such as new actions or new properties on objects. As such, it's important not to assume any particular
19260
- * order in callbacks to keep code most compatible with traversal callbacks. Or if you use inequality checks in filter
19261
- * clauses remember that new "stuff" may satisfy an inequality check which may or may not be anticipated in your logic.
19262
- *
19263
- * Note: This traverse method is a helper method and is very handy for iterating over Architect Scripting
19264
- * objects and their properties in a generic fashion with filtering capabilities. Obviously you can write
19265
- * your own custom traversal code if this implementation doesn't cut it for some reason. :)
19266
- *
19267
- * This function returns the number of times it called the callback function.
19268
- * @param callbackFunction - the callback function to call for objects that match the traverse filter.
19269
- * @param [traverseFilter = {@link ArchFactoryFilters#createFilterTraverseDefault}] - the filter to use when performing the traversal to determine which
19270
- * {@link ArchBaseCoreObject} instances you wish to be called back for. If no
19271
- * filter is specified, this function will call {@link ArchFactoryFilters#createFilterTraverseDefault} and
19272
- * use that traversal default filter. The wantArchBaseValues parameter on that call is set to true.
19273
- */
19274
- traverse(callbackFunction: callbackTraverseInfo, traverseFilter?: ArchFilterObject): number;
19275
- /**
19276
- * This is a string suitable for logging information about this object where it's just the object's type. This is normally used
19277
- * when logging errors that occur in constructor parameter checking because the scripting object isn't set up and the normal
19278
- * logging str contents wouldn't be set up.
19279
- */
19280
- readonly logStrTypeOnly: string;
19281
- /**
19282
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true.
19283
- * @param errorStr - the error string to log.
19284
- */
19285
- logError(errorStr: string): void;
19286
- /**
19287
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true and then throws
19288
- * the string in the errorStr parameter.
19289
- * @param errorStr - the error string to log. This should be a non-blank string.
19290
- */
19291
- logErrorAndThrow(errorStr: string): void;
19292
- /**
19293
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotes} is true.
19294
- * @param noteStr - the note string to log. This should be a non-blank string.
19295
- */
19296
- logNote(noteStr: string): void;
19297
- /**
19298
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotesVerbose} is true.
19299
- * @param noteStr - the note string to log. This should be a non-blank string.
19300
- */
19301
- logNoteVerbose(noteStr: string): void;
19302
- /**
19303
- * Logs a warning to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logWarnings} is true.
19304
- * @param warningStr - the warning string to log. This should be a non-blank string.
19305
- */
19306
- logWarning(warningStr: string): void;
19307
- /**
19308
- * Returns whether or not this Architect Scripting object is a match
19309
- * for the supplied ArchFilterObject instance.
19310
- * @param archFilterObject - the object filter to use to determine if it's a match.
19311
- */
19312
- isFilterMatch(archFilterObject: ArchFilterObject): boolean;
19313
18901
  }
19314
18902
 
19315
18903
  export class ArchBaseFlowInboundOutboundSecureCall extends ArchBaseFlowWithMenus {
@@ -30682,6 +30270,12 @@ export class ArchFlowInboundCall extends ArchBaseFlowInboundOutboundSecureCall {
30682
30270
  isFilterMatch(archFilterObject: ArchFilterObject): boolean;
30683
30271
  }
30684
30272
 
30273
+ /**
30274
+ * The Architect Scripting class for the Inbound Chat flow class which represents the Inbound Chat flow type in
30275
+ * the Architect UI.
30276
+ * Instances of this Architect Scripting object should be created by calling {@link ArchFactoryFlows#createFlowInboundChatAsync}
30277
+ * @param coreInboundChatViewModel - ( *Internal* ) an Architect core inbound chat view model.
30278
+ */
30685
30279
  export class ArchFlowInboundChat extends ArchBaseFlowWorkflow {
30686
30280
  // constructor(coreInboundChatViewModel: any);
30687
30281
  /**
@@ -30692,305 +30286,124 @@ export class ArchFlowInboundChat extends ArchBaseFlowWorkflow {
30692
30286
  * Returns true indicating that this is an ArchFlowInboundChat instance.
30693
30287
  */
30694
30288
  readonly isArchFlowInboundChat: boolean;
30289
+ }
30290
+
30291
+ /**
30292
+ * The Architect Scripting class that represents an Inbound Email flow.
30293
+ * Instances of this Architect Scripting object should be created by calling {@link ArchFactoryFlows.createFlowInboundEmailAsync}
30294
+ * @param coreInboundEmailViewModel - ( *Internal* ) an Architect core inbound email view model.
30295
+ */
30296
+ export class ArchFlowInboundEmail extends ArchBaseFlowWorkflow {
30297
+ // constructor(coreInboundEmailViewModel: any);
30695
30298
  /**
30696
- * This function deletes the specified state from this flow.
30697
- * @param stateToDelete - the state to delete.
30698
- */
30699
- deleteState(stateToDelete: ArchState): void;
30700
- /**
30701
- * Sets the specified state to be the starting state on the flow.
30702
- * @param archState - An Architect Scripting state object.
30703
- */
30704
- setStartingState(archState: ArchState): void;
30705
- /**
30706
- * Returns the starting state for this flow.
30707
- * If there is no startup object configured, accessing this property returns null.
30708
- */
30709
- readonly startUpObject: ArchState;
30710
- /**
30711
- * The states in the flow.
30712
- */
30713
- readonly states: ArchState[];
30714
- /**
30715
- * This function deletes the specified reusable task from this flow.
30716
- * @param taskToDelete - the task to delete. This must be a reusable task which means the {@link ArchTask#isReusableTask}
30717
- * property on the specified task instance is true.
30299
+ * Returns the display type name string 'ArchFlowInboundEmail'.
30718
30300
  */
30719
- deleteTask(taskToDelete: ArchTask): void;
30301
+ readonly displayTypeName: string;
30720
30302
  /**
30721
- * Returns an array of the currently defined reusable tasks for this flow.
30303
+ * Returns true indicating that this is an ArchFlowInboundEmail instance.
30722
30304
  */
30723
- readonly tasksReusable: ArchTask[];
30305
+ isArchFlowInboundEmail: boolean;
30724
30306
  /**
30725
- * This adds a new variable to the flow.
30726
- * @param name - the name of the variable to add. Remember that variable names must
30727
- * start with a letter and can then be followed by one or more letters, numbers
30728
- * or underscore characters to be valid. Submitting the variable scope on the name
30729
- * is optional. If specified, it must be 'Flow.' in order to be valid since you're
30730
- * adding the variable to a flow. You can also specify 'Slot.' to add a slot variable
30731
- * to the flow as long as the forceSlotVariableCreation parameter is true.
30732
- * @param type - the data type for the new variable. Remember that type must be supported
30733
- * in the flow type for which you're looking to add the variable. If you are
30734
- * not sure if a type is creatable, see the {@link ArchDataType#isScriptCreatableForFlowType} or
30735
- * {@link ArchDataType#isScriptCreatableForFlow} method.
30736
- * @param [description] - the description for the new variable.
30737
- * @param [forceSlotVariableCreation] - if true, will force the creation of a slot variable even when a Slot is not created in the Natural Language Understanding (NLU).
30307
+ * Loads all currently available response library entries.
30738
30308
  */
30739
- addVariable(name: string, type: ArchDataType, description?: string, forceSlotVariableCreation?: boolean): ArchBaseVariable;
30309
+ static loadResponseLibraryManager: Promise<any>;
30740
30310
  /**
30741
- * This deletes the supplied variable from the flow. Remember you can call {@link ArchBaseVariable#canDelete}
30742
- * prior to calling this method to know if the supplied flow scoped variable can be deleted.
30743
- * @param archVariable - the flow scoped variable you wish to delete
30744
- * @returns - true if the variable was removed successfully, false otherwise.
30311
+ * The inbound email settings for the flow.
30745
30312
  */
30746
- removeVariable(archVariable: ArchBaseVariable): boolean;
30313
+ readonly settingsInboundEmailHandling: ArchSettingsInboundEmailFlow;
30314
+ }
30315
+
30316
+ /**
30317
+ * The Architect Scripting class for the Inbound Short Message flow class which represents the Inbound Message flow type in
30318
+ * the Architect UI.
30319
+ * Instances of this Architect Scripting object should be created by calling {@link ArchFactoryFlows#createFlowInboundShortMessageAsync}
30320
+ * @param coreInboundShortMessageViewModel - ( *Internal* ) an Architect core inbound short message view model.
30321
+ */
30322
+ export class ArchFlowInboundShortMessage extends ArchBaseFlowWorkflow {
30323
+ // constructor(coreInboundShortMessageViewModel: any);
30747
30324
  /**
30748
- * Checkout this flow. This function returns an ArchInfo instance for it to the supplied callback function.
30749
- * @param [forceUnlock] - if true, will force an unlock of the flow.
30750
- * @param [callbackFunction] - a callback function to call if the flow was checked out.
30751
- * @returns - while this method returns a promise, you should use the callback function to perform any processing once the flow is checked out.
30325
+ * Returns the display type name string 'ArchFlowInboundShortMessage'.
30752
30326
  */
30753
- checkoutAsync(forceUnlock?: boolean, callbackFunction?: callbackVoid): Promise<ArchFlowInfo>;
30327
+ readonly displayTypeName: string;
30754
30328
  /**
30755
- * Returns the division associated with this flow.
30756
- * This method first calls {@link ArchOrganizationInfo#areDivisionsAvailable} to ensure that divisions are available.
30757
- * If not available, nothing is returned.
30329
+ * Returns true indicating that this is an ArchFlowInboundShortMessage instance.
30758
30330
  */
30759
- readonly division: ArchDivision;
30331
+ readonly isArchFlowInboundShortMessage: boolean;
30332
+ }
30333
+
30334
+ export class ArchFlowInfo extends ArchBaseCoreObjectWithId {
30335
+ // constructor(coreFlowInfoViewModel: any);
30760
30336
  /**
30761
- * Loads a specific version of the flow. Any previously returned Architect Scripting objects associated with this flow should no
30762
- * longer be considered valid after loading new configuration.
30763
- * @param [flowVersion = "latest"] - the version of the flow to get. Valid values are "latest" to get the latest saved configuration of a flow,
30764
- * a version value such as "2.0" or "2", "debug" to get the currently published debug version configuration of a flow,
30765
- * or "published" to get the currently published version configuration of a flow. If you do not specify a version, then the latest saved configuration will be loaded.
30766
- * @param [callbackFunction] - a callback function to call if the flow was loaded.
30767
- * @returns - while this method returns a promise, you should use the callback function to perform any processing when the flow is loaded.
30337
+ * Returns the display type name string 'ArchFlowInfo'.
30768
30338
  */
30769
- loadAsync(flowVersion?: string, callbackFunction?: callbackVoid): Promise<any>;
30339
+ readonly displayTypeName: string;
30770
30340
  /**
30771
- * Returns a string suitable for logging that describes the flow
30341
+ * A string suitable for logging that contains information about this flow info basic.
30772
30342
  */
30773
30343
  readonly logStr: string;
30774
30344
  /**
30775
- * Unlocks this flow.
30776
- * @param [callbackFunction] - a callback function to call if the flow can be unlocked.
30777
- * @returns - while this method returns a promise, you should use the callback function to perform any processing once this flow is unlocked.
30778
- */
30779
- unlockAsync(callbackFunction?: callbackVoid): Promise<any>;
30780
- /**
30781
- * Helper method that accesses the flow's [settingsSupportedLanguages]{@link ArchBaseFlow#settingsSupportedLanguages} and then calls
30782
- * the [addSupportedLanguage]{@link ArchSettingsSupportedLanguagesFlow#addSupportedLanguage} function on the returned {@link ArchSettingsSupportedLanguagesFlow}
30783
- * value.
30784
- * @param archLanguage - the language to add to supported languages on the flow. Note that any language used as a supported
30785
- * language must have at least one region sub-tag.
30786
- * @param [setAsDefaultLanguage] - if true, the language will be set as the default language on the flow.
30787
- */
30788
- addFlowSupportedLanguage(archLanguage: ArchLanguage, setAsDefaultLanguage?: boolean): ArchSettingsSupportedLanguage;
30789
- /**
30790
- * Checks flow to see if a language can be added in its current state. Some flows may have restrictions
30791
- * if any or more than one can be added.
30792
- */
30793
- canAddSupportedLanguage(): boolean;
30794
- /**
30795
- * Checks in and unlocks the flow for the current user, does a save first
30796
- * Assumes the flow has been created, throws if not
30797
- * @param [ensureSearchable] - whether or not to poll after successful checkin to ensure that the flow is available for flow
30798
- * search operations such as {@link ArchFactoryFlows#getFlowInfoByFlowNameAsync} or {@link ArchFactoryFlows#getFlowInfoByFlowIdAsync}
30799
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
30800
- * flow instance.
30801
- */
30802
- checkInAsync(ensureSearchable?: boolean): Promise<ArchBaseFlow | undefined>;
30803
- /**
30804
- * Creates a new flow on the server and saves its configuration
30805
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
30806
- * flow instance.
30807
- */
30808
- createAsync(): Promise<any>;
30809
- /**
30810
- * Accessing this property returns an object with properties whose keys are data type names and values are
30811
- * {@link ArchDataType} instances.
30812
- */
30813
- readonly dataTypes: any;
30814
- /**
30815
- * The description of the flow
30816
- */
30817
- description: string;
30818
- /**
30819
- * Exports the current flow to a file in the specified directory. This destination directory *must* exist
30820
- * for the export to succeed. Note that this uses the file system and should not be used when running in a
30821
- * browser.
30822
- * @param [destinationDir] - the directory where the flow export should be saved.
30823
- * @param [callbackFunction] - the function to call back and pass in the full path where the
30824
- * flow export was saved.
30825
- * @param [flowFormat = ArchEnums.FLOW_FORMAT_TYPES.architect] - the desired flow format to use for the export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export formats. If no format is used,
30826
- * it will default to the Architect format.
30827
- * @param [fileName] - the file name to use for the exported flow. If a file extension is not added to the file name, it will use the default file extension for the desired export type for
30828
- * the desired export format and flow that you are exporting. If the format is YAML, the extension is always '.yaml' regardless of flow type. However, if it is the Architect format, the extension is unique per flow-type.
30829
- * To find the correct file extension for the Architect format, you can either export a flow from the Architect UI or look at the [flow definition]{@link ArchBaseFlow#definition}
30830
- * for a flow type and access the [fileExtension]{@link ArchDefinitionFlow#fileExtension} property to get the value. If an extension is found on the file name other than what is
30831
- * expected, the correct extension will be appended to the end of the exported file as per the logic described previously.
30832
- */
30833
- exportToDirAsync(destinationDir?: string, callbackFunction?: callbackExportFullPath, flowFormat?: string, fileName?: string): Promise<string>;
30834
- /**
30835
- * Exports the flow to a JSON object. The object passed back in the callback function
30836
- * will be a JSON object with a content and fileName property where the content holds
30837
- * the flow export contents and the fileName property holds the file name where the
30838
- * export would be written if {@link ArchBaseFlow#exportToDirAsync} is called.
30839
- * @param callbackFunction - the function to call back with the export information contained
30840
- * in the parameter passed to it.
30841
- * @param [flowFormat = archEnums.FLOW_FORMAT_TYPES.architect] - the desired export format to use on an export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export formats. If no format is used,
30842
- * it will default to the Architect format.
30843
- */
30844
- exportToObjectAsync(callbackFunction: callbackExportObject, flowFormat?: string): Promise<ExportInfoType>;
30845
- /**
30846
- * The type of the flow. The string
30847
- * values in {@link ArchEnums#FLOW_TYPES} lists valid flow type values.
30848
- */
30849
- readonly flowType: string;
30850
- /**
30851
- * This function will return the file path where a flow export will be written when calling the {@link ArchBaseFlow#exportToDirAsync}
30852
- * method for the supplied destination directory and export flow format. A typical use case for this function would be
30853
- * to get the export file path prior to calling the {@link ArchBaseFlow#exportToDirAsync} so you could see if the file already exists
30854
- * and decide if you want to perform an export or not since {@link ArchBaseFlow#exportToDirAsync} will attempt to overwrite
30855
- * a file if it already exists. Note that this uses the file system and should not be used when running in a
30856
- * browser.
30857
- * @param [destinationDir] - the directory where the flow export should be written. If no directory path is given, this method uses the
30858
- * current working directory. If a relative path is supplied, it will be resolved relative to the current
30859
- * working directory.
30860
- * @param [flowFormat = ArchEnums.FLOW_FORMAT_TYPES.architect] - the desired flow format to use for the export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export
30861
- * formats. If no format is supplied, it will use the Architect format.
30862
- * @param [fileName] - the file name to use for the exported flow. If a file extension is not added to the file name, it will use the default file extension for the desired export type for
30863
- * the desired export format and flow that you are exporting. If the format is YAML, the extension is always '.yaml' regardless of flow type. However, if it is the Architect format, the extension is unique per flow-type.
30864
- * To find the correct file extension for the Architect format, you can either export a flow from the Architect UI or look at the [flow definition]{@link ArchBaseFlow#definition}
30865
- * for a flow type and access the [fileExtension]{@link ArchDefinitionFlow#fileExtension} property to get the value. If an extension is found on the file name other than what is
30866
- * expected, the correct extension will be appended to the end of the exported file as per the logic described previously.
30867
- */
30868
- getExportFilePath(destinationDir?: string, flowFormat?: string, fileName?: string): string;
30869
- /**
30870
- * Returns the flow scoped variable for the supplied variable identifier ( if it exists ).
30871
- * If the variable name cannot be found, nothing is returned.
30872
- * @param variableId - the supllied variable identifier to look up such as __CALL_ANI__.
30873
- */
30874
- getVariableById<T extends ArchBaseVariable = ArchBaseVariable>(variableId: string): T;
30875
- /**
30876
- * Returns the flow scoped variable for the supplied fully scoped variable name ( if it exists ). Remember, looking
30877
- * up variables by name is case insensitive. If the variable name cannot be found, nothing is returned.
30878
- * @param variableName - the fully scoped variable name to look up such as Flow.MyVar.
30879
- */
30880
- getVariableByName<T extends ArchBaseVariable = ArchBaseVariable>(variableName: string): T;
30881
- /**
30882
- * Imports the flow content from the supplied content string. This content string should be for a flow of the
30883
- * same type as the one you're importing in to. Upon successful import, the callback function passed in
30884
- * will be called. Importing flow contents in to a flow is something where you should *not* attempt to
30885
- * do work with the flow on which this is being called until the callback is called.
30886
- * @param exportContent - the contents from a flow export.
30887
- * @param [callbackFunction] - a function to call if the export content successfully loaded and configured
30888
- * on this flow. The first parameter passed to the callback function will be this
30889
- * Architect flow instance.
30890
- */
30891
- importFromContentAsync<T extends ArchBaseFlow = ArchBaseFlow>(exportContent: string, callbackFunction?: (...params: any[]) => any): Promise<T>;
30892
- /**
30893
- * Imports the flow content from the supplied file path. Upon successful import, the callback function passed in
30894
- * will be called. Importing flow contents in to a flow is something where you should *not* attempt to
30895
- * do work with the flow on which this is being called until the callback is called.
30896
- * Also note that this method should not be used if running in a browser.
30897
- * @param exportFilePath - the file path to an Architect flow export file that should be imported.
30898
- * @param [callbackFunction] - a function to call if the export content successfully loaded and configured
30899
- * on this flow. The first parameter passed to the callback function will be this
30900
- * Architect flow instance.
30901
- */
30902
- importFromFileAsync<T extends ArchBaseFlow = ArchBaseFlow>(exportFilePath: string, callbackFunction?: (...params: any[]) => any): Promise<T>;
30903
- /**
30904
- * Returns whether or not the flow is created in Genesys Cloud.
30905
- */
30906
- readonly isCreated: boolean;
30907
- /**
30908
- * Returns whether or not the flow is read-only. Flows that have been created locally in
30909
- * scripting but not saved, checked in or published will report that they are not read-only.
30910
- */
30911
- readonly isReadOnly: boolean;
30912
- /**
30913
- * Returns whether or not the flow is secure. That means it contains something that is
30914
- * secure like a secure variable or secure action.
30915
- */
30916
- readonly isSecure: boolean;
30917
- /**
30918
- * Returns true indicating the flow acts as a variable container which means you can
30919
- * add variables to it.
30920
- */
30921
- readonly isVariableContainer: boolean;
30922
- /**
30923
- * The language settings for the flow. This property is now deprecated.
30924
- * Please replace calls to this property with {@link ArchBaseFlow#settingsSupportedLanguages} instead.
30925
- */
30926
- readonly languageSettings: ArchSettingsSupportedLanguagesFlow;
30927
- /**
30928
- * The name of the flow
30929
- */
30930
- name: string;
30931
- /**
30932
- * Publishes the flow. This will do a validate, save, checkin and then publish last. Any of these
30933
- * steps can fail and reject the promise. Operations are not atomic.
30934
- * @param [ensureSearchable] - whether or not to poll after successful publish to ensure that the flow is available for flow
30935
- * search operations such as {@link ArchFactoryFlows#getFlowInfoByFlowNameAsync} or {@link ArchFactoryFlows#getFlowInfoByFlowIdAsync}
30936
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
30937
- * flow instance.
30345
+ * Returns a boolean indicating if there is a saved version of the flow.
30346
+ * We do not expose a versionSaved ArchFlowInfoVersion property as the
30347
+ * actual version information there is mainly useful by Architect itself
30348
+ * internally. At a future date we may add a versionSaved property
30349
+ * if it is needed.
30938
30350
  */
30939
- publishAsync(ensureSearchable?: boolean): Promise<any>;
30351
+ readonly hasSavedVersion: boolean;
30940
30352
  /**
30941
- * Save the current flow configuration, creating the flow if needed.
30942
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
30943
- * flow instance.
30353
+ * Returns true indicating that this is an ArchFlowInfo instance.
30944
30354
  */
30945
- saveAsync(): Promise<any>;
30355
+ readonly isArchFlowInfo: boolean;
30946
30356
  /**
30947
- * Returns the error handling settings for the flow.
30357
+ * Returns whether or not this flow is checked in.
30948
30358
  */
30949
- readonly settingsErrorHandling: ArchSettingsEventErrorFlow;
30359
+ readonly isCheckedIn: boolean;
30950
30360
  /**
30951
- * Returns the action default settings for the flow.
30361
+ * Returns whether or not this flow is locked.
30952
30362
  */
30953
- readonly settingsActionDefaults: ArchSettingsActionDefaults;
30363
+ readonly isLocked: boolean;
30954
30364
  /**
30955
- * The supported language settings for the flow.
30956
- * This method will throw if the flow doesn't support languages. You can check {@link ArchBaseFlow#supportsLanguages} prior
30957
- * to calling this method to see if a flow supports languages or not.
30365
+ * Returns whether or not this flow is locked by another user. Another user
30366
+ * means a Genesys Cloud user other than Genesys Cloud user authenticated for the current
30367
+ * Architect Scripting session.
30958
30368
  */
30959
- readonly settingsSupportedLanguages: ArchSettingsSupportedLanguagesFlow;
30369
+ readonly isLockedByAnotherUser: boolean;
30960
30370
  /**
30961
- * Returns whether or not this flow supports audio channel.
30371
+ * Returns whether or not this flow is locked by the current user. The current user
30372
+ * is the Genesys Cloud user authenticated for the current Architect Scripting session.
30962
30373
  */
30963
- readonly supportsAudio: boolean;
30374
+ readonly isLockedByCurrentUser: boolean;
30964
30375
  /**
30965
- * Returns whether or not this flow supports error handling.
30376
+ * Returns whether or not this flow is published.
30966
30377
  */
30967
- readonly supportsErrorHandling: boolean;
30378
+ readonly isPublished: boolean;
30968
30379
  /**
30969
- * Returns whether or not this flow supports languages. If false, that means you have to configure the flow
30970
- * when creating it to use English United States.
30971
- * Note: At this time this functionality is available while we're determining the needs of workflow and
30972
- * inbound email flow types. This property may go away in a future release of Architect Scripting.
30380
+ * Returns whether or not this is a built-in system flow such as
30381
+ * the 'Default In-Queue Flow'. A system flow in Architect is
30382
+ * one whose version 1.0 logic is pre-configured by Architect
30383
+ * and while it can be customized by flow authors, deleting a
30384
+ * system flow is different from deleting a non-system flow in
30385
+ * that the flow will revert back the default version 1.0 configuration.
30973
30386
  */
30974
- readonly supportsLanguages: boolean;
30387
+ readonly isSystem: boolean;
30975
30388
  /**
30976
- * Returns whether or not this flow supports setting a supported language as the default.
30389
+ * Gets name for the flow contained in this flow info instance.
30977
30390
  */
30978
- readonly supportsDefaultLanguage: boolean;
30391
+ readonly name: string;
30979
30392
  /**
30980
- * Returns a URL for this flow. If the flow has not been created or there is no startup object set on the flow,
30981
- * the returned URL will be blank.
30393
+ * Returns the flow type associated with this flow info. The string values in {@link ArchEnums#FLOW_TYPES}
30394
+ * lists valid values.
30982
30395
  */
30983
- readonly url: string;
30396
+ readonly type: string;
30984
30397
  /**
30985
- * Validates the flow. Promise returns an {@link ArchValidationResults} instance.
30986
- * @returns - On your promise's then handler, the first parameter passed to the then function will be the
30987
- * validation results.
30398
+ * Returns information about the checked in version of the flow. If the flow
30399
+ * is not checked in, nothing is returned.
30988
30400
  */
30989
- validateAsync(): Promise<ArchValidationResults>;
30401
+ readonly versionCheckedIn: ArchFlowInfoVersion;
30990
30402
  /**
30991
- * Returns an array of variables defined at the flow scope for this flow.
30403
+ * Returns information about the published version of the flow. If the flow
30404
+ * is not published, nothing is returned.
30992
30405
  */
30993
- readonly variables: ArchBaseVariable[];
30406
+ readonly versionPublished: ArchFlowInfoVersion;
30994
30407
  /**
30995
30408
  * The identifier string for this object.
30996
30409
  */
@@ -31128,2611 +30541,103 @@ export class ArchFlowInboundChat extends ArchBaseFlowWorkflow {
31128
30541
  isFilterMatch(archFilterObject: ArchFilterObject): boolean;
31129
30542
  }
31130
30543
 
31131
- export class ArchFlowInboundEmail extends ArchBaseFlowWorkflow {
31132
- // constructor(coreInboundEmailViewModel: any);
30544
+ /**
30545
+ * This callback function type is invoked by Architect Scripting where the callback function is passed an Architect
30546
+ * flow info instance such as {@link ArchFlowInfoBasic#getFlowInfoAsync}
30547
+ * @param archFlowInfo - the Architect flow information object.
30548
+ */
30549
+ declare type callbackArchFlowInfo = (archFlowInfo: ArchFlowInfo) => void;
30550
+
30551
+ export class ArchFlowInfoBasic extends ArchBaseObject {
30552
+ // constructor(flowIdNameTypeObject: any);
31133
30553
  /**
31134
- * Returns the display type name string 'ArchFlowInboundEmail'.
30554
+ * Returns the display type name string 'ArchFlowInfoBasic'.
31135
30555
  */
31136
30556
  readonly displayTypeName: string;
31137
30557
  /**
31138
- * Returns true indicating that this is an ArchFlowInboundEmail instance.
30558
+ * A string suitable for logging that contains information about this flow info basic.
31139
30559
  */
31140
- isArchFlowInboundEmail: boolean;
30560
+ readonly logStr: string;
31141
30561
  /**
31142
- * Loads all currently available response library entries.
30562
+ * Returns true indicating that this is an ArchFlowInfo instance.
31143
30563
  */
31144
- static loadResponseLibraryManager: Promise<any>;
30564
+ readonly isArchFlowInfoBasic: boolean;
31145
30565
  /**
31146
- * The inbound email settings for the flow.
30566
+ * Looks up the flow information from this flow info basic instance by the flow identifier.
30567
+ * @param [callbackFunction] - the function to call back if successfully converted. The callback will be passed the looked up ArchFlowInfo instance.
31147
30568
  */
31148
- readonly settingsInboundEmailHandling: ArchSettingsInboundEmailFlow;
30569
+ getFlowInfoAsync(callbackFunction?: callbackArchFlowInfo): Promise<ArchFlowInfoBasic>;
31149
30570
  /**
31150
- * This function deletes the specified state from this flow.
31151
- * @param stateToDelete - the state to delete.
30571
+ * The flow identifier
31152
30572
  */
31153
- deleteState(stateToDelete: ArchState): void;
30573
+ readonly id: string;
31154
30574
  /**
31155
- * Sets the specified state to be the starting state on the flow.
31156
- * @param archState - An Architect Scripting state object.
30575
+ * Gets name for the flow contained in this flow info instance.
31157
30576
  */
31158
- setStartingState(archState: ArchState): void;
30577
+ readonly name: string;
31159
30578
  /**
31160
- * Returns the starting state for this flow.
31161
- * If there is no startup object configured, accessing this property returns null.
30579
+ * Returns the flow type associated with this flow info. The string values in {@link ArchEnums#FLOW_TYPES}
30580
+ * lists valid values.
31162
30581
  */
31163
- readonly startUpObject: ArchState;
30582
+ readonly type: string;
31164
30583
  /**
31165
- * The states in the flow.
30584
+ * This is a string suitable for logging information about this object where it's just the object's type. This is normally used
30585
+ * when logging errors that occur in constructor parameter checking because the scripting object isn't set up and the normal
30586
+ * logging str contents wouldn't be set up.
31166
30587
  */
31167
- readonly states: ArchState[];
30588
+ readonly logStrTypeOnly: string;
31168
30589
  /**
31169
- * This function deletes the specified reusable task from this flow.
31170
- * @param taskToDelete - the task to delete. This must be a reusable task which means the {@link ArchTask#isReusableTask}
31171
- * property on the specified task instance is true.
30590
+ * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true.
30591
+ * @param errorStr - the error string to log.
31172
30592
  */
31173
- deleteTask(taskToDelete: ArchTask): void;
30593
+ logError(errorStr: string): void;
31174
30594
  /**
31175
- * Returns an array of the currently defined reusable tasks for this flow.
30595
+ * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true and then throws
30596
+ * the string in the errorStr parameter.
30597
+ * @param errorStr - the error string to log. This should be a non-blank string.
31176
30598
  */
31177
- readonly tasksReusable: ArchTask[];
30599
+ logErrorAndThrow(errorStr: string): void;
31178
30600
  /**
31179
- * This adds a new variable to the flow.
31180
- * @param name - the name of the variable to add. Remember that variable names must
31181
- * start with a letter and can then be followed by one or more letters, numbers
31182
- * or underscore characters to be valid. Submitting the variable scope on the name
31183
- * is optional. If specified, it must be 'Flow.' in order to be valid since you're
31184
- * adding the variable to a flow. You can also specify 'Slot.' to add a slot variable
31185
- * to the flow as long as the forceSlotVariableCreation parameter is true.
31186
- * @param type - the data type for the new variable. Remember that type must be supported
31187
- * in the flow type for which you're looking to add the variable. If you are
31188
- * not sure if a type is creatable, see the {@link ArchDataType#isScriptCreatableForFlowType} or
31189
- * {@link ArchDataType#isScriptCreatableForFlow} method.
31190
- * @param [description] - the description for the new variable.
31191
- * @param [forceSlotVariableCreation] - if true, will force the creation of a slot variable even when a Slot is not created in the Natural Language Understanding (NLU).
30601
+ * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotes} is true.
30602
+ * @param noteStr - the note string to log. This should be a non-blank string.
31192
30603
  */
31193
- addVariable(name: string, type: ArchDataType, description?: string, forceSlotVariableCreation?: boolean): ArchBaseVariable;
30604
+ logNote(noteStr: string): void;
31194
30605
  /**
31195
- * This deletes the supplied variable from the flow. Remember you can call {@link ArchBaseVariable#canDelete}
31196
- * prior to calling this method to know if the supplied flow scoped variable can be deleted.
31197
- * @param archVariable - the flow scoped variable you wish to delete
31198
- * @returns - true if the variable was removed successfully, false otherwise.
30606
+ * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotesVerbose} is true.
30607
+ * @param noteStr - the note string to log. This should be a non-blank string.
31199
30608
  */
31200
- removeVariable(archVariable: ArchBaseVariable): boolean;
30609
+ logNoteVerbose(noteStr: string): void;
31201
30610
  /**
31202
- * Checkout this flow. This function returns an ArchInfo instance for it to the supplied callback function.
31203
- * @param [forceUnlock] - if true, will force an unlock of the flow.
31204
- * @param [callbackFunction] - a callback function to call if the flow was checked out.
31205
- * @returns - while this method returns a promise, you should use the callback function to perform any processing once the flow is checked out.
30611
+ * Logs a warning to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logWarnings} is true.
30612
+ * @param warningStr - the warning string to log. This should be a non-blank string.
31206
30613
  */
31207
- checkoutAsync(forceUnlock?: boolean, callbackFunction?: callbackVoid): Promise<ArchFlowInfo>;
30614
+ logWarning(warningStr: string): void;
31208
30615
  /**
31209
- * Returns the division associated with this flow.
31210
- * This method first calls {@link ArchOrganizationInfo#areDivisionsAvailable} to ensure that divisions are available.
31211
- * If not available, nothing is returned.
30616
+ * Returns whether or not this Architect Scripting object is a match
30617
+ * for the supplied ArchFilterObject instance.
30618
+ * @param archFilterObject - the object filter to use to determine if it's a match.
31212
30619
  */
31213
- readonly division: ArchDivision;
30620
+ isFilterMatch(archFilterObject: ArchFilterObject): boolean;
30621
+ }
30622
+
30623
+ export class ArchFlowInfoVersion extends ArchBaseObject {
30624
+ // constructor(coreFlowVersionModel: any);
31214
30625
  /**
31215
- * Loads a specific version of the flow. Any previously returned Architect Scripting objects associated with this flow should no
31216
- * longer be considered valid after loading new configuration.
31217
- * @param [flowVersion = "latest"] - the version of the flow to get. Valid values are "latest" to get the latest saved configuration of a flow,
31218
- * a version value such as "2.0" or "2", "debug" to get the currently published debug version configuration of a flow,
31219
- * or "published" to get the currently published version configuration of a flow. If you do not specify a version, then the latest saved configuration will be loaded.
31220
- * @param [callbackFunction] - a callback function to call if the flow was loaded.
31221
- * @returns - while this method returns a promise, you should use the callback function to perform any processing when the flow is loaded.
30626
+ * Returns the display type name string 'ArchFlowInfoVersion'.
31222
30627
  */
31223
- loadAsync(flowVersion?: string, callbackFunction?: callbackVoid): Promise<any>;
30628
+ readonly displayTypeName: string;
31224
30629
  /**
31225
- * Returns a string suitable for logging that describes the flow
30630
+ * A string suitable for logging that contains information about this flow info basic.
31226
30631
  */
31227
30632
  readonly logStr: string;
31228
30633
  /**
31229
- * Unlocks this flow.
31230
- * @param [callbackFunction] - a callback function to call if the flow can be unlocked.
31231
- * @returns - while this method returns a promise, you should use the callback function to perform any processing once this flow is unlocked.
31232
- */
31233
- unlockAsync(callbackFunction?: callbackVoid): Promise<any>;
31234
- /**
31235
- * Helper method that accesses the flow's [settingsSupportedLanguages]{@link ArchBaseFlow#settingsSupportedLanguages} and then calls
31236
- * the [addSupportedLanguage]{@link ArchSettingsSupportedLanguagesFlow#addSupportedLanguage} function on the returned {@link ArchSettingsSupportedLanguagesFlow}
31237
- * value.
31238
- * @param archLanguage - the language to add to supported languages on the flow. Note that any language used as a supported
31239
- * language must have at least one region sub-tag.
31240
- * @param [setAsDefaultLanguage] - if true, the language will be set as the default language on the flow.
31241
- */
31242
- addFlowSupportedLanguage(archLanguage: ArchLanguage, setAsDefaultLanguage?: boolean): ArchSettingsSupportedLanguage;
31243
- /**
31244
- * Checks flow to see if a language can be added in its current state. Some flows may have restrictions
31245
- * if any or more than one can be added.
31246
- */
31247
- canAddSupportedLanguage(): boolean;
31248
- /**
31249
- * Checks in and unlocks the flow for the current user, does a save first
31250
- * Assumes the flow has been created, throws if not
31251
- * @param [ensureSearchable] - whether or not to poll after successful checkin to ensure that the flow is available for flow
31252
- * search operations such as {@link ArchFactoryFlows#getFlowInfoByFlowNameAsync} or {@link ArchFactoryFlows#getFlowInfoByFlowIdAsync}
31253
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
31254
- * flow instance.
31255
- */
31256
- checkInAsync(ensureSearchable?: boolean): Promise<ArchBaseFlow | undefined>;
31257
- /**
31258
- * Creates a new flow on the server and saves its configuration
31259
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
31260
- * flow instance.
31261
- */
31262
- createAsync(): Promise<any>;
31263
- /**
31264
- * Accessing this property returns an object with properties whose keys are data type names and values are
31265
- * {@link ArchDataType} instances.
31266
- */
31267
- readonly dataTypes: any;
31268
- /**
31269
- * The description of the flow
30634
+ * Returns true indicating that this is an ArchFlowInfoVersion instance.
31270
30635
  */
31271
- description: string;
30636
+ readonly isArchFlowInfoVersion: boolean;
31272
30637
  /**
31273
- * Exports the current flow to a file in the specified directory. This destination directory *must* exist
31274
- * for the export to succeed. Note that this uses the file system and should not be used when running in a
31275
- * browser.
31276
- * @param [destinationDir] - the directory where the flow export should be saved.
31277
- * @param [callbackFunction] - the function to call back and pass in the full path where the
31278
- * flow export was saved.
31279
- * @param [flowFormat = ArchEnums.FLOW_FORMAT_TYPES.architect] - the desired flow format to use for the export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export formats. If no format is used,
31280
- * it will default to the Architect format.
31281
- * @param [fileName] - the file name to use for the exported flow. If a file extension is not added to the file name, it will use the default file extension for the desired export type for
31282
- * the desired export format and flow that you are exporting. If the format is YAML, the extension is always '.yaml' regardless of flow type. However, if it is the Architect format, the extension is unique per flow-type.
31283
- * To find the correct file extension for the Architect format, you can either export a flow from the Architect UI or look at the [flow definition]{@link ArchBaseFlow#definition}
31284
- * for a flow type and access the [fileExtension]{@link ArchDefinitionFlow#fileExtension} property to get the value. If an extension is found on the file name other than what is
31285
- * expected, the correct extension will be appended to the end of the exported file as per the logic described previously.
30638
+ * Returns the flow version string such as '1.0'.
31286
30639
  */
31287
- exportToDirAsync(destinationDir?: string, callbackFunction?: callbackExportFullPath, flowFormat?: string, fileName?: string): Promise<string>;
31288
- /**
31289
- * Exports the flow to a JSON object. The object passed back in the callback function
31290
- * will be a JSON object with a content and fileName property where the content holds
31291
- * the flow export contents and the fileName property holds the file name where the
31292
- * export would be written if {@link ArchBaseFlow#exportToDirAsync} is called.
31293
- * @param callbackFunction - the function to call back with the export information contained
31294
- * in the parameter passed to it.
31295
- * @param [flowFormat = archEnums.FLOW_FORMAT_TYPES.architect] - the desired export format to use on an export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export formats. If no format is used,
31296
- * it will default to the Architect format.
31297
- */
31298
- exportToObjectAsync(callbackFunction: callbackExportObject, flowFormat?: string): Promise<ExportInfoType>;
31299
- /**
31300
- * The type of the flow. The string
31301
- * values in {@link ArchEnums#FLOW_TYPES} lists valid flow type values.
31302
- */
31303
- readonly flowType: string;
31304
- /**
31305
- * This function will return the file path where a flow export will be written when calling the {@link ArchBaseFlow#exportToDirAsync}
31306
- * method for the supplied destination directory and export flow format. A typical use case for this function would be
31307
- * to get the export file path prior to calling the {@link ArchBaseFlow#exportToDirAsync} so you could see if the file already exists
31308
- * and decide if you want to perform an export or not since {@link ArchBaseFlow#exportToDirAsync} will attempt to overwrite
31309
- * a file if it already exists. Note that this uses the file system and should not be used when running in a
31310
- * browser.
31311
- * @param [destinationDir] - the directory where the flow export should be written. If no directory path is given, this method uses the
31312
- * current working directory. If a relative path is supplied, it will be resolved relative to the current
31313
- * working directory.
31314
- * @param [flowFormat = ArchEnums.FLOW_FORMAT_TYPES.architect] - the desired flow format to use for the export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export
31315
- * formats. If no format is supplied, it will use the Architect format.
31316
- * @param [fileName] - the file name to use for the exported flow. If a file extension is not added to the file name, it will use the default file extension for the desired export type for
31317
- * the desired export format and flow that you are exporting. If the format is YAML, the extension is always '.yaml' regardless of flow type. However, if it is the Architect format, the extension is unique per flow-type.
31318
- * To find the correct file extension for the Architect format, you can either export a flow from the Architect UI or look at the [flow definition]{@link ArchBaseFlow#definition}
31319
- * for a flow type and access the [fileExtension]{@link ArchDefinitionFlow#fileExtension} property to get the value. If an extension is found on the file name other than what is
31320
- * expected, the correct extension will be appended to the end of the exported file as per the logic described previously.
31321
- */
31322
- getExportFilePath(destinationDir?: string, flowFormat?: string, fileName?: string): string;
31323
- /**
31324
- * Returns the flow scoped variable for the supplied variable identifier ( if it exists ).
31325
- * If the variable name cannot be found, nothing is returned.
31326
- * @param variableId - the supllied variable identifier to look up such as __CALL_ANI__.
31327
- */
31328
- getVariableById<T extends ArchBaseVariable = ArchBaseVariable>(variableId: string): T;
31329
- /**
31330
- * Returns the flow scoped variable for the supplied fully scoped variable name ( if it exists ). Remember, looking
31331
- * up variables by name is case insensitive. If the variable name cannot be found, nothing is returned.
31332
- * @param variableName - the fully scoped variable name to look up such as Flow.MyVar.
31333
- */
31334
- getVariableByName<T extends ArchBaseVariable = ArchBaseVariable>(variableName: string): T;
31335
- /**
31336
- * Imports the flow content from the supplied content string. This content string should be for a flow of the
31337
- * same type as the one you're importing in to. Upon successful import, the callback function passed in
31338
- * will be called. Importing flow contents in to a flow is something where you should *not* attempt to
31339
- * do work with the flow on which this is being called until the callback is called.
31340
- * @param exportContent - the contents from a flow export.
31341
- * @param [callbackFunction] - a function to call if the export content successfully loaded and configured
31342
- * on this flow. The first parameter passed to the callback function will be this
31343
- * Architect flow instance.
31344
- */
31345
- importFromContentAsync<T extends ArchBaseFlow = ArchBaseFlow>(exportContent: string, callbackFunction?: (...params: any[]) => any): Promise<T>;
31346
- /**
31347
- * Imports the flow content from the supplied file path. Upon successful import, the callback function passed in
31348
- * will be called. Importing flow contents in to a flow is something where you should *not* attempt to
31349
- * do work with the flow on which this is being called until the callback is called.
31350
- * Also note that this method should not be used if running in a browser.
31351
- * @param exportFilePath - the file path to an Architect flow export file that should be imported.
31352
- * @param [callbackFunction] - a function to call if the export content successfully loaded and configured
31353
- * on this flow. The first parameter passed to the callback function will be this
31354
- * Architect flow instance.
31355
- */
31356
- importFromFileAsync<T extends ArchBaseFlow = ArchBaseFlow>(exportFilePath: string, callbackFunction?: (...params: any[]) => any): Promise<T>;
31357
- /**
31358
- * Returns whether or not the flow is created in Genesys Cloud.
31359
- */
31360
- readonly isCreated: boolean;
31361
- /**
31362
- * Returns whether or not the flow is read-only. Flows that have been created locally in
31363
- * scripting but not saved, checked in or published will report that they are not read-only.
31364
- */
31365
- readonly isReadOnly: boolean;
31366
- /**
31367
- * Returns whether or not the flow is secure. That means it contains something that is
31368
- * secure like a secure variable or secure action.
31369
- */
31370
- readonly isSecure: boolean;
31371
- /**
31372
- * Returns true indicating the flow acts as a variable container which means you can
31373
- * add variables to it.
31374
- */
31375
- readonly isVariableContainer: boolean;
31376
- /**
31377
- * The language settings for the flow. This property is now deprecated.
31378
- * Please replace calls to this property with {@link ArchBaseFlow#settingsSupportedLanguages} instead.
31379
- */
31380
- readonly languageSettings: ArchSettingsSupportedLanguagesFlow;
31381
- /**
31382
- * The name of the flow
31383
- */
31384
- name: string;
31385
- /**
31386
- * Publishes the flow. This will do a validate, save, checkin and then publish last. Any of these
31387
- * steps can fail and reject the promise. Operations are not atomic.
31388
- * @param [ensureSearchable] - whether or not to poll after successful publish to ensure that the flow is available for flow
31389
- * search operations such as {@link ArchFactoryFlows#getFlowInfoByFlowNameAsync} or {@link ArchFactoryFlows#getFlowInfoByFlowIdAsync}
31390
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
31391
- * flow instance.
31392
- */
31393
- publishAsync(ensureSearchable?: boolean): Promise<any>;
31394
- /**
31395
- * Save the current flow configuration, creating the flow if needed.
31396
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
31397
- * flow instance.
31398
- */
31399
- saveAsync(): Promise<any>;
31400
- /**
31401
- * Returns the error handling settings for the flow.
31402
- */
31403
- readonly settingsErrorHandling: ArchSettingsEventErrorFlow;
31404
- /**
31405
- * Returns the action default settings for the flow.
31406
- */
31407
- readonly settingsActionDefaults: ArchSettingsActionDefaults;
31408
- /**
31409
- * The supported language settings for the flow.
31410
- * This method will throw if the flow doesn't support languages. You can check {@link ArchBaseFlow#supportsLanguages} prior
31411
- * to calling this method to see if a flow supports languages or not.
31412
- */
31413
- readonly settingsSupportedLanguages: ArchSettingsSupportedLanguagesFlow;
31414
- /**
31415
- * Returns whether or not this flow supports audio channel.
31416
- */
31417
- readonly supportsAudio: boolean;
31418
- /**
31419
- * Returns whether or not this flow supports error handling.
31420
- */
31421
- readonly supportsErrorHandling: boolean;
31422
- /**
31423
- * Returns whether or not this flow supports languages. If false, that means you have to configure the flow
31424
- * when creating it to use English United States.
31425
- * Note: At this time this functionality is available while we're determining the needs of workflow and
31426
- * inbound email flow types. This property may go away in a future release of Architect Scripting.
31427
- */
31428
- readonly supportsLanguages: boolean;
31429
- /**
31430
- * Returns whether or not this flow supports setting a supported language as the default.
31431
- */
31432
- readonly supportsDefaultLanguage: boolean;
31433
- /**
31434
- * Returns a URL for this flow. If the flow has not been created or there is no startup object set on the flow,
31435
- * the returned URL will be blank.
31436
- */
31437
- readonly url: string;
31438
- /**
31439
- * Validates the flow. Promise returns an {@link ArchValidationResults} instance.
31440
- * @returns - On your promise's then handler, the first parameter passed to the then function will be the
31441
- * validation results.
31442
- */
31443
- validateAsync(): Promise<ArchValidationResults>;
31444
- /**
31445
- * Returns an array of variables defined at the flow scope for this flow.
31446
- */
31447
- readonly variables: ArchBaseVariable[];
31448
- /**
31449
- * The identifier string for this object.
31450
- */
31451
- readonly id: string;
31452
- /**
31453
- * Returns whether or not the id property may be blank or undefined for this object. For example, the returned settings from {@link ArchMenu#settingsMenu}
31454
- * will have a blank identifier along with the settings returned from {@link ArchMenu#settingsSpeechRec}. Note that this is
31455
- * an extremely rare case.
31456
- */
31457
- readonly idMayBeBlank: string;
31458
- /**
31459
- * Returns true indicating that this is an ArchBaseCoreObject instance.
31460
- */
31461
- readonly isArchBaseCoreObject: boolean;
31462
- /**
31463
- * This method iterates over this object and ArchBaseCoreObject instances
31464
- * within it. For each object it will call the {@link ArchBaseObject#isFilterMatch} method
31465
- * with a filter and call the supplied callback function if isMatch returns true.
31466
- * The callback will be passed an {@link ArchTraverseInfo} with details
31467
- * about the match such as the match object itself along with current contextual
31468
- * information such as the object hierarchy for the match object relative to
31469
- * the object on which this traverse call is being made.
31470
- *
31471
- * The traverse [filter]{@link ArchFilterObject} is one which you can create
31472
- * by calling {@link ArchFactoryFilters#createFilterObject} and then add desired clauses
31473
- * or clause containers to it. If not specified, this function will use a
31474
- * [default filter]{@link ArchFactoryFilters#createFilterTraverseDefault}.
31475
- *
31476
- * Here is an example that does a simple flow traversal using the default
31477
- * filter and logs information about objects in the callback from the
31478
- * traverse object that's passed back:
31479
- *
31480
- * ```
31481
- * archInboundCallFlow.traverse(function(traverseInfo) {
31482
- * archLogging.logNote(' Object : ' + traverseInfo.matchObject.logStr);
31483
- * archLogging.logNote(' Hierarchy: ' + traverseInfo.context.hierarchyStr);
31484
- * });
31485
- * ```
31486
- * This might be enough for most uses and you can check various aspects
31487
- * about the object in the callback such as "is this an Architect action?" by
31488
- * seeing if traverseInfo.matchObject.isArchBaseAction is true. You can specify
31489
- * a filter for the traversal code to use as well and only have it call your
31490
- * callback when the object's {@link ArchBaseCoreObject#isFilterMatch} method returns true for
31491
- * the filter. Here's an example that creates a filter for callbacks on
31492
- * [any type of transfer action]{@link ArchBaseActionTransfer}, any
31493
- * [decision action]{@link ArchActionDecision} or objects whose name
31494
- * property case insensitively matches the word 'foo'. While this could all be done
31495
- * with one property callback clause the example will use multiple clauses for
31496
- * the sake of simplicity:
31497
- * ```
31498
- * const myTraverseFilter = filterFactory.createFilterObject(archEnums.FILTER_CONTAINER_OPERATORS.or);
31499
- * myTraverseFilter.addClausePropertyValueEquals('isArchBaseActionTransfer', true);
31500
- * myTraverseFilter.addClausePropertyValueEquals('isArchActionDecision', true);
31501
- * myTraverseFilter.addClausePropertyCallback('name', function(propValue, archContainingObject, propName) {
31502
- * // We fully spelled out the function signature above but archContainingObject and propName are
31503
- * // not needed in this case. The archContainingObject is the object that contains the
31504
- * // property and propName is the property name itself. We pass in propName because the same
31505
- * // function could be used for multiple property callback clauses.
31506
- * // Remember to return a boolean true, false or undefined from ths callback. :)
31507
- * return propValue && propValue.toLowerCase() === 'foo';
31508
- * });
31509
- * archTask.traverse(function(traverseContext) {
31510
- * // You will only be called back here for ArchBaseCoreObject instances that
31511
- * // have the isArchBaseActionTransfer or isArchActionDecision property values equal to true.
31512
- * }, myTraverseFilter);
31513
- * ```
31514
- * If you supply a filter with no clauses, this tells the traverse method to
31515
- * call the supplied callback function for every {@link ArchBaseCoreObject} it traverses.
31516
- *
31517
- * If you want traversal itself to stop after a callback, simply return boolean
31518
- * false from the callback function you supply to the traverse call.
31519
- *
31520
- * The traverse method does not process deprecated property names such as [orgId]{@link ArchSession#orgId},
31521
- * [orgName]{@link ArchSession#orgName} or [languageSettings]{@link ArchBaseFlow#languageSettings}. Additionally
31522
- * it does not traverse in to properties that would "jump out" of the current traversal. An example of this
31523
- * would be if the code was traversing an {@link ArchActionJumpToMenu} action that it would not start traversing
31524
- * in to the menu that it jumps to. Another example would be a {@link ArchActionChangeState} action where
31525
- * it would not traverse in to the target state of the action. This also means traversal does not traverse
31526
- * in to the {@link ArchBaseValue#flowLevelDefault} property.
31527
- *
31528
- * And lastly, as Scripting evolves over time with new versions, you can expect to get callbacks for new object
31529
- * types such as new actions or new properties on objects. As such, it's important not to assume any particular
31530
- * order in callbacks to keep code most compatible with traversal callbacks. Or if you use inequality checks in filter
31531
- * clauses remember that new "stuff" may satisfy an inequality check which may or may not be anticipated in your logic.
31532
- *
31533
- * Note: This traverse method is a helper method and is very handy for iterating over Architect Scripting
31534
- * objects and their properties in a generic fashion with filtering capabilities. Obviously you can write
31535
- * your own custom traversal code if this implementation doesn't cut it for some reason. :)
31536
- *
31537
- * This function returns the number of times it called the callback function.
31538
- * @param callbackFunction - the callback function to call for objects that match the traverse filter.
31539
- * @param [traverseFilter = {@link ArchFactoryFilters#createFilterTraverseDefault}] - the filter to use when performing the traversal to determine which
31540
- * {@link ArchBaseCoreObject} instances you wish to be called back for. If no
31541
- * filter is specified, this function will call {@link ArchFactoryFilters#createFilterTraverseDefault} and
31542
- * use that traversal default filter. The wantArchBaseValues parameter on that call is set to true.
31543
- */
31544
- traverse(callbackFunction: callbackTraverseInfo, traverseFilter?: ArchFilterObject): number;
31545
- /**
31546
- * This is a string suitable for logging information about this object where it's just the object's type. This is normally used
31547
- * when logging errors that occur in constructor parameter checking because the scripting object isn't set up and the normal
31548
- * logging str contents wouldn't be set up.
31549
- */
31550
- readonly logStrTypeOnly: string;
31551
- /**
31552
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true.
31553
- * @param errorStr - the error string to log.
31554
- */
31555
- logError(errorStr: string): void;
31556
- /**
31557
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true and then throws
31558
- * the string in the errorStr parameter.
31559
- * @param errorStr - the error string to log. This should be a non-blank string.
31560
- */
31561
- logErrorAndThrow(errorStr: string): void;
31562
- /**
31563
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotes} is true.
31564
- * @param noteStr - the note string to log. This should be a non-blank string.
31565
- */
31566
- logNote(noteStr: string): void;
31567
- /**
31568
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotesVerbose} is true.
31569
- * @param noteStr - the note string to log. This should be a non-blank string.
31570
- */
31571
- logNoteVerbose(noteStr: string): void;
31572
- /**
31573
- * Logs a warning to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logWarnings} is true.
31574
- * @param warningStr - the warning string to log. This should be a non-blank string.
31575
- */
31576
- logWarning(warningStr: string): void;
31577
- /**
31578
- * Returns whether or not this Architect Scripting object is a match
31579
- * for the supplied ArchFilterObject instance.
31580
- * @param archFilterObject - the object filter to use to determine if it's a match.
31581
- */
31582
- isFilterMatch(archFilterObject: ArchFilterObject): boolean;
31583
- }
31584
-
31585
- export class ArchFlowInboundShortMessage extends ArchBaseFlowWorkflow {
31586
- // constructor(coreInboundShortMessageViewModel: any);
31587
- /**
31588
- * Returns the display type name string 'ArchFlowInboundShortMessage'.
31589
- */
31590
- readonly displayTypeName: string;
31591
- /**
31592
- * Returns true indicating that this is an ArchFlowInboundShortMessage instance.
31593
- */
31594
- readonly isArchFlowInboundShortMessage: boolean;
31595
- /**
31596
- * This function deletes the specified state from this flow.
31597
- * @param stateToDelete - the state to delete.
31598
- */
31599
- deleteState(stateToDelete: ArchState): void;
31600
- /**
31601
- * Sets the specified state to be the starting state on the flow.
31602
- * @param archState - An Architect Scripting state object.
31603
- */
31604
- setStartingState(archState: ArchState): void;
31605
- /**
31606
- * Returns the starting state for this flow.
31607
- * If there is no startup object configured, accessing this property returns null.
31608
- */
31609
- readonly startUpObject: ArchState;
31610
- /**
31611
- * The states in the flow.
31612
- */
31613
- readonly states: ArchState[];
31614
- /**
31615
- * This function deletes the specified reusable task from this flow.
31616
- * @param taskToDelete - the task to delete. This must be a reusable task which means the {@link ArchTask#isReusableTask}
31617
- * property on the specified task instance is true.
31618
- */
31619
- deleteTask(taskToDelete: ArchTask): void;
31620
- /**
31621
- * Returns an array of the currently defined reusable tasks for this flow.
31622
- */
31623
- readonly tasksReusable: ArchTask[];
31624
- /**
31625
- * This adds a new variable to the flow.
31626
- * @param name - the name of the variable to add. Remember that variable names must
31627
- * start with a letter and can then be followed by one or more letters, numbers
31628
- * or underscore characters to be valid. Submitting the variable scope on the name
31629
- * is optional. If specified, it must be 'Flow.' in order to be valid since you're
31630
- * adding the variable to a flow. You can also specify 'Slot.' to add a slot variable
31631
- * to the flow as long as the forceSlotVariableCreation parameter is true.
31632
- * @param type - the data type for the new variable. Remember that type must be supported
31633
- * in the flow type for which you're looking to add the variable. If you are
31634
- * not sure if a type is creatable, see the {@link ArchDataType#isScriptCreatableForFlowType} or
31635
- * {@link ArchDataType#isScriptCreatableForFlow} method.
31636
- * @param [description] - the description for the new variable.
31637
- * @param [forceSlotVariableCreation] - if true, will force the creation of a slot variable even when a Slot is not created in the Natural Language Understanding (NLU).
31638
- */
31639
- addVariable(name: string, type: ArchDataType, description?: string, forceSlotVariableCreation?: boolean): ArchBaseVariable;
31640
- /**
31641
- * This deletes the supplied variable from the flow. Remember you can call {@link ArchBaseVariable#canDelete}
31642
- * prior to calling this method to know if the supplied flow scoped variable can be deleted.
31643
- * @param archVariable - the flow scoped variable you wish to delete
31644
- * @returns - true if the variable was removed successfully, false otherwise.
31645
- */
31646
- removeVariable(archVariable: ArchBaseVariable): boolean;
31647
- /**
31648
- * Checkout this flow. This function returns an ArchInfo instance for it to the supplied callback function.
31649
- * @param [forceUnlock] - if true, will force an unlock of the flow.
31650
- * @param [callbackFunction] - a callback function to call if the flow was checked out.
31651
- * @returns - while this method returns a promise, you should use the callback function to perform any processing once the flow is checked out.
31652
- */
31653
- checkoutAsync(forceUnlock?: boolean, callbackFunction?: callbackVoid): Promise<ArchFlowInfo>;
31654
- /**
31655
- * Returns the division associated with this flow.
31656
- * This method first calls {@link ArchOrganizationInfo#areDivisionsAvailable} to ensure that divisions are available.
31657
- * If not available, nothing is returned.
31658
- */
31659
- readonly division: ArchDivision;
31660
- /**
31661
- * Loads a specific version of the flow. Any previously returned Architect Scripting objects associated with this flow should no
31662
- * longer be considered valid after loading new configuration.
31663
- * @param [flowVersion = "latest"] - the version of the flow to get. Valid values are "latest" to get the latest saved configuration of a flow,
31664
- * a version value such as "2.0" or "2", "debug" to get the currently published debug version configuration of a flow,
31665
- * or "published" to get the currently published version configuration of a flow. If you do not specify a version, then the latest saved configuration will be loaded.
31666
- * @param [callbackFunction] - a callback function to call if the flow was loaded.
31667
- * @returns - while this method returns a promise, you should use the callback function to perform any processing when the flow is loaded.
31668
- */
31669
- loadAsync(flowVersion?: string, callbackFunction?: callbackVoid): Promise<any>;
31670
- /**
31671
- * Returns a string suitable for logging that describes the flow
31672
- */
31673
- readonly logStr: string;
31674
- /**
31675
- * Unlocks this flow.
31676
- * @param [callbackFunction] - a callback function to call if the flow can be unlocked.
31677
- * @returns - while this method returns a promise, you should use the callback function to perform any processing once this flow is unlocked.
31678
- */
31679
- unlockAsync(callbackFunction?: callbackVoid): Promise<any>;
31680
- /**
31681
- * Helper method that accesses the flow's [settingsSupportedLanguages]{@link ArchBaseFlow#settingsSupportedLanguages} and then calls
31682
- * the [addSupportedLanguage]{@link ArchSettingsSupportedLanguagesFlow#addSupportedLanguage} function on the returned {@link ArchSettingsSupportedLanguagesFlow}
31683
- * value.
31684
- * @param archLanguage - the language to add to supported languages on the flow. Note that any language used as a supported
31685
- * language must have at least one region sub-tag.
31686
- * @param [setAsDefaultLanguage] - if true, the language will be set as the default language on the flow.
31687
- */
31688
- addFlowSupportedLanguage(archLanguage: ArchLanguage, setAsDefaultLanguage?: boolean): ArchSettingsSupportedLanguage;
31689
- /**
31690
- * Checks flow to see if a language can be added in its current state. Some flows may have restrictions
31691
- * if any or more than one can be added.
31692
- */
31693
- canAddSupportedLanguage(): boolean;
31694
- /**
31695
- * Checks in and unlocks the flow for the current user, does a save first
31696
- * Assumes the flow has been created, throws if not
31697
- * @param [ensureSearchable] - whether or not to poll after successful checkin to ensure that the flow is available for flow
31698
- * search operations such as {@link ArchFactoryFlows#getFlowInfoByFlowNameAsync} or {@link ArchFactoryFlows#getFlowInfoByFlowIdAsync}
31699
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
31700
- * flow instance.
31701
- */
31702
- checkInAsync(ensureSearchable?: boolean): Promise<ArchBaseFlow | undefined>;
31703
- /**
31704
- * Creates a new flow on the server and saves its configuration
31705
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
31706
- * flow instance.
31707
- */
31708
- createAsync(): Promise<any>;
31709
- /**
31710
- * Accessing this property returns an object with properties whose keys are data type names and values are
31711
- * {@link ArchDataType} instances.
31712
- */
31713
- readonly dataTypes: any;
31714
- /**
31715
- * The description of the flow
31716
- */
31717
- description: string;
31718
- /**
31719
- * Exports the current flow to a file in the specified directory. This destination directory *must* exist
31720
- * for the export to succeed. Note that this uses the file system and should not be used when running in a
31721
- * browser.
31722
- * @param [destinationDir] - the directory where the flow export should be saved.
31723
- * @param [callbackFunction] - the function to call back and pass in the full path where the
31724
- * flow export was saved.
31725
- * @param [flowFormat = ArchEnums.FLOW_FORMAT_TYPES.architect] - the desired flow format to use for the export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export formats. If no format is used,
31726
- * it will default to the Architect format.
31727
- * @param [fileName] - the file name to use for the exported flow. If a file extension is not added to the file name, it will use the default file extension for the desired export type for
31728
- * the desired export format and flow that you are exporting. If the format is YAML, the extension is always '.yaml' regardless of flow type. However, if it is the Architect format, the extension is unique per flow-type.
31729
- * To find the correct file extension for the Architect format, you can either export a flow from the Architect UI or look at the [flow definition]{@link ArchBaseFlow#definition}
31730
- * for a flow type and access the [fileExtension]{@link ArchDefinitionFlow#fileExtension} property to get the value. If an extension is found on the file name other than what is
31731
- * expected, the correct extension will be appended to the end of the exported file as per the logic described previously.
31732
- */
31733
- exportToDirAsync(destinationDir?: string, callbackFunction?: callbackExportFullPath, flowFormat?: string, fileName?: string): Promise<string>;
31734
- /**
31735
- * Exports the flow to a JSON object. The object passed back in the callback function
31736
- * will be a JSON object with a content and fileName property where the content holds
31737
- * the flow export contents and the fileName property holds the file name where the
31738
- * export would be written if {@link ArchBaseFlow#exportToDirAsync} is called.
31739
- * @param callbackFunction - the function to call back with the export information contained
31740
- * in the parameter passed to it.
31741
- * @param [flowFormat = archEnums.FLOW_FORMAT_TYPES.architect] - the desired export format to use on an export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export formats. If no format is used,
31742
- * it will default to the Architect format.
31743
- */
31744
- exportToObjectAsync(callbackFunction: callbackExportObject, flowFormat?: string): Promise<ExportInfoType>;
31745
- /**
31746
- * The type of the flow. The string
31747
- * values in {@link ArchEnums#FLOW_TYPES} lists valid flow type values.
31748
- */
31749
- readonly flowType: string;
31750
- /**
31751
- * This function will return the file path where a flow export will be written when calling the {@link ArchBaseFlow#exportToDirAsync}
31752
- * method for the supplied destination directory and export flow format. A typical use case for this function would be
31753
- * to get the export file path prior to calling the {@link ArchBaseFlow#exportToDirAsync} so you could see if the file already exists
31754
- * and decide if you want to perform an export or not since {@link ArchBaseFlow#exportToDirAsync} will attempt to overwrite
31755
- * a file if it already exists. Note that this uses the file system and should not be used when running in a
31756
- * browser.
31757
- * @param [destinationDir] - the directory where the flow export should be written. If no directory path is given, this method uses the
31758
- * current working directory. If a relative path is supplied, it will be resolved relative to the current
31759
- * working directory.
31760
- * @param [flowFormat = ArchEnums.FLOW_FORMAT_TYPES.architect] - the desired flow format to use for the export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export
31761
- * formats. If no format is supplied, it will use the Architect format.
31762
- * @param [fileName] - the file name to use for the exported flow. If a file extension is not added to the file name, it will use the default file extension for the desired export type for
31763
- * the desired export format and flow that you are exporting. If the format is YAML, the extension is always '.yaml' regardless of flow type. However, if it is the Architect format, the extension is unique per flow-type.
31764
- * To find the correct file extension for the Architect format, you can either export a flow from the Architect UI or look at the [flow definition]{@link ArchBaseFlow#definition}
31765
- * for a flow type and access the [fileExtension]{@link ArchDefinitionFlow#fileExtension} property to get the value. If an extension is found on the file name other than what is
31766
- * expected, the correct extension will be appended to the end of the exported file as per the logic described previously.
31767
- */
31768
- getExportFilePath(destinationDir?: string, flowFormat?: string, fileName?: string): string;
31769
- /**
31770
- * Returns the flow scoped variable for the supplied variable identifier ( if it exists ).
31771
- * If the variable name cannot be found, nothing is returned.
31772
- * @param variableId - the supllied variable identifier to look up such as __CALL_ANI__.
31773
- */
31774
- getVariableById<T extends ArchBaseVariable = ArchBaseVariable>(variableId: string): T;
31775
- /**
31776
- * Returns the flow scoped variable for the supplied fully scoped variable name ( if it exists ). Remember, looking
31777
- * up variables by name is case insensitive. If the variable name cannot be found, nothing is returned.
31778
- * @param variableName - the fully scoped variable name to look up such as Flow.MyVar.
31779
- */
31780
- getVariableByName<T extends ArchBaseVariable = ArchBaseVariable>(variableName: string): T;
31781
- /**
31782
- * Imports the flow content from the supplied content string. This content string should be for a flow of the
31783
- * same type as the one you're importing in to. Upon successful import, the callback function passed in
31784
- * will be called. Importing flow contents in to a flow is something where you should *not* attempt to
31785
- * do work with the flow on which this is being called until the callback is called.
31786
- * @param exportContent - the contents from a flow export.
31787
- * @param [callbackFunction] - a function to call if the export content successfully loaded and configured
31788
- * on this flow. The first parameter passed to the callback function will be this
31789
- * Architect flow instance.
31790
- */
31791
- importFromContentAsync<T extends ArchBaseFlow = ArchBaseFlow>(exportContent: string, callbackFunction?: (...params: any[]) => any): Promise<T>;
31792
- /**
31793
- * Imports the flow content from the supplied file path. Upon successful import, the callback function passed in
31794
- * will be called. Importing flow contents in to a flow is something where you should *not* attempt to
31795
- * do work with the flow on which this is being called until the callback is called.
31796
- * Also note that this method should not be used if running in a browser.
31797
- * @param exportFilePath - the file path to an Architect flow export file that should be imported.
31798
- * @param [callbackFunction] - a function to call if the export content successfully loaded and configured
31799
- * on this flow. The first parameter passed to the callback function will be this
31800
- * Architect flow instance.
31801
- */
31802
- importFromFileAsync<T extends ArchBaseFlow = ArchBaseFlow>(exportFilePath: string, callbackFunction?: (...params: any[]) => any): Promise<T>;
31803
- /**
31804
- * Returns whether or not the flow is created in Genesys Cloud.
31805
- */
31806
- readonly isCreated: boolean;
31807
- /**
31808
- * Returns whether or not the flow is read-only. Flows that have been created locally in
31809
- * scripting but not saved, checked in or published will report that they are not read-only.
31810
- */
31811
- readonly isReadOnly: boolean;
31812
- /**
31813
- * Returns whether or not the flow is secure. That means it contains something that is
31814
- * secure like a secure variable or secure action.
31815
- */
31816
- readonly isSecure: boolean;
31817
- /**
31818
- * Returns true indicating the flow acts as a variable container which means you can
31819
- * add variables to it.
31820
- */
31821
- readonly isVariableContainer: boolean;
31822
- /**
31823
- * The language settings for the flow. This property is now deprecated.
31824
- * Please replace calls to this property with {@link ArchBaseFlow#settingsSupportedLanguages} instead.
31825
- */
31826
- readonly languageSettings: ArchSettingsSupportedLanguagesFlow;
31827
- /**
31828
- * The name of the flow
31829
- */
31830
- name: string;
31831
- /**
31832
- * Publishes the flow. This will do a validate, save, checkin and then publish last. Any of these
31833
- * steps can fail and reject the promise. Operations are not atomic.
31834
- * @param [ensureSearchable] - whether or not to poll after successful publish to ensure that the flow is available for flow
31835
- * search operations such as {@link ArchFactoryFlows#getFlowInfoByFlowNameAsync} or {@link ArchFactoryFlows#getFlowInfoByFlowIdAsync}
31836
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
31837
- * flow instance.
31838
- */
31839
- publishAsync(ensureSearchable?: boolean): Promise<any>;
31840
- /**
31841
- * Save the current flow configuration, creating the flow if needed.
31842
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
31843
- * flow instance.
31844
- */
31845
- saveAsync(): Promise<any>;
31846
- /**
31847
- * Returns the error handling settings for the flow.
31848
- */
31849
- readonly settingsErrorHandling: ArchSettingsEventErrorFlow;
31850
- /**
31851
- * Returns the action default settings for the flow.
31852
- */
31853
- readonly settingsActionDefaults: ArchSettingsActionDefaults;
31854
- /**
31855
- * The supported language settings for the flow.
31856
- * This method will throw if the flow doesn't support languages. You can check {@link ArchBaseFlow#supportsLanguages} prior
31857
- * to calling this method to see if a flow supports languages or not.
31858
- */
31859
- readonly settingsSupportedLanguages: ArchSettingsSupportedLanguagesFlow;
31860
- /**
31861
- * Returns whether or not this flow supports audio channel.
31862
- */
31863
- readonly supportsAudio: boolean;
31864
- /**
31865
- * Returns whether or not this flow supports error handling.
31866
- */
31867
- readonly supportsErrorHandling: boolean;
31868
- /**
31869
- * Returns whether or not this flow supports languages. If false, that means you have to configure the flow
31870
- * when creating it to use English United States.
31871
- * Note: At this time this functionality is available while we're determining the needs of workflow and
31872
- * inbound email flow types. This property may go away in a future release of Architect Scripting.
31873
- */
31874
- readonly supportsLanguages: boolean;
31875
- /**
31876
- * Returns whether or not this flow supports setting a supported language as the default.
31877
- */
31878
- readonly supportsDefaultLanguage: boolean;
31879
- /**
31880
- * Returns a URL for this flow. If the flow has not been created or there is no startup object set on the flow,
31881
- * the returned URL will be blank.
31882
- */
31883
- readonly url: string;
31884
- /**
31885
- * Validates the flow. Promise returns an {@link ArchValidationResults} instance.
31886
- * @returns - On your promise's then handler, the first parameter passed to the then function will be the
31887
- * validation results.
31888
- */
31889
- validateAsync(): Promise<ArchValidationResults>;
31890
- /**
31891
- * Returns an array of variables defined at the flow scope for this flow.
31892
- */
31893
- readonly variables: ArchBaseVariable[];
31894
- /**
31895
- * The identifier string for this object.
31896
- */
31897
- readonly id: string;
31898
- /**
31899
- * Returns whether or not the id property may be blank or undefined for this object. For example, the returned settings from {@link ArchMenu#settingsMenu}
31900
- * will have a blank identifier along with the settings returned from {@link ArchMenu#settingsSpeechRec}. Note that this is
31901
- * an extremely rare case.
31902
- */
31903
- readonly idMayBeBlank: string;
31904
- /**
31905
- * Returns true indicating that this is an ArchBaseCoreObject instance.
31906
- */
31907
- readonly isArchBaseCoreObject: boolean;
31908
- /**
31909
- * This method iterates over this object and ArchBaseCoreObject instances
31910
- * within it. For each object it will call the {@link ArchBaseObject#isFilterMatch} method
31911
- * with a filter and call the supplied callback function if isMatch returns true.
31912
- * The callback will be passed an {@link ArchTraverseInfo} with details
31913
- * about the match such as the match object itself along with current contextual
31914
- * information such as the object hierarchy for the match object relative to
31915
- * the object on which this traverse call is being made.
31916
- *
31917
- * The traverse [filter]{@link ArchFilterObject} is one which you can create
31918
- * by calling {@link ArchFactoryFilters#createFilterObject} and then add desired clauses
31919
- * or clause containers to it. If not specified, this function will use a
31920
- * [default filter]{@link ArchFactoryFilters#createFilterTraverseDefault}.
31921
- *
31922
- * Here is an example that does a simple flow traversal using the default
31923
- * filter and logs information about objects in the callback from the
31924
- * traverse object that's passed back:
31925
- *
31926
- * ```
31927
- * archInboundCallFlow.traverse(function(traverseInfo) {
31928
- * archLogging.logNote(' Object : ' + traverseInfo.matchObject.logStr);
31929
- * archLogging.logNote(' Hierarchy: ' + traverseInfo.context.hierarchyStr);
31930
- * });
31931
- * ```
31932
- * This might be enough for most uses and you can check various aspects
31933
- * about the object in the callback such as "is this an Architect action?" by
31934
- * seeing if traverseInfo.matchObject.isArchBaseAction is true. You can specify
31935
- * a filter for the traversal code to use as well and only have it call your
31936
- * callback when the object's {@link ArchBaseCoreObject#isFilterMatch} method returns true for
31937
- * the filter. Here's an example that creates a filter for callbacks on
31938
- * [any type of transfer action]{@link ArchBaseActionTransfer}, any
31939
- * [decision action]{@link ArchActionDecision} or objects whose name
31940
- * property case insensitively matches the word 'foo'. While this could all be done
31941
- * with one property callback clause the example will use multiple clauses for
31942
- * the sake of simplicity:
31943
- * ```
31944
- * const myTraverseFilter = filterFactory.createFilterObject(archEnums.FILTER_CONTAINER_OPERATORS.or);
31945
- * myTraverseFilter.addClausePropertyValueEquals('isArchBaseActionTransfer', true);
31946
- * myTraverseFilter.addClausePropertyValueEquals('isArchActionDecision', true);
31947
- * myTraverseFilter.addClausePropertyCallback('name', function(propValue, archContainingObject, propName) {
31948
- * // We fully spelled out the function signature above but archContainingObject and propName are
31949
- * // not needed in this case. The archContainingObject is the object that contains the
31950
- * // property and propName is the property name itself. We pass in propName because the same
31951
- * // function could be used for multiple property callback clauses.
31952
- * // Remember to return a boolean true, false or undefined from ths callback. :)
31953
- * return propValue && propValue.toLowerCase() === 'foo';
31954
- * });
31955
- * archTask.traverse(function(traverseContext) {
31956
- * // You will only be called back here for ArchBaseCoreObject instances that
31957
- * // have the isArchBaseActionTransfer or isArchActionDecision property values equal to true.
31958
- * }, myTraverseFilter);
31959
- * ```
31960
- * If you supply a filter with no clauses, this tells the traverse method to
31961
- * call the supplied callback function for every {@link ArchBaseCoreObject} it traverses.
31962
- *
31963
- * If you want traversal itself to stop after a callback, simply return boolean
31964
- * false from the callback function you supply to the traverse call.
31965
- *
31966
- * The traverse method does not process deprecated property names such as [orgId]{@link ArchSession#orgId},
31967
- * [orgName]{@link ArchSession#orgName} or [languageSettings]{@link ArchBaseFlow#languageSettings}. Additionally
31968
- * it does not traverse in to properties that would "jump out" of the current traversal. An example of this
31969
- * would be if the code was traversing an {@link ArchActionJumpToMenu} action that it would not start traversing
31970
- * in to the menu that it jumps to. Another example would be a {@link ArchActionChangeState} action where
31971
- * it would not traverse in to the target state of the action. This also means traversal does not traverse
31972
- * in to the {@link ArchBaseValue#flowLevelDefault} property.
31973
- *
31974
- * And lastly, as Scripting evolves over time with new versions, you can expect to get callbacks for new object
31975
- * types such as new actions or new properties on objects. As such, it's important not to assume any particular
31976
- * order in callbacks to keep code most compatible with traversal callbacks. Or if you use inequality checks in filter
31977
- * clauses remember that new "stuff" may satisfy an inequality check which may or may not be anticipated in your logic.
31978
- *
31979
- * Note: This traverse method is a helper method and is very handy for iterating over Architect Scripting
31980
- * objects and their properties in a generic fashion with filtering capabilities. Obviously you can write
31981
- * your own custom traversal code if this implementation doesn't cut it for some reason. :)
31982
- *
31983
- * This function returns the number of times it called the callback function.
31984
- * @param callbackFunction - the callback function to call for objects that match the traverse filter.
31985
- * @param [traverseFilter = {@link ArchFactoryFilters#createFilterTraverseDefault}] - the filter to use when performing the traversal to determine which
31986
- * {@link ArchBaseCoreObject} instances you wish to be called back for. If no
31987
- * filter is specified, this function will call {@link ArchFactoryFilters#createFilterTraverseDefault} and
31988
- * use that traversal default filter. The wantArchBaseValues parameter on that call is set to true.
31989
- */
31990
- traverse(callbackFunction: callbackTraverseInfo, traverseFilter?: ArchFilterObject): number;
31991
- /**
31992
- * This is a string suitable for logging information about this object where it's just the object's type. This is normally used
31993
- * when logging errors that occur in constructor parameter checking because the scripting object isn't set up and the normal
31994
- * logging str contents wouldn't be set up.
31995
- */
31996
- readonly logStrTypeOnly: string;
31997
- /**
31998
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true.
31999
- * @param errorStr - the error string to log.
32000
- */
32001
- logError(errorStr: string): void;
32002
- /**
32003
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true and then throws
32004
- * the string in the errorStr parameter.
32005
- * @param errorStr - the error string to log. This should be a non-blank string.
32006
- */
32007
- logErrorAndThrow(errorStr: string): void;
32008
- /**
32009
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotes} is true.
32010
- * @param noteStr - the note string to log. This should be a non-blank string.
32011
- */
32012
- logNote(noteStr: string): void;
32013
- /**
32014
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotesVerbose} is true.
32015
- * @param noteStr - the note string to log. This should be a non-blank string.
32016
- */
32017
- logNoteVerbose(noteStr: string): void;
32018
- /**
32019
- * Logs a warning to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logWarnings} is true.
32020
- * @param warningStr - the warning string to log. This should be a non-blank string.
32021
- */
32022
- logWarning(warningStr: string): void;
32023
- /**
32024
- * Returns whether or not this Architect Scripting object is a match
32025
- * for the supplied ArchFilterObject instance.
32026
- * @param archFilterObject - the object filter to use to determine if it's a match.
32027
- */
32028
- isFilterMatch(archFilterObject: ArchFilterObject): boolean;
32029
- }
32030
-
32031
- export class ArchFlowInfo extends ArchBaseCoreObjectWithId {
32032
- // constructor(coreFlowInfoViewModel: any);
32033
- /**
32034
- * Returns the display type name string 'ArchFlowInfo'.
32035
- */
32036
- readonly displayTypeName: string;
32037
- /**
32038
- * A string suitable for logging that contains information about this flow info basic.
32039
- */
32040
- readonly logStr: string;
32041
- /**
32042
- * Returns a boolean indicating if there is a saved version of the flow.
32043
- * We do not expose a versionSaved ArchFlowInfoVersion property as the
32044
- * actual version information there is mainly useful by Architect itself
32045
- * internally. At a future date we may add a versionSaved property
32046
- * if it is needed.
32047
- */
32048
- readonly hasSavedVersion: boolean;
32049
- /**
32050
- * Returns true indicating that this is an ArchFlowInfo instance.
32051
- */
32052
- readonly isArchFlowInfo: boolean;
32053
- /**
32054
- * Returns whether or not this flow is checked in.
32055
- */
32056
- readonly isCheckedIn: boolean;
32057
- /**
32058
- * Returns whether or not this flow is locked.
32059
- */
32060
- readonly isLocked: boolean;
32061
- /**
32062
- * Returns whether or not this flow is locked by another user. Another user
32063
- * means a Genesys Cloud user other than Genesys Cloud user authenticated for the current
32064
- * Architect Scripting session.
32065
- */
32066
- readonly isLockedByAnotherUser: boolean;
32067
- /**
32068
- * Returns whether or not this flow is locked by the current user. The current user
32069
- * is the Genesys Cloud user authenticated for the current Architect Scripting session.
32070
- */
32071
- readonly isLockedByCurrentUser: boolean;
32072
- /**
32073
- * Returns whether or not this flow is published.
32074
- */
32075
- readonly isPublished: boolean;
32076
- /**
32077
- * Returns whether or not this is a built-in system flow such as
32078
- * the 'Default In-Queue Flow'. A system flow in Architect is
32079
- * one whose version 1.0 logic is pre-configured by Architect
32080
- * and while it can be customized by flow authors, deleting a
32081
- * system flow is different from deleting a non-system flow in
32082
- * that the flow will revert back the default version 1.0 configuration.
32083
- */
32084
- readonly isSystem: boolean;
32085
- /**
32086
- * Gets name for the flow contained in this flow info instance.
32087
- */
32088
- readonly name: string;
32089
- /**
32090
- * Returns the flow type associated with this flow info. The string values in {@link ArchEnums#FLOW_TYPES}
32091
- * lists valid values.
32092
- */
32093
- readonly type: string;
32094
- /**
32095
- * Returns information about the checked in version of the flow. If the flow
32096
- * is not checked in, nothing is returned.
32097
- */
32098
- readonly versionCheckedIn: ArchFlowInfoVersion;
32099
- /**
32100
- * Returns information about the published version of the flow. If the flow
32101
- * is not published, nothing is returned.
32102
- */
32103
- readonly versionPublished: ArchFlowInfoVersion;
32104
- /**
32105
- * The identifier string for this object.
32106
- */
32107
- readonly id: string;
32108
- /**
32109
- * Returns whether or not the id property may be blank or undefined for this object. For example, the returned settings from {@link ArchMenu#settingsMenu}
32110
- * will have a blank identifier along with the settings returned from {@link ArchMenu#settingsSpeechRec}. Note that this is
32111
- * an extremely rare case.
32112
- */
32113
- readonly idMayBeBlank: string;
32114
- /**
32115
- * Returns true indicating that this is an ArchBaseCoreObject instance.
32116
- */
32117
- readonly isArchBaseCoreObject: boolean;
32118
- /**
32119
- * This method iterates over this object and ArchBaseCoreObject instances
32120
- * within it. For each object it will call the {@link ArchBaseObject#isFilterMatch} method
32121
- * with a filter and call the supplied callback function if isMatch returns true.
32122
- * The callback will be passed an {@link ArchTraverseInfo} with details
32123
- * about the match such as the match object itself along with current contextual
32124
- * information such as the object hierarchy for the match object relative to
32125
- * the object on which this traverse call is being made.
32126
- *
32127
- * The traverse [filter]{@link ArchFilterObject} is one which you can create
32128
- * by calling {@link ArchFactoryFilters#createFilterObject} and then add desired clauses
32129
- * or clause containers to it. If not specified, this function will use a
32130
- * [default filter]{@link ArchFactoryFilters#createFilterTraverseDefault}.
32131
- *
32132
- * Here is an example that does a simple flow traversal using the default
32133
- * filter and logs information about objects in the callback from the
32134
- * traverse object that's passed back:
32135
- *
32136
- * ```
32137
- * archInboundCallFlow.traverse(function(traverseInfo) {
32138
- * archLogging.logNote(' Object : ' + traverseInfo.matchObject.logStr);
32139
- * archLogging.logNote(' Hierarchy: ' + traverseInfo.context.hierarchyStr);
32140
- * });
32141
- * ```
32142
- * This might be enough for most uses and you can check various aspects
32143
- * about the object in the callback such as "is this an Architect action?" by
32144
- * seeing if traverseInfo.matchObject.isArchBaseAction is true. You can specify
32145
- * a filter for the traversal code to use as well and only have it call your
32146
- * callback when the object's {@link ArchBaseCoreObject#isFilterMatch} method returns true for
32147
- * the filter. Here's an example that creates a filter for callbacks on
32148
- * [any type of transfer action]{@link ArchBaseActionTransfer}, any
32149
- * [decision action]{@link ArchActionDecision} or objects whose name
32150
- * property case insensitively matches the word 'foo'. While this could all be done
32151
- * with one property callback clause the example will use multiple clauses for
32152
- * the sake of simplicity:
32153
- * ```
32154
- * const myTraverseFilter = filterFactory.createFilterObject(archEnums.FILTER_CONTAINER_OPERATORS.or);
32155
- * myTraverseFilter.addClausePropertyValueEquals('isArchBaseActionTransfer', true);
32156
- * myTraverseFilter.addClausePropertyValueEquals('isArchActionDecision', true);
32157
- * myTraverseFilter.addClausePropertyCallback('name', function(propValue, archContainingObject, propName) {
32158
- * // We fully spelled out the function signature above but archContainingObject and propName are
32159
- * // not needed in this case. The archContainingObject is the object that contains the
32160
- * // property and propName is the property name itself. We pass in propName because the same
32161
- * // function could be used for multiple property callback clauses.
32162
- * // Remember to return a boolean true, false or undefined from ths callback. :)
32163
- * return propValue && propValue.toLowerCase() === 'foo';
32164
- * });
32165
- * archTask.traverse(function(traverseContext) {
32166
- * // You will only be called back here for ArchBaseCoreObject instances that
32167
- * // have the isArchBaseActionTransfer or isArchActionDecision property values equal to true.
32168
- * }, myTraverseFilter);
32169
- * ```
32170
- * If you supply a filter with no clauses, this tells the traverse method to
32171
- * call the supplied callback function for every {@link ArchBaseCoreObject} it traverses.
32172
- *
32173
- * If you want traversal itself to stop after a callback, simply return boolean
32174
- * false from the callback function you supply to the traverse call.
32175
- *
32176
- * The traverse method does not process deprecated property names such as [orgId]{@link ArchSession#orgId},
32177
- * [orgName]{@link ArchSession#orgName} or [languageSettings]{@link ArchBaseFlow#languageSettings}. Additionally
32178
- * it does not traverse in to properties that would "jump out" of the current traversal. An example of this
32179
- * would be if the code was traversing an {@link ArchActionJumpToMenu} action that it would not start traversing
32180
- * in to the menu that it jumps to. Another example would be a {@link ArchActionChangeState} action where
32181
- * it would not traverse in to the target state of the action. This also means traversal does not traverse
32182
- * in to the {@link ArchBaseValue#flowLevelDefault} property.
32183
- *
32184
- * And lastly, as Scripting evolves over time with new versions, you can expect to get callbacks for new object
32185
- * types such as new actions or new properties on objects. As such, it's important not to assume any particular
32186
- * order in callbacks to keep code most compatible with traversal callbacks. Or if you use inequality checks in filter
32187
- * clauses remember that new "stuff" may satisfy an inequality check which may or may not be anticipated in your logic.
32188
- *
32189
- * Note: This traverse method is a helper method and is very handy for iterating over Architect Scripting
32190
- * objects and their properties in a generic fashion with filtering capabilities. Obviously you can write
32191
- * your own custom traversal code if this implementation doesn't cut it for some reason. :)
32192
- *
32193
- * This function returns the number of times it called the callback function.
32194
- * @param callbackFunction - the callback function to call for objects that match the traverse filter.
32195
- * @param [traverseFilter = {@link ArchFactoryFilters#createFilterTraverseDefault}] - the filter to use when performing the traversal to determine which
32196
- * {@link ArchBaseCoreObject} instances you wish to be called back for. If no
32197
- * filter is specified, this function will call {@link ArchFactoryFilters#createFilterTraverseDefault} and
32198
- * use that traversal default filter. The wantArchBaseValues parameter on that call is set to true.
32199
- */
32200
- traverse(callbackFunction: callbackTraverseInfo, traverseFilter?: ArchFilterObject): number;
32201
- /**
32202
- * This is a string suitable for logging information about this object where it's just the object's type. This is normally used
32203
- * when logging errors that occur in constructor parameter checking because the scripting object isn't set up and the normal
32204
- * logging str contents wouldn't be set up.
32205
- */
32206
- readonly logStrTypeOnly: string;
32207
- /**
32208
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true.
32209
- * @param errorStr - the error string to log.
32210
- */
32211
- logError(errorStr: string): void;
32212
- /**
32213
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true and then throws
32214
- * the string in the errorStr parameter.
32215
- * @param errorStr - the error string to log. This should be a non-blank string.
32216
- */
32217
- logErrorAndThrow(errorStr: string): void;
32218
- /**
32219
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotes} is true.
32220
- * @param noteStr - the note string to log. This should be a non-blank string.
32221
- */
32222
- logNote(noteStr: string): void;
32223
- /**
32224
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotesVerbose} is true.
32225
- * @param noteStr - the note string to log. This should be a non-blank string.
32226
- */
32227
- logNoteVerbose(noteStr: string): void;
32228
- /**
32229
- * Logs a warning to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logWarnings} is true.
32230
- * @param warningStr - the warning string to log. This should be a non-blank string.
32231
- */
32232
- logWarning(warningStr: string): void;
32233
- /**
32234
- * Returns whether or not this Architect Scripting object is a match
32235
- * for the supplied ArchFilterObject instance.
32236
- * @param archFilterObject - the object filter to use to determine if it's a match.
32237
- */
32238
- isFilterMatch(archFilterObject: ArchFilterObject): boolean;
32239
- }
32240
-
32241
- /**
32242
- * This callback function type is invoked by Architect Scripting where the callback function is passed an Architect
32243
- * flow info instance such as {@link ArchFlowInfoBasic#getFlowInfoAsync}
32244
- * @param archFlowInfo - the Architect flow information object.
32245
- */
32246
- declare type callbackArchFlowInfo = (archFlowInfo: ArchFlowInfo) => void;
32247
-
32248
- export class ArchFlowInfoBasic extends ArchBaseObject {
32249
- // constructor(flowIdNameTypeObject: any);
32250
- /**
32251
- * Returns the display type name string 'ArchFlowInfoBasic'.
32252
- */
32253
- readonly displayTypeName: string;
32254
- /**
32255
- * A string suitable for logging that contains information about this flow info basic.
32256
- */
32257
- readonly logStr: string;
32258
- /**
32259
- * Returns true indicating that this is an ArchFlowInfo instance.
32260
- */
32261
- readonly isArchFlowInfoBasic: boolean;
32262
- /**
32263
- * Looks up the flow information from this flow info basic instance by the flow identifier.
32264
- * @param [callbackFunction] - the function to call back if successfully converted. The callback will be passed the looked up ArchFlowInfo instance.
32265
- */
32266
- getFlowInfoAsync(callbackFunction?: callbackArchFlowInfo): Promise<ArchFlowInfoBasic>;
32267
- /**
32268
- * The flow identifier
32269
- */
32270
- readonly id: string;
32271
- /**
32272
- * Gets name for the flow contained in this flow info instance.
32273
- */
32274
- readonly name: string;
32275
- /**
32276
- * Returns the flow type associated with this flow info. The string values in {@link ArchEnums#FLOW_TYPES}
32277
- * lists valid values.
32278
- */
32279
- readonly type: string;
32280
- /**
32281
- * This is a string suitable for logging information about this object where it's just the object's type. This is normally used
32282
- * when logging errors that occur in constructor parameter checking because the scripting object isn't set up and the normal
32283
- * logging str contents wouldn't be set up.
32284
- */
32285
- readonly logStrTypeOnly: string;
32286
- /**
32287
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true.
32288
- * @param errorStr - the error string to log.
32289
- */
32290
- logError(errorStr: string): void;
32291
- /**
32292
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true and then throws
32293
- * the string in the errorStr parameter.
32294
- * @param errorStr - the error string to log. This should be a non-blank string.
32295
- */
32296
- logErrorAndThrow(errorStr: string): void;
32297
- /**
32298
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotes} is true.
32299
- * @param noteStr - the note string to log. This should be a non-blank string.
32300
- */
32301
- logNote(noteStr: string): void;
32302
- /**
32303
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotesVerbose} is true.
32304
- * @param noteStr - the note string to log. This should be a non-blank string.
32305
- */
32306
- logNoteVerbose(noteStr: string): void;
32307
- /**
32308
- * Logs a warning to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logWarnings} is true.
32309
- * @param warningStr - the warning string to log. This should be a non-blank string.
32310
- */
32311
- logWarning(warningStr: string): void;
32312
- /**
32313
- * Returns whether or not this Architect Scripting object is a match
32314
- * for the supplied ArchFilterObject instance.
32315
- * @param archFilterObject - the object filter to use to determine if it's a match.
32316
- */
32317
- isFilterMatch(archFilterObject: ArchFilterObject): boolean;
32318
- }
32319
-
32320
- export class ArchFlowInfoVersion extends ArchBaseObject {
32321
- // constructor(coreFlowVersionModel: any);
32322
- /**
32323
- * Returns the display type name string 'ArchFlowInfoVersion'.
32324
- */
32325
- readonly displayTypeName: string;
32326
- /**
32327
- * A string suitable for logging that contains information about this flow info basic.
32328
- */
32329
- readonly logStr: string;
32330
- /**
32331
- * Returns true indicating that this is an ArchFlowInfoVersion instance.
32332
- */
32333
- readonly isArchFlowInfoVersion: boolean;
32334
- /**
32335
- * Returns the flow version string such as '1.0'.
32336
- */
32337
- readonly versionStr: string;
32338
- /**
32339
- * This is a string suitable for logging information about this object where it's just the object's type. This is normally used
32340
- * when logging errors that occur in constructor parameter checking because the scripting object isn't set up and the normal
32341
- * logging str contents wouldn't be set up.
32342
- */
32343
- readonly logStrTypeOnly: string;
32344
- /**
32345
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true.
32346
- * @param errorStr - the error string to log.
32347
- */
32348
- logError(errorStr: string): void;
32349
- /**
32350
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true and then throws
32351
- * the string in the errorStr parameter.
32352
- * @param errorStr - the error string to log. This should be a non-blank string.
32353
- */
32354
- logErrorAndThrow(errorStr: string): void;
32355
- /**
32356
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotes} is true.
32357
- * @param noteStr - the note string to log. This should be a non-blank string.
32358
- */
32359
- logNote(noteStr: string): void;
32360
- /**
32361
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotesVerbose} is true.
32362
- * @param noteStr - the note string to log. This should be a non-blank string.
32363
- */
32364
- logNoteVerbose(noteStr: string): void;
32365
- /**
32366
- * Logs a warning to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logWarnings} is true.
32367
- * @param warningStr - the warning string to log. This should be a non-blank string.
32368
- */
32369
- logWarning(warningStr: string): void;
32370
- /**
32371
- * Returns whether or not this Architect Scripting object is a match
32372
- * for the supplied ArchFilterObject instance.
32373
- * @param archFilterObject - the object filter to use to determine if it's a match.
32374
- */
32375
- isFilterMatch(archFilterObject: ArchFilterObject): boolean;
32376
- }
32377
-
32378
- export class ArchFlowOutboundCall extends ArchBaseFlowInboundOutboundSecureCall {
32379
- // constructor(coreOutboundCallFlowViewModel: any);
32380
- /**
32381
- * Returns the display type name string 'ArchFlowOutboundCall'.
32382
- */
32383
- readonly displayTypeName: string;
32384
- /**
32385
- * Returns true indicating that this is an ArchFlowOutboundCall instance.
32386
- */
32387
- readonly isArchFlowOutboundCall: boolean;
32388
- /**
32389
- * The initial audio set on the flow.
32390
- */
32391
- readonly initialAudio: ArchAudio;
32392
- /**
32393
- * Returns true indicating that this is an ArchBaseFlowInboundOutboundSecureCall object.
32394
- */
32395
- readonly isArchBaseFlowInboundOutboundSecureCall: boolean;
32396
- /**
32397
- * Sets the specified menu to be the starting task on the flow.
32398
- * @param archMenu - An Architect Scripting menu object.
32399
- */
32400
- setStartingMenu(archMenu: ArchMenu): void;
32401
- /**
32402
- * Sets the specified task to be the starting task on the flow.
32403
- * @param archTask - An Architect Scripting task object.
32404
- */
32405
- setStartingTask(archTask: ArchTask): void;
32406
- /**
32407
- * The menu settings for the flow.
32408
- */
32409
- readonly settingsMenu: ArchSettingsMenuFlow;
32410
- /**
32411
- * The prompt settings for the flow.
32412
- */
32413
- readonly settingsPrompts: ArchSettingsPromptsFlow;
32414
- /**
32415
- * The speech rec settings for the flow.
32416
- */
32417
- readonly settingsSpeechRec: ArchSettingsSpeechRecFlow;
32418
- /**
32419
- * Returns the starting task or menu for this call flow.
32420
- * If there is no startup object configured, accessing this property returns null.
32421
- */
32422
- readonly startUpObject: ArchTask | ArchMenu | null;
32423
- /**
32424
- * The outbound settings for the flow such as contact list and default wrapup code.
32425
- */
32426
- readonly settingsOutboundCall: ArchSettingsOutboundCallFlow;
32427
- /**
32428
- * This function deletes the specified reusable menu from this flow.
32429
- * @param menuToDelete - the menu to delete. This must be a reusable menu which means the {@link ArchMenu#isReusableMenu}
32430
- * property on the specified menu instance is true.
32431
- */
32432
- deleteMenu(menuToDelete: ArchMenu): void;
32433
- /**
32434
- * Returns an array of the currently defined reusable menus for this flow.
32435
- */
32436
- readonly menusReusable: ArchBaseMenu[];
32437
- /**
32438
- * This function deletes the specified reusable task from this flow.
32439
- * @param taskToDelete - the task to delete. This must be a reusable task which means the {@link ArchTask#isReusableTask}
32440
- * property on the specified task instance is true.
32441
- */
32442
- deleteTask(taskToDelete: ArchTask): void;
32443
- /**
32444
- * Returns an array of the currently defined reusable tasks for this flow.
32445
- */
32446
- readonly tasksReusable: ArchTask[];
32447
- /**
32448
- * This adds a new variable to the flow.
32449
- * @param name - the name of the variable to add. Remember that variable names must
32450
- * start with a letter and can then be followed by one or more letters, numbers
32451
- * or underscore characters to be valid. Submitting the variable scope on the name
32452
- * is optional. If specified, it must be 'Flow.' in order to be valid since you're
32453
- * adding the variable to a flow. You can also specify 'Slot.' to add a slot variable
32454
- * to the flow as long as the forceSlotVariableCreation parameter is true.
32455
- * @param type - the data type for the new variable. Remember that type must be supported
32456
- * in the flow type for which you're looking to add the variable. If you are
32457
- * not sure if a type is creatable, see the {@link ArchDataType#isScriptCreatableForFlowType} or
32458
- * {@link ArchDataType#isScriptCreatableForFlow} method.
32459
- * @param [description] - the description for the new variable.
32460
- * @param [forceSlotVariableCreation] - if true, will force the creation of a slot variable even when a Slot is not created in the Natural Language Understanding (NLU).
32461
- */
32462
- addVariable(name: string, type: ArchDataType, description?: string, forceSlotVariableCreation?: boolean): ArchBaseVariable;
32463
- /**
32464
- * This deletes the supplied variable from the flow. Remember you can call {@link ArchBaseVariable#canDelete}
32465
- * prior to calling this method to know if the supplied flow scoped variable can be deleted.
32466
- * @param archVariable - the flow scoped variable you wish to delete
32467
- * @returns - true if the variable was removed successfully, false otherwise.
32468
- */
32469
- removeVariable(archVariable: ArchBaseVariable): boolean;
32470
- /**
32471
- * Checkout this flow. This function returns an ArchInfo instance for it to the supplied callback function.
32472
- * @param [forceUnlock] - if true, will force an unlock of the flow.
32473
- * @param [callbackFunction] - a callback function to call if the flow was checked out.
32474
- * @returns - while this method returns a promise, you should use the callback function to perform any processing once the flow is checked out.
32475
- */
32476
- checkoutAsync(forceUnlock?: boolean, callbackFunction?: callbackVoid): Promise<ArchFlowInfo>;
32477
- /**
32478
- * Returns the division associated with this flow.
32479
- * This method first calls {@link ArchOrganizationInfo#areDivisionsAvailable} to ensure that divisions are available.
32480
- * If not available, nothing is returned.
32481
- */
32482
- readonly division: ArchDivision;
32483
- /**
32484
- * Loads a specific version of the flow. Any previously returned Architect Scripting objects associated with this flow should no
32485
- * longer be considered valid after loading new configuration.
32486
- * @param [flowVersion = "latest"] - the version of the flow to get. Valid values are "latest" to get the latest saved configuration of a flow,
32487
- * a version value such as "2.0" or "2", "debug" to get the currently published debug version configuration of a flow,
32488
- * or "published" to get the currently published version configuration of a flow. If you do not specify a version, then the latest saved configuration will be loaded.
32489
- * @param [callbackFunction] - a callback function to call if the flow was loaded.
32490
- * @returns - while this method returns a promise, you should use the callback function to perform any processing when the flow is loaded.
32491
- */
32492
- loadAsync(flowVersion?: string, callbackFunction?: callbackVoid): Promise<any>;
32493
- /**
32494
- * Returns a string suitable for logging that describes the flow
32495
- */
32496
- readonly logStr: string;
32497
- /**
32498
- * Unlocks this flow.
32499
- * @param [callbackFunction] - a callback function to call if the flow can be unlocked.
32500
- * @returns - while this method returns a promise, you should use the callback function to perform any processing once this flow is unlocked.
32501
- */
32502
- unlockAsync(callbackFunction?: callbackVoid): Promise<any>;
32503
- /**
32504
- * Helper method that accesses the flow's [settingsSupportedLanguages]{@link ArchBaseFlow#settingsSupportedLanguages} and then calls
32505
- * the [addSupportedLanguage]{@link ArchSettingsSupportedLanguagesFlow#addSupportedLanguage} function on the returned {@link ArchSettingsSupportedLanguagesFlow}
32506
- * value.
32507
- * @param archLanguage - the language to add to supported languages on the flow. Note that any language used as a supported
32508
- * language must have at least one region sub-tag.
32509
- * @param [setAsDefaultLanguage] - if true, the language will be set as the default language on the flow.
32510
- */
32511
- addFlowSupportedLanguage(archLanguage: ArchLanguage, setAsDefaultLanguage?: boolean): ArchSettingsSupportedLanguage;
32512
- /**
32513
- * Checks flow to see if a language can be added in its current state. Some flows may have restrictions
32514
- * if any or more than one can be added.
32515
- */
32516
- canAddSupportedLanguage(): boolean;
32517
- /**
32518
- * Checks in and unlocks the flow for the current user, does a save first
32519
- * Assumes the flow has been created, throws if not
32520
- * @param [ensureSearchable] - whether or not to poll after successful checkin to ensure that the flow is available for flow
32521
- * search operations such as {@link ArchFactoryFlows#getFlowInfoByFlowNameAsync} or {@link ArchFactoryFlows#getFlowInfoByFlowIdAsync}
32522
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
32523
- * flow instance.
32524
- */
32525
- checkInAsync(ensureSearchable?: boolean): Promise<ArchBaseFlow | undefined>;
32526
- /**
32527
- * Creates a new flow on the server and saves its configuration
32528
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
32529
- * flow instance.
32530
- */
32531
- createAsync(): Promise<any>;
32532
- /**
32533
- * Accessing this property returns an object with properties whose keys are data type names and values are
32534
- * {@link ArchDataType} instances.
32535
- */
32536
- readonly dataTypes: any;
32537
- /**
32538
- * The description of the flow
32539
- */
32540
- description: string;
32541
- /**
32542
- * Exports the current flow to a file in the specified directory. This destination directory *must* exist
32543
- * for the export to succeed. Note that this uses the file system and should not be used when running in a
32544
- * browser.
32545
- * @param [destinationDir] - the directory where the flow export should be saved.
32546
- * @param [callbackFunction] - the function to call back and pass in the full path where the
32547
- * flow export was saved.
32548
- * @param [flowFormat = ArchEnums.FLOW_FORMAT_TYPES.architect] - the desired flow format to use for the export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export formats. If no format is used,
32549
- * it will default to the Architect format.
32550
- * @param [fileName] - the file name to use for the exported flow. If a file extension is not added to the file name, it will use the default file extension for the desired export type for
32551
- * the desired export format and flow that you are exporting. If the format is YAML, the extension is always '.yaml' regardless of flow type. However, if it is the Architect format, the extension is unique per flow-type.
32552
- * To find the correct file extension for the Architect format, you can either export a flow from the Architect UI or look at the [flow definition]{@link ArchBaseFlow#definition}
32553
- * for a flow type and access the [fileExtension]{@link ArchDefinitionFlow#fileExtension} property to get the value. If an extension is found on the file name other than what is
32554
- * expected, the correct extension will be appended to the end of the exported file as per the logic described previously.
32555
- */
32556
- exportToDirAsync(destinationDir?: string, callbackFunction?: callbackExportFullPath, flowFormat?: string, fileName?: string): Promise<string>;
32557
- /**
32558
- * Exports the flow to a JSON object. The object passed back in the callback function
32559
- * will be a JSON object with a content and fileName property where the content holds
32560
- * the flow export contents and the fileName property holds the file name where the
32561
- * export would be written if {@link ArchBaseFlow#exportToDirAsync} is called.
32562
- * @param callbackFunction - the function to call back with the export information contained
32563
- * in the parameter passed to it.
32564
- * @param [flowFormat = archEnums.FLOW_FORMAT_TYPES.architect] - the desired export format to use on an export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export formats. If no format is used,
32565
- * it will default to the Architect format.
32566
- */
32567
- exportToObjectAsync(callbackFunction: callbackExportObject, flowFormat?: string): Promise<ExportInfoType>;
32568
- /**
32569
- * The type of the flow. The string
32570
- * values in {@link ArchEnums#FLOW_TYPES} lists valid flow type values.
32571
- */
32572
- readonly flowType: string;
32573
- /**
32574
- * This function will return the file path where a flow export will be written when calling the {@link ArchBaseFlow#exportToDirAsync}
32575
- * method for the supplied destination directory and export flow format. A typical use case for this function would be
32576
- * to get the export file path prior to calling the {@link ArchBaseFlow#exportToDirAsync} so you could see if the file already exists
32577
- * and decide if you want to perform an export or not since {@link ArchBaseFlow#exportToDirAsync} will attempt to overwrite
32578
- * a file if it already exists. Note that this uses the file system and should not be used when running in a
32579
- * browser.
32580
- * @param [destinationDir] - the directory where the flow export should be written. If no directory path is given, this method uses the
32581
- * current working directory. If a relative path is supplied, it will be resolved relative to the current
32582
- * working directory.
32583
- * @param [flowFormat = ArchEnums.FLOW_FORMAT_TYPES.architect] - the desired flow format to use for the export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export
32584
- * formats. If no format is supplied, it will use the Architect format.
32585
- * @param [fileName] - the file name to use for the exported flow. If a file extension is not added to the file name, it will use the default file extension for the desired export type for
32586
- * the desired export format and flow that you are exporting. If the format is YAML, the extension is always '.yaml' regardless of flow type. However, if it is the Architect format, the extension is unique per flow-type.
32587
- * To find the correct file extension for the Architect format, you can either export a flow from the Architect UI or look at the [flow definition]{@link ArchBaseFlow#definition}
32588
- * for a flow type and access the [fileExtension]{@link ArchDefinitionFlow#fileExtension} property to get the value. If an extension is found on the file name other than what is
32589
- * expected, the correct extension will be appended to the end of the exported file as per the logic described previously.
32590
- */
32591
- getExportFilePath(destinationDir?: string, flowFormat?: string, fileName?: string): string;
32592
- /**
32593
- * Returns the flow scoped variable for the supplied variable identifier ( if it exists ).
32594
- * If the variable name cannot be found, nothing is returned.
32595
- * @param variableId - the supllied variable identifier to look up such as __CALL_ANI__.
32596
- */
32597
- getVariableById<T extends ArchBaseVariable = ArchBaseVariable>(variableId: string): T;
32598
- /**
32599
- * Returns the flow scoped variable for the supplied fully scoped variable name ( if it exists ). Remember, looking
32600
- * up variables by name is case insensitive. If the variable name cannot be found, nothing is returned.
32601
- * @param variableName - the fully scoped variable name to look up such as Flow.MyVar.
32602
- */
32603
- getVariableByName<T extends ArchBaseVariable = ArchBaseVariable>(variableName: string): T;
32604
- /**
32605
- * Imports the flow content from the supplied content string. This content string should be for a flow of the
32606
- * same type as the one you're importing in to. Upon successful import, the callback function passed in
32607
- * will be called. Importing flow contents in to a flow is something where you should *not* attempt to
32608
- * do work with the flow on which this is being called until the callback is called.
32609
- * @param exportContent - the contents from a flow export.
32610
- * @param [callbackFunction] - a function to call if the export content successfully loaded and configured
32611
- * on this flow. The first parameter passed to the callback function will be this
32612
- * Architect flow instance.
32613
- */
32614
- importFromContentAsync<T extends ArchBaseFlow = ArchBaseFlow>(exportContent: string, callbackFunction?: (...params: any[]) => any): Promise<T>;
32615
- /**
32616
- * Imports the flow content from the supplied file path. Upon successful import, the callback function passed in
32617
- * will be called. Importing flow contents in to a flow is something where you should *not* attempt to
32618
- * do work with the flow on which this is being called until the callback is called.
32619
- * Also note that this method should not be used if running in a browser.
32620
- * @param exportFilePath - the file path to an Architect flow export file that should be imported.
32621
- * @param [callbackFunction] - a function to call if the export content successfully loaded and configured
32622
- * on this flow. The first parameter passed to the callback function will be this
32623
- * Architect flow instance.
32624
- */
32625
- importFromFileAsync<T extends ArchBaseFlow = ArchBaseFlow>(exportFilePath: string, callbackFunction?: (...params: any[]) => any): Promise<T>;
32626
- /**
32627
- * Returns whether or not the flow is created in Genesys Cloud.
32628
- */
32629
- readonly isCreated: boolean;
32630
- /**
32631
- * Returns whether or not the flow is read-only. Flows that have been created locally in
32632
- * scripting but not saved, checked in or published will report that they are not read-only.
32633
- */
32634
- readonly isReadOnly: boolean;
32635
- /**
32636
- * Returns whether or not the flow is secure. That means it contains something that is
32637
- * secure like a secure variable or secure action.
32638
- */
32639
- readonly isSecure: boolean;
32640
- /**
32641
- * Returns true indicating the flow acts as a variable container which means you can
32642
- * add variables to it.
32643
- */
32644
- readonly isVariableContainer: boolean;
32645
- /**
32646
- * The language settings for the flow. This property is now deprecated.
32647
- * Please replace calls to this property with {@link ArchBaseFlow#settingsSupportedLanguages} instead.
32648
- */
32649
- readonly languageSettings: ArchSettingsSupportedLanguagesFlow;
32650
- /**
32651
- * The name of the flow
32652
- */
32653
- name: string;
32654
- /**
32655
- * Publishes the flow. This will do a validate, save, checkin and then publish last. Any of these
32656
- * steps can fail and reject the promise. Operations are not atomic.
32657
- * @param [ensureSearchable] - whether or not to poll after successful publish to ensure that the flow is available for flow
32658
- * search operations such as {@link ArchFactoryFlows#getFlowInfoByFlowNameAsync} or {@link ArchFactoryFlows#getFlowInfoByFlowIdAsync}
32659
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
32660
- * flow instance.
32661
- */
32662
- publishAsync(ensureSearchable?: boolean): Promise<any>;
32663
- /**
32664
- * Save the current flow configuration, creating the flow if needed.
32665
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
32666
- * flow instance.
32667
- */
32668
- saveAsync(): Promise<any>;
32669
- /**
32670
- * Returns the error handling settings for the flow.
32671
- */
32672
- readonly settingsErrorHandling: ArchSettingsEventErrorFlow;
32673
- /**
32674
- * Returns the action default settings for the flow.
32675
- */
32676
- readonly settingsActionDefaults: ArchSettingsActionDefaults;
32677
- /**
32678
- * The supported language settings for the flow.
32679
- * This method will throw if the flow doesn't support languages. You can check {@link ArchBaseFlow#supportsLanguages} prior
32680
- * to calling this method to see if a flow supports languages or not.
32681
- */
32682
- readonly settingsSupportedLanguages: ArchSettingsSupportedLanguagesFlow;
32683
- /**
32684
- * Returns whether or not this flow supports audio channel.
32685
- */
32686
- readonly supportsAudio: boolean;
32687
- /**
32688
- * Returns whether or not this flow supports error handling.
32689
- */
32690
- readonly supportsErrorHandling: boolean;
32691
- /**
32692
- * Returns whether or not this flow supports languages. If false, that means you have to configure the flow
32693
- * when creating it to use English United States.
32694
- * Note: At this time this functionality is available while we're determining the needs of workflow and
32695
- * inbound email flow types. This property may go away in a future release of Architect Scripting.
32696
- */
32697
- readonly supportsLanguages: boolean;
32698
- /**
32699
- * Returns whether or not this flow supports setting a supported language as the default.
32700
- */
32701
- readonly supportsDefaultLanguage: boolean;
32702
- /**
32703
- * Returns a URL for this flow. If the flow has not been created or there is no startup object set on the flow,
32704
- * the returned URL will be blank.
32705
- */
32706
- readonly url: string;
32707
- /**
32708
- * Validates the flow. Promise returns an {@link ArchValidationResults} instance.
32709
- * @returns - On your promise's then handler, the first parameter passed to the then function will be the
32710
- * validation results.
32711
- */
32712
- validateAsync(): Promise<ArchValidationResults>;
32713
- /**
32714
- * Returns an array of variables defined at the flow scope for this flow.
32715
- */
32716
- readonly variables: ArchBaseVariable[];
32717
- /**
32718
- * The identifier string for this object.
32719
- */
32720
- readonly id: string;
32721
- /**
32722
- * Returns whether or not the id property may be blank or undefined for this object. For example, the returned settings from {@link ArchMenu#settingsMenu}
32723
- * will have a blank identifier along with the settings returned from {@link ArchMenu#settingsSpeechRec}. Note that this is
32724
- * an extremely rare case.
32725
- */
32726
- readonly idMayBeBlank: string;
32727
- /**
32728
- * Returns true indicating that this is an ArchBaseCoreObject instance.
32729
- */
32730
- readonly isArchBaseCoreObject: boolean;
32731
- /**
32732
- * This method iterates over this object and ArchBaseCoreObject instances
32733
- * within it. For each object it will call the {@link ArchBaseObject#isFilterMatch} method
32734
- * with a filter and call the supplied callback function if isMatch returns true.
32735
- * The callback will be passed an {@link ArchTraverseInfo} with details
32736
- * about the match such as the match object itself along with current contextual
32737
- * information such as the object hierarchy for the match object relative to
32738
- * the object on which this traverse call is being made.
32739
- *
32740
- * The traverse [filter]{@link ArchFilterObject} is one which you can create
32741
- * by calling {@link ArchFactoryFilters#createFilterObject} and then add desired clauses
32742
- * or clause containers to it. If not specified, this function will use a
32743
- * [default filter]{@link ArchFactoryFilters#createFilterTraverseDefault}.
32744
- *
32745
- * Here is an example that does a simple flow traversal using the default
32746
- * filter and logs information about objects in the callback from the
32747
- * traverse object that's passed back:
32748
- *
32749
- * ```
32750
- * archInboundCallFlow.traverse(function(traverseInfo) {
32751
- * archLogging.logNote(' Object : ' + traverseInfo.matchObject.logStr);
32752
- * archLogging.logNote(' Hierarchy: ' + traverseInfo.context.hierarchyStr);
32753
- * });
32754
- * ```
32755
- * This might be enough for most uses and you can check various aspects
32756
- * about the object in the callback such as "is this an Architect action?" by
32757
- * seeing if traverseInfo.matchObject.isArchBaseAction is true. You can specify
32758
- * a filter for the traversal code to use as well and only have it call your
32759
- * callback when the object's {@link ArchBaseCoreObject#isFilterMatch} method returns true for
32760
- * the filter. Here's an example that creates a filter for callbacks on
32761
- * [any type of transfer action]{@link ArchBaseActionTransfer}, any
32762
- * [decision action]{@link ArchActionDecision} or objects whose name
32763
- * property case insensitively matches the word 'foo'. While this could all be done
32764
- * with one property callback clause the example will use multiple clauses for
32765
- * the sake of simplicity:
32766
- * ```
32767
- * const myTraverseFilter = filterFactory.createFilterObject(archEnums.FILTER_CONTAINER_OPERATORS.or);
32768
- * myTraverseFilter.addClausePropertyValueEquals('isArchBaseActionTransfer', true);
32769
- * myTraverseFilter.addClausePropertyValueEquals('isArchActionDecision', true);
32770
- * myTraverseFilter.addClausePropertyCallback('name', function(propValue, archContainingObject, propName) {
32771
- * // We fully spelled out the function signature above but archContainingObject and propName are
32772
- * // not needed in this case. The archContainingObject is the object that contains the
32773
- * // property and propName is the property name itself. We pass in propName because the same
32774
- * // function could be used for multiple property callback clauses.
32775
- * // Remember to return a boolean true, false or undefined from ths callback. :)
32776
- * return propValue && propValue.toLowerCase() === 'foo';
32777
- * });
32778
- * archTask.traverse(function(traverseContext) {
32779
- * // You will only be called back here for ArchBaseCoreObject instances that
32780
- * // have the isArchBaseActionTransfer or isArchActionDecision property values equal to true.
32781
- * }, myTraverseFilter);
32782
- * ```
32783
- * If you supply a filter with no clauses, this tells the traverse method to
32784
- * call the supplied callback function for every {@link ArchBaseCoreObject} it traverses.
32785
- *
32786
- * If you want traversal itself to stop after a callback, simply return boolean
32787
- * false from the callback function you supply to the traverse call.
32788
- *
32789
- * The traverse method does not process deprecated property names such as [orgId]{@link ArchSession#orgId},
32790
- * [orgName]{@link ArchSession#orgName} or [languageSettings]{@link ArchBaseFlow#languageSettings}. Additionally
32791
- * it does not traverse in to properties that would "jump out" of the current traversal. An example of this
32792
- * would be if the code was traversing an {@link ArchActionJumpToMenu} action that it would not start traversing
32793
- * in to the menu that it jumps to. Another example would be a {@link ArchActionChangeState} action where
32794
- * it would not traverse in to the target state of the action. This also means traversal does not traverse
32795
- * in to the {@link ArchBaseValue#flowLevelDefault} property.
32796
- *
32797
- * And lastly, as Scripting evolves over time with new versions, you can expect to get callbacks for new object
32798
- * types such as new actions or new properties on objects. As such, it's important not to assume any particular
32799
- * order in callbacks to keep code most compatible with traversal callbacks. Or if you use inequality checks in filter
32800
- * clauses remember that new "stuff" may satisfy an inequality check which may or may not be anticipated in your logic.
32801
- *
32802
- * Note: This traverse method is a helper method and is very handy for iterating over Architect Scripting
32803
- * objects and their properties in a generic fashion with filtering capabilities. Obviously you can write
32804
- * your own custom traversal code if this implementation doesn't cut it for some reason. :)
32805
- *
32806
- * This function returns the number of times it called the callback function.
32807
- * @param callbackFunction - the callback function to call for objects that match the traverse filter.
32808
- * @param [traverseFilter = {@link ArchFactoryFilters#createFilterTraverseDefault}] - the filter to use when performing the traversal to determine which
32809
- * {@link ArchBaseCoreObject} instances you wish to be called back for. If no
32810
- * filter is specified, this function will call {@link ArchFactoryFilters#createFilterTraverseDefault} and
32811
- * use that traversal default filter. The wantArchBaseValues parameter on that call is set to true.
32812
- */
32813
- traverse(callbackFunction: callbackTraverseInfo, traverseFilter?: ArchFilterObject): number;
32814
- /**
32815
- * This is a string suitable for logging information about this object where it's just the object's type. This is normally used
32816
- * when logging errors that occur in constructor parameter checking because the scripting object isn't set up and the normal
32817
- * logging str contents wouldn't be set up.
32818
- */
32819
- readonly logStrTypeOnly: string;
32820
- /**
32821
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true.
32822
- * @param errorStr - the error string to log.
32823
- */
32824
- logError(errorStr: string): void;
32825
- /**
32826
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true and then throws
32827
- * the string in the errorStr parameter.
32828
- * @param errorStr - the error string to log. This should be a non-blank string.
32829
- */
32830
- logErrorAndThrow(errorStr: string): void;
32831
- /**
32832
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotes} is true.
32833
- * @param noteStr - the note string to log. This should be a non-blank string.
32834
- */
32835
- logNote(noteStr: string): void;
32836
- /**
32837
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotesVerbose} is true.
32838
- * @param noteStr - the note string to log. This should be a non-blank string.
32839
- */
32840
- logNoteVerbose(noteStr: string): void;
32841
- /**
32842
- * Logs a warning to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logWarnings} is true.
32843
- * @param warningStr - the warning string to log. This should be a non-blank string.
32844
- */
32845
- logWarning(warningStr: string): void;
32846
- /**
32847
- * Returns whether or not this Architect Scripting object is a match
32848
- * for the supplied ArchFilterObject instance.
32849
- * @param archFilterObject - the object filter to use to determine if it's a match.
32850
- */
32851
- isFilterMatch(archFilterObject: ArchFilterObject): boolean;
32852
- }
32853
-
32854
- export class ArchFlowSecureCall extends ArchBaseFlowInboundOutboundSecureCall {
32855
- // constructor(coreSecureCallFlowViewModel: any);
32856
- /**
32857
- * Returns the display type name string 'ArchFlowSecureCall'.
32858
- */
32859
- readonly displayTypeName: string;
32860
- /**
32861
- * Returns true indicating that this is an ArchFlowSecureCall instance.
32862
- */
32863
- readonly isArchFlowSecureCall: boolean;
32864
- /**
32865
- * The initial audio set on the flow.
32866
- */
32867
- readonly initialAudio: ArchAudio;
32868
- /**
32869
- * Returns true indicating that this is an ArchBaseFlowInboundOutboundSecureCall object.
32870
- */
32871
- readonly isArchBaseFlowInboundOutboundSecureCall: boolean;
32872
- /**
32873
- * Sets the specified menu to be the starting task on the flow.
32874
- * @param archMenu - An Architect Scripting menu object.
32875
- */
32876
- setStartingMenu(archMenu: ArchMenu): void;
32877
- /**
32878
- * Sets the specified task to be the starting task on the flow.
32879
- * @param archTask - An Architect Scripting task object.
32880
- */
32881
- setStartingTask(archTask: ArchTask): void;
32882
- /**
32883
- * The menu settings for the flow.
32884
- */
32885
- readonly settingsMenu: ArchSettingsMenuFlow;
32886
- /**
32887
- * The prompt settings for the flow.
32888
- */
32889
- readonly settingsPrompts: ArchSettingsPromptsFlow;
32890
- /**
32891
- * The speech rec settings for the flow.
32892
- */
32893
- readonly settingsSpeechRec: ArchSettingsSpeechRecFlow;
32894
- /**
32895
- * Returns the starting task or menu for this call flow.
32896
- * If there is no startup object configured, accessing this property returns null.
32897
- */
32898
- readonly startUpObject: ArchTask | ArchMenu | null;
32899
- /**
32900
- * The outbound settings for the flow such as contact list and default wrapup code.
32901
- */
32902
- readonly settingsOutboundCall: ArchSettingsOutboundCallFlow;
32903
- /**
32904
- * This function deletes the specified reusable menu from this flow.
32905
- * @param menuToDelete - the menu to delete. This must be a reusable menu which means the {@link ArchMenu#isReusableMenu}
32906
- * property on the specified menu instance is true.
32907
- */
32908
- deleteMenu(menuToDelete: ArchMenu): void;
32909
- /**
32910
- * Returns an array of the currently defined reusable menus for this flow.
32911
- */
32912
- readonly menusReusable: ArchBaseMenu[];
32913
- /**
32914
- * This function deletes the specified reusable task from this flow.
32915
- * @param taskToDelete - the task to delete. This must be a reusable task which means the {@link ArchTask#isReusableTask}
32916
- * property on the specified task instance is true.
32917
- */
32918
- deleteTask(taskToDelete: ArchTask): void;
32919
- /**
32920
- * Returns an array of the currently defined reusable tasks for this flow.
32921
- */
32922
- readonly tasksReusable: ArchTask[];
32923
- /**
32924
- * This adds a new variable to the flow.
32925
- * @param name - the name of the variable to add. Remember that variable names must
32926
- * start with a letter and can then be followed by one or more letters, numbers
32927
- * or underscore characters to be valid. Submitting the variable scope on the name
32928
- * is optional. If specified, it must be 'Flow.' in order to be valid since you're
32929
- * adding the variable to a flow. You can also specify 'Slot.' to add a slot variable
32930
- * to the flow as long as the forceSlotVariableCreation parameter is true.
32931
- * @param type - the data type for the new variable. Remember that type must be supported
32932
- * in the flow type for which you're looking to add the variable. If you are
32933
- * not sure if a type is creatable, see the {@link ArchDataType#isScriptCreatableForFlowType} or
32934
- * {@link ArchDataType#isScriptCreatableForFlow} method.
32935
- * @param [description] - the description for the new variable.
32936
- * @param [forceSlotVariableCreation] - if true, will force the creation of a slot variable even when a Slot is not created in the Natural Language Understanding (NLU).
32937
- */
32938
- addVariable(name: string, type: ArchDataType, description?: string, forceSlotVariableCreation?: boolean): ArchBaseVariable;
32939
- /**
32940
- * This deletes the supplied variable from the flow. Remember you can call {@link ArchBaseVariable#canDelete}
32941
- * prior to calling this method to know if the supplied flow scoped variable can be deleted.
32942
- * @param archVariable - the flow scoped variable you wish to delete
32943
- * @returns - true if the variable was removed successfully, false otherwise.
32944
- */
32945
- removeVariable(archVariable: ArchBaseVariable): boolean;
32946
- /**
32947
- * Checkout this flow. This function returns an ArchInfo instance for it to the supplied callback function.
32948
- * @param [forceUnlock] - if true, will force an unlock of the flow.
32949
- * @param [callbackFunction] - a callback function to call if the flow was checked out.
32950
- * @returns - while this method returns a promise, you should use the callback function to perform any processing once the flow is checked out.
32951
- */
32952
- checkoutAsync(forceUnlock?: boolean, callbackFunction?: callbackVoid): Promise<ArchFlowInfo>;
32953
- /**
32954
- * Returns the division associated with this flow.
32955
- * This method first calls {@link ArchOrganizationInfo#areDivisionsAvailable} to ensure that divisions are available.
32956
- * If not available, nothing is returned.
32957
- */
32958
- readonly division: ArchDivision;
32959
- /**
32960
- * Loads a specific version of the flow. Any previously returned Architect Scripting objects associated with this flow should no
32961
- * longer be considered valid after loading new configuration.
32962
- * @param [flowVersion = "latest"] - the version of the flow to get. Valid values are "latest" to get the latest saved configuration of a flow,
32963
- * a version value such as "2.0" or "2", "debug" to get the currently published debug version configuration of a flow,
32964
- * or "published" to get the currently published version configuration of a flow. If you do not specify a version, then the latest saved configuration will be loaded.
32965
- * @param [callbackFunction] - a callback function to call if the flow was loaded.
32966
- * @returns - while this method returns a promise, you should use the callback function to perform any processing when the flow is loaded.
32967
- */
32968
- loadAsync(flowVersion?: string, callbackFunction?: callbackVoid): Promise<any>;
32969
- /**
32970
- * Returns a string suitable for logging that describes the flow
32971
- */
32972
- readonly logStr: string;
32973
- /**
32974
- * Unlocks this flow.
32975
- * @param [callbackFunction] - a callback function to call if the flow can be unlocked.
32976
- * @returns - while this method returns a promise, you should use the callback function to perform any processing once this flow is unlocked.
32977
- */
32978
- unlockAsync(callbackFunction?: callbackVoid): Promise<any>;
32979
- /**
32980
- * Helper method that accesses the flow's [settingsSupportedLanguages]{@link ArchBaseFlow#settingsSupportedLanguages} and then calls
32981
- * the [addSupportedLanguage]{@link ArchSettingsSupportedLanguagesFlow#addSupportedLanguage} function on the returned {@link ArchSettingsSupportedLanguagesFlow}
32982
- * value.
32983
- * @param archLanguage - the language to add to supported languages on the flow. Note that any language used as a supported
32984
- * language must have at least one region sub-tag.
32985
- * @param [setAsDefaultLanguage] - if true, the language will be set as the default language on the flow.
32986
- */
32987
- addFlowSupportedLanguage(archLanguage: ArchLanguage, setAsDefaultLanguage?: boolean): ArchSettingsSupportedLanguage;
32988
- /**
32989
- * Checks flow to see if a language can be added in its current state. Some flows may have restrictions
32990
- * if any or more than one can be added.
32991
- */
32992
- canAddSupportedLanguage(): boolean;
32993
- /**
32994
- * Checks in and unlocks the flow for the current user, does a save first
32995
- * Assumes the flow has been created, throws if not
32996
- * @param [ensureSearchable] - whether or not to poll after successful checkin to ensure that the flow is available for flow
32997
- * search operations such as {@link ArchFactoryFlows#getFlowInfoByFlowNameAsync} or {@link ArchFactoryFlows#getFlowInfoByFlowIdAsync}
32998
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
32999
- * flow instance.
33000
- */
33001
- checkInAsync(ensureSearchable?: boolean): Promise<ArchBaseFlow | undefined>;
33002
- /**
33003
- * Creates a new flow on the server and saves its configuration
33004
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
33005
- * flow instance.
33006
- */
33007
- createAsync(): Promise<any>;
33008
- /**
33009
- * Accessing this property returns an object with properties whose keys are data type names and values are
33010
- * {@link ArchDataType} instances.
33011
- */
33012
- readonly dataTypes: any;
33013
- /**
33014
- * The description of the flow
33015
- */
33016
- description: string;
33017
- /**
33018
- * Exports the current flow to a file in the specified directory. This destination directory *must* exist
33019
- * for the export to succeed. Note that this uses the file system and should not be used when running in a
33020
- * browser.
33021
- * @param [destinationDir] - the directory where the flow export should be saved.
33022
- * @param [callbackFunction] - the function to call back and pass in the full path where the
33023
- * flow export was saved.
33024
- * @param [flowFormat = ArchEnums.FLOW_FORMAT_TYPES.architect] - the desired flow format to use for the export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export formats. If no format is used,
33025
- * it will default to the Architect format.
33026
- * @param [fileName] - the file name to use for the exported flow. If a file extension is not added to the file name, it will use the default file extension for the desired export type for
33027
- * the desired export format and flow that you are exporting. If the format is YAML, the extension is always '.yaml' regardless of flow type. However, if it is the Architect format, the extension is unique per flow-type.
33028
- * To find the correct file extension for the Architect format, you can either export a flow from the Architect UI or look at the [flow definition]{@link ArchBaseFlow#definition}
33029
- * for a flow type and access the [fileExtension]{@link ArchDefinitionFlow#fileExtension} property to get the value. If an extension is found on the file name other than what is
33030
- * expected, the correct extension will be appended to the end of the exported file as per the logic described previously.
33031
- */
33032
- exportToDirAsync(destinationDir?: string, callbackFunction?: callbackExportFullPath, flowFormat?: string, fileName?: string): Promise<string>;
33033
- /**
33034
- * Exports the flow to a JSON object. The object passed back in the callback function
33035
- * will be a JSON object with a content and fileName property where the content holds
33036
- * the flow export contents and the fileName property holds the file name where the
33037
- * export would be written if {@link ArchBaseFlow#exportToDirAsync} is called.
33038
- * @param callbackFunction - the function to call back with the export information contained
33039
- * in the parameter passed to it.
33040
- * @param [flowFormat = archEnums.FLOW_FORMAT_TYPES.architect] - the desired export format to use on an export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export formats. If no format is used,
33041
- * it will default to the Architect format.
33042
- */
33043
- exportToObjectAsync(callbackFunction: callbackExportObject, flowFormat?: string): Promise<ExportInfoType>;
33044
- /**
33045
- * The type of the flow. The string
33046
- * values in {@link ArchEnums#FLOW_TYPES} lists valid flow type values.
33047
- */
33048
- readonly flowType: string;
33049
- /**
33050
- * This function will return the file path where a flow export will be written when calling the {@link ArchBaseFlow#exportToDirAsync}
33051
- * method for the supplied destination directory and export flow format. A typical use case for this function would be
33052
- * to get the export file path prior to calling the {@link ArchBaseFlow#exportToDirAsync} so you could see if the file already exists
33053
- * and decide if you want to perform an export or not since {@link ArchBaseFlow#exportToDirAsync} will attempt to overwrite
33054
- * a file if it already exists. Note that this uses the file system and should not be used when running in a
33055
- * browser.
33056
- * @param [destinationDir] - the directory where the flow export should be written. If no directory path is given, this method uses the
33057
- * current working directory. If a relative path is supplied, it will be resolved relative to the current
33058
- * working directory.
33059
- * @param [flowFormat = ArchEnums.FLOW_FORMAT_TYPES.architect] - the desired flow format to use for the export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export
33060
- * formats. If no format is supplied, it will use the Architect format.
33061
- * @param [fileName] - the file name to use for the exported flow. If a file extension is not added to the file name, it will use the default file extension for the desired export type for
33062
- * the desired export format and flow that you are exporting. If the format is YAML, the extension is always '.yaml' regardless of flow type. However, if it is the Architect format, the extension is unique per flow-type.
33063
- * To find the correct file extension for the Architect format, you can either export a flow from the Architect UI or look at the [flow definition]{@link ArchBaseFlow#definition}
33064
- * for a flow type and access the [fileExtension]{@link ArchDefinitionFlow#fileExtension} property to get the value. If an extension is found on the file name other than what is
33065
- * expected, the correct extension will be appended to the end of the exported file as per the logic described previously.
33066
- */
33067
- getExportFilePath(destinationDir?: string, flowFormat?: string, fileName?: string): string;
33068
- /**
33069
- * Returns the flow scoped variable for the supplied variable identifier ( if it exists ).
33070
- * If the variable name cannot be found, nothing is returned.
33071
- * @param variableId - the supllied variable identifier to look up such as __CALL_ANI__.
33072
- */
33073
- getVariableById<T extends ArchBaseVariable = ArchBaseVariable>(variableId: string): T;
33074
- /**
33075
- * Returns the flow scoped variable for the supplied fully scoped variable name ( if it exists ). Remember, looking
33076
- * up variables by name is case insensitive. If the variable name cannot be found, nothing is returned.
33077
- * @param variableName - the fully scoped variable name to look up such as Flow.MyVar.
33078
- */
33079
- getVariableByName<T extends ArchBaseVariable = ArchBaseVariable>(variableName: string): T;
33080
- /**
33081
- * Imports the flow content from the supplied content string. This content string should be for a flow of the
33082
- * same type as the one you're importing in to. Upon successful import, the callback function passed in
33083
- * will be called. Importing flow contents in to a flow is something where you should *not* attempt to
33084
- * do work with the flow on which this is being called until the callback is called.
33085
- * @param exportContent - the contents from a flow export.
33086
- * @param [callbackFunction] - a function to call if the export content successfully loaded and configured
33087
- * on this flow. The first parameter passed to the callback function will be this
33088
- * Architect flow instance.
33089
- */
33090
- importFromContentAsync<T extends ArchBaseFlow = ArchBaseFlow>(exportContent: string, callbackFunction?: (...params: any[]) => any): Promise<T>;
33091
- /**
33092
- * Imports the flow content from the supplied file path. Upon successful import, the callback function passed in
33093
- * will be called. Importing flow contents in to a flow is something where you should *not* attempt to
33094
- * do work with the flow on which this is being called until the callback is called.
33095
- * Also note that this method should not be used if running in a browser.
33096
- * @param exportFilePath - the file path to an Architect flow export file that should be imported.
33097
- * @param [callbackFunction] - a function to call if the export content successfully loaded and configured
33098
- * on this flow. The first parameter passed to the callback function will be this
33099
- * Architect flow instance.
33100
- */
33101
- importFromFileAsync<T extends ArchBaseFlow = ArchBaseFlow>(exportFilePath: string, callbackFunction?: (...params: any[]) => any): Promise<T>;
33102
- /**
33103
- * Returns whether or not the flow is created in Genesys Cloud.
33104
- */
33105
- readonly isCreated: boolean;
33106
- /**
33107
- * Returns whether or not the flow is read-only. Flows that have been created locally in
33108
- * scripting but not saved, checked in or published will report that they are not read-only.
33109
- */
33110
- readonly isReadOnly: boolean;
33111
- /**
33112
- * Returns whether or not the flow is secure. That means it contains something that is
33113
- * secure like a secure variable or secure action.
33114
- */
33115
- readonly isSecure: boolean;
33116
- /**
33117
- * Returns true indicating the flow acts as a variable container which means you can
33118
- * add variables to it.
33119
- */
33120
- readonly isVariableContainer: boolean;
33121
- /**
33122
- * The language settings for the flow. This property is now deprecated.
33123
- * Please replace calls to this property with {@link ArchBaseFlow#settingsSupportedLanguages} instead.
33124
- */
33125
- readonly languageSettings: ArchSettingsSupportedLanguagesFlow;
33126
- /**
33127
- * The name of the flow
33128
- */
33129
- name: string;
33130
- /**
33131
- * Publishes the flow. This will do a validate, save, checkin and then publish last. Any of these
33132
- * steps can fail and reject the promise. Operations are not atomic.
33133
- * @param [ensureSearchable] - whether or not to poll after successful publish to ensure that the flow is available for flow
33134
- * search operations such as {@link ArchFactoryFlows#getFlowInfoByFlowNameAsync} or {@link ArchFactoryFlows#getFlowInfoByFlowIdAsync}
33135
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
33136
- * flow instance.
33137
- */
33138
- publishAsync(ensureSearchable?: boolean): Promise<any>;
33139
- /**
33140
- * Save the current flow configuration, creating the flow if needed.
33141
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
33142
- * flow instance.
33143
- */
33144
- saveAsync(): Promise<any>;
33145
- /**
33146
- * Returns the error handling settings for the flow.
33147
- */
33148
- readonly settingsErrorHandling: ArchSettingsEventErrorFlow;
33149
- /**
33150
- * Returns the action default settings for the flow.
33151
- */
33152
- readonly settingsActionDefaults: ArchSettingsActionDefaults;
33153
- /**
33154
- * The supported language settings for the flow.
33155
- * This method will throw if the flow doesn't support languages. You can check {@link ArchBaseFlow#supportsLanguages} prior
33156
- * to calling this method to see if a flow supports languages or not.
33157
- */
33158
- readonly settingsSupportedLanguages: ArchSettingsSupportedLanguagesFlow;
33159
- /**
33160
- * Returns whether or not this flow supports audio channel.
33161
- */
33162
- readonly supportsAudio: boolean;
33163
- /**
33164
- * Returns whether or not this flow supports error handling.
33165
- */
33166
- readonly supportsErrorHandling: boolean;
33167
- /**
33168
- * Returns whether or not this flow supports languages. If false, that means you have to configure the flow
33169
- * when creating it to use English United States.
33170
- * Note: At this time this functionality is available while we're determining the needs of workflow and
33171
- * inbound email flow types. This property may go away in a future release of Architect Scripting.
33172
- */
33173
- readonly supportsLanguages: boolean;
33174
- /**
33175
- * Returns whether or not this flow supports setting a supported language as the default.
33176
- */
33177
- readonly supportsDefaultLanguage: boolean;
33178
- /**
33179
- * Returns a URL for this flow. If the flow has not been created or there is no startup object set on the flow,
33180
- * the returned URL will be blank.
33181
- */
33182
- readonly url: string;
33183
- /**
33184
- * Validates the flow. Promise returns an {@link ArchValidationResults} instance.
33185
- * @returns - On your promise's then handler, the first parameter passed to the then function will be the
33186
- * validation results.
33187
- */
33188
- validateAsync(): Promise<ArchValidationResults>;
33189
- /**
33190
- * Returns an array of variables defined at the flow scope for this flow.
33191
- */
33192
- readonly variables: ArchBaseVariable[];
33193
- /**
33194
- * The identifier string for this object.
33195
- */
33196
- readonly id: string;
33197
- /**
33198
- * Returns whether or not the id property may be blank or undefined for this object. For example, the returned settings from {@link ArchMenu#settingsMenu}
33199
- * will have a blank identifier along with the settings returned from {@link ArchMenu#settingsSpeechRec}. Note that this is
33200
- * an extremely rare case.
33201
- */
33202
- readonly idMayBeBlank: string;
33203
- /**
33204
- * Returns true indicating that this is an ArchBaseCoreObject instance.
33205
- */
33206
- readonly isArchBaseCoreObject: boolean;
33207
- /**
33208
- * This method iterates over this object and ArchBaseCoreObject instances
33209
- * within it. For each object it will call the {@link ArchBaseObject#isFilterMatch} method
33210
- * with a filter and call the supplied callback function if isMatch returns true.
33211
- * The callback will be passed an {@link ArchTraverseInfo} with details
33212
- * about the match such as the match object itself along with current contextual
33213
- * information such as the object hierarchy for the match object relative to
33214
- * the object on which this traverse call is being made.
33215
- *
33216
- * The traverse [filter]{@link ArchFilterObject} is one which you can create
33217
- * by calling {@link ArchFactoryFilters#createFilterObject} and then add desired clauses
33218
- * or clause containers to it. If not specified, this function will use a
33219
- * [default filter]{@link ArchFactoryFilters#createFilterTraverseDefault}.
33220
- *
33221
- * Here is an example that does a simple flow traversal using the default
33222
- * filter and logs information about objects in the callback from the
33223
- * traverse object that's passed back:
33224
- *
33225
- * ```
33226
- * archInboundCallFlow.traverse(function(traverseInfo) {
33227
- * archLogging.logNote(' Object : ' + traverseInfo.matchObject.logStr);
33228
- * archLogging.logNote(' Hierarchy: ' + traverseInfo.context.hierarchyStr);
33229
- * });
33230
- * ```
33231
- * This might be enough for most uses and you can check various aspects
33232
- * about the object in the callback such as "is this an Architect action?" by
33233
- * seeing if traverseInfo.matchObject.isArchBaseAction is true. You can specify
33234
- * a filter for the traversal code to use as well and only have it call your
33235
- * callback when the object's {@link ArchBaseCoreObject#isFilterMatch} method returns true for
33236
- * the filter. Here's an example that creates a filter for callbacks on
33237
- * [any type of transfer action]{@link ArchBaseActionTransfer}, any
33238
- * [decision action]{@link ArchActionDecision} or objects whose name
33239
- * property case insensitively matches the word 'foo'. While this could all be done
33240
- * with one property callback clause the example will use multiple clauses for
33241
- * the sake of simplicity:
33242
- * ```
33243
- * const myTraverseFilter = filterFactory.createFilterObject(archEnums.FILTER_CONTAINER_OPERATORS.or);
33244
- * myTraverseFilter.addClausePropertyValueEquals('isArchBaseActionTransfer', true);
33245
- * myTraverseFilter.addClausePropertyValueEquals('isArchActionDecision', true);
33246
- * myTraverseFilter.addClausePropertyCallback('name', function(propValue, archContainingObject, propName) {
33247
- * // We fully spelled out the function signature above but archContainingObject and propName are
33248
- * // not needed in this case. The archContainingObject is the object that contains the
33249
- * // property and propName is the property name itself. We pass in propName because the same
33250
- * // function could be used for multiple property callback clauses.
33251
- * // Remember to return a boolean true, false or undefined from ths callback. :)
33252
- * return propValue && propValue.toLowerCase() === 'foo';
33253
- * });
33254
- * archTask.traverse(function(traverseContext) {
33255
- * // You will only be called back here for ArchBaseCoreObject instances that
33256
- * // have the isArchBaseActionTransfer or isArchActionDecision property values equal to true.
33257
- * }, myTraverseFilter);
33258
- * ```
33259
- * If you supply a filter with no clauses, this tells the traverse method to
33260
- * call the supplied callback function for every {@link ArchBaseCoreObject} it traverses.
33261
- *
33262
- * If you want traversal itself to stop after a callback, simply return boolean
33263
- * false from the callback function you supply to the traverse call.
33264
- *
33265
- * The traverse method does not process deprecated property names such as [orgId]{@link ArchSession#orgId},
33266
- * [orgName]{@link ArchSession#orgName} or [languageSettings]{@link ArchBaseFlow#languageSettings}. Additionally
33267
- * it does not traverse in to properties that would "jump out" of the current traversal. An example of this
33268
- * would be if the code was traversing an {@link ArchActionJumpToMenu} action that it would not start traversing
33269
- * in to the menu that it jumps to. Another example would be a {@link ArchActionChangeState} action where
33270
- * it would not traverse in to the target state of the action. This also means traversal does not traverse
33271
- * in to the {@link ArchBaseValue#flowLevelDefault} property.
33272
- *
33273
- * And lastly, as Scripting evolves over time with new versions, you can expect to get callbacks for new object
33274
- * types such as new actions or new properties on objects. As such, it's important not to assume any particular
33275
- * order in callbacks to keep code most compatible with traversal callbacks. Or if you use inequality checks in filter
33276
- * clauses remember that new "stuff" may satisfy an inequality check which may or may not be anticipated in your logic.
33277
- *
33278
- * Note: This traverse method is a helper method and is very handy for iterating over Architect Scripting
33279
- * objects and their properties in a generic fashion with filtering capabilities. Obviously you can write
33280
- * your own custom traversal code if this implementation doesn't cut it for some reason. :)
33281
- *
33282
- * This function returns the number of times it called the callback function.
33283
- * @param callbackFunction - the callback function to call for objects that match the traverse filter.
33284
- * @param [traverseFilter = {@link ArchFactoryFilters#createFilterTraverseDefault}] - the filter to use when performing the traversal to determine which
33285
- * {@link ArchBaseCoreObject} instances you wish to be called back for. If no
33286
- * filter is specified, this function will call {@link ArchFactoryFilters#createFilterTraverseDefault} and
33287
- * use that traversal default filter. The wantArchBaseValues parameter on that call is set to true.
33288
- */
33289
- traverse(callbackFunction: callbackTraverseInfo, traverseFilter?: ArchFilterObject): number;
33290
- /**
33291
- * This is a string suitable for logging information about this object where it's just the object's type. This is normally used
33292
- * when logging errors that occur in constructor parameter checking because the scripting object isn't set up and the normal
33293
- * logging str contents wouldn't be set up.
33294
- */
33295
- readonly logStrTypeOnly: string;
33296
- /**
33297
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true.
33298
- * @param errorStr - the error string to log.
33299
- */
33300
- logError(errorStr: string): void;
33301
- /**
33302
- * Logs an error to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logErrors} is true and then throws
33303
- * the string in the errorStr parameter.
33304
- * @param errorStr - the error string to log. This should be a non-blank string.
33305
- */
33306
- logErrorAndThrow(errorStr: string): void;
33307
- /**
33308
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotes} is true.
33309
- * @param noteStr - the note string to log. This should be a non-blank string.
33310
- */
33311
- logNote(noteStr: string): void;
33312
- /**
33313
- * Logs a note to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logNotesVerbose} is true.
33314
- * @param noteStr - the note string to log. This should be a non-blank string.
33315
- */
33316
- logNoteVerbose(noteStr: string): void;
33317
- /**
33318
- * Logs a warning to the logging service with a log header from this object's [logStr]{@link ArchBaseObject#logStr} property value when {@link ArchLogging#logWarnings} is true.
33319
- * @param warningStr - the warning string to log. This should be a non-blank string.
33320
- */
33321
- logWarning(warningStr: string): void;
33322
- /**
33323
- * Returns whether or not this Architect Scripting object is a match
33324
- * for the supplied ArchFilterObject instance.
33325
- * @param archFilterObject - the object filter to use to determine if it's a match.
33326
- */
33327
- isFilterMatch(archFilterObject: ArchFilterObject): boolean;
33328
- }
33329
-
33330
- export class ArchFlowSurveyInvite extends ArchBaseFlowWorkflow {
33331
- // constructor(coreSurveyInviteViewModel: any);
33332
- /**
33333
- * Returns the display type name string 'ArchFlowSurveyInvite'.
33334
- */
33335
- readonly displayTypeName: string;
33336
- /**
33337
- * Returns true indicating that this is an ArchFlowSurveyInvite instance.
33338
- */
33339
- readonly isArchFlowSurveyInvite: boolean;
33340
- /**
33341
- * This function deletes the specified state from this flow.
33342
- * @param stateToDelete - the state to delete.
33343
- */
33344
- deleteState(stateToDelete: ArchState): void;
33345
- /**
33346
- * Sets the specified state to be the starting state on the flow.
33347
- * @param archState - An Architect Scripting state object.
33348
- */
33349
- setStartingState(archState: ArchState): void;
33350
- /**
33351
- * Returns the starting state for this flow.
33352
- * If there is no startup object configured, accessing this property returns null.
33353
- */
33354
- readonly startUpObject: ArchState;
33355
- /**
33356
- * The states in the flow.
33357
- */
33358
- readonly states: ArchState[];
33359
- /**
33360
- * This function deletes the specified reusable task from this flow.
33361
- * @param taskToDelete - the task to delete. This must be a reusable task which means the {@link ArchTask#isReusableTask}
33362
- * property on the specified task instance is true.
33363
- */
33364
- deleteTask(taskToDelete: ArchTask): void;
33365
- /**
33366
- * Returns an array of the currently defined reusable tasks for this flow.
33367
- */
33368
- readonly tasksReusable: ArchTask[];
33369
- /**
33370
- * This adds a new variable to the flow.
33371
- * @param name - the name of the variable to add. Remember that variable names must
33372
- * start with a letter and can then be followed by one or more letters, numbers
33373
- * or underscore characters to be valid. Submitting the variable scope on the name
33374
- * is optional. If specified, it must be 'Flow.' in order to be valid since you're
33375
- * adding the variable to a flow. You can also specify 'Slot.' to add a slot variable
33376
- * to the flow as long as the forceSlotVariableCreation parameter is true.
33377
- * @param type - the data type for the new variable. Remember that type must be supported
33378
- * in the flow type for which you're looking to add the variable. If you are
33379
- * not sure if a type is creatable, see the {@link ArchDataType#isScriptCreatableForFlowType} or
33380
- * {@link ArchDataType#isScriptCreatableForFlow} method.
33381
- * @param [description] - the description for the new variable.
33382
- * @param [forceSlotVariableCreation] - if true, will force the creation of a slot variable even when a Slot is not created in the Natural Language Understanding (NLU).
33383
- */
33384
- addVariable(name: string, type: ArchDataType, description?: string, forceSlotVariableCreation?: boolean): ArchBaseVariable;
33385
- /**
33386
- * This deletes the supplied variable from the flow. Remember you can call {@link ArchBaseVariable#canDelete}
33387
- * prior to calling this method to know if the supplied flow scoped variable can be deleted.
33388
- * @param archVariable - the flow scoped variable you wish to delete
33389
- * @returns - true if the variable was removed successfully, false otherwise.
33390
- */
33391
- removeVariable(archVariable: ArchBaseVariable): boolean;
33392
- /**
33393
- * Checkout this flow. This function returns an ArchInfo instance for it to the supplied callback function.
33394
- * @param [forceUnlock] - if true, will force an unlock of the flow.
33395
- * @param [callbackFunction] - a callback function to call if the flow was checked out.
33396
- * @returns - while this method returns a promise, you should use the callback function to perform any processing once the flow is checked out.
33397
- */
33398
- checkoutAsync(forceUnlock?: boolean, callbackFunction?: callbackVoid): Promise<ArchFlowInfo>;
33399
- /**
33400
- * Returns the division associated with this flow.
33401
- * This method first calls {@link ArchOrganizationInfo#areDivisionsAvailable} to ensure that divisions are available.
33402
- * If not available, nothing is returned.
33403
- */
33404
- readonly division: ArchDivision;
33405
- /**
33406
- * Loads a specific version of the flow. Any previously returned Architect Scripting objects associated with this flow should no
33407
- * longer be considered valid after loading new configuration.
33408
- * @param [flowVersion = "latest"] - the version of the flow to get. Valid values are "latest" to get the latest saved configuration of a flow,
33409
- * a version value such as "2.0" or "2", "debug" to get the currently published debug version configuration of a flow,
33410
- * or "published" to get the currently published version configuration of a flow. If you do not specify a version, then the latest saved configuration will be loaded.
33411
- * @param [callbackFunction] - a callback function to call if the flow was loaded.
33412
- * @returns - while this method returns a promise, you should use the callback function to perform any processing when the flow is loaded.
33413
- */
33414
- loadAsync(flowVersion?: string, callbackFunction?: callbackVoid): Promise<any>;
33415
- /**
33416
- * Returns a string suitable for logging that describes the flow
33417
- */
33418
- readonly logStr: string;
33419
- /**
33420
- * Unlocks this flow.
33421
- * @param [callbackFunction] - a callback function to call if the flow can be unlocked.
33422
- * @returns - while this method returns a promise, you should use the callback function to perform any processing once this flow is unlocked.
33423
- */
33424
- unlockAsync(callbackFunction?: callbackVoid): Promise<any>;
33425
- /**
33426
- * Helper method that accesses the flow's [settingsSupportedLanguages]{@link ArchBaseFlow#settingsSupportedLanguages} and then calls
33427
- * the [addSupportedLanguage]{@link ArchSettingsSupportedLanguagesFlow#addSupportedLanguage} function on the returned {@link ArchSettingsSupportedLanguagesFlow}
33428
- * value.
33429
- * @param archLanguage - the language to add to supported languages on the flow. Note that any language used as a supported
33430
- * language must have at least one region sub-tag.
33431
- * @param [setAsDefaultLanguage] - if true, the language will be set as the default language on the flow.
33432
- */
33433
- addFlowSupportedLanguage(archLanguage: ArchLanguage, setAsDefaultLanguage?: boolean): ArchSettingsSupportedLanguage;
33434
- /**
33435
- * Checks flow to see if a language can be added in its current state. Some flows may have restrictions
33436
- * if any or more than one can be added.
33437
- */
33438
- canAddSupportedLanguage(): boolean;
33439
- /**
33440
- * Checks in and unlocks the flow for the current user, does a save first
33441
- * Assumes the flow has been created, throws if not
33442
- * @param [ensureSearchable] - whether or not to poll after successful checkin to ensure that the flow is available for flow
33443
- * search operations such as {@link ArchFactoryFlows#getFlowInfoByFlowNameAsync} or {@link ArchFactoryFlows#getFlowInfoByFlowIdAsync}
33444
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
33445
- * flow instance.
33446
- */
33447
- checkInAsync(ensureSearchable?: boolean): Promise<ArchBaseFlow | undefined>;
33448
- /**
33449
- * Creates a new flow on the server and saves its configuration
33450
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
33451
- * flow instance.
33452
- */
33453
- createAsync(): Promise<any>;
33454
- /**
33455
- * Accessing this property returns an object with properties whose keys are data type names and values are
33456
- * {@link ArchDataType} instances.
33457
- */
33458
- readonly dataTypes: any;
33459
- /**
33460
- * The description of the flow
33461
- */
33462
- description: string;
33463
- /**
33464
- * Exports the current flow to a file in the specified directory. This destination directory *must* exist
33465
- * for the export to succeed. Note that this uses the file system and should not be used when running in a
33466
- * browser.
33467
- * @param [destinationDir] - the directory where the flow export should be saved.
33468
- * @param [callbackFunction] - the function to call back and pass in the full path where the
33469
- * flow export was saved.
33470
- * @param [flowFormat = ArchEnums.FLOW_FORMAT_TYPES.architect] - the desired flow format to use for the export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export formats. If no format is used,
33471
- * it will default to the Architect format.
33472
- * @param [fileName] - the file name to use for the exported flow. If a file extension is not added to the file name, it will use the default file extension for the desired export type for
33473
- * the desired export format and flow that you are exporting. If the format is YAML, the extension is always '.yaml' regardless of flow type. However, if it is the Architect format, the extension is unique per flow-type.
33474
- * To find the correct file extension for the Architect format, you can either export a flow from the Architect UI or look at the [flow definition]{@link ArchBaseFlow#definition}
33475
- * for a flow type and access the [fileExtension]{@link ArchDefinitionFlow#fileExtension} property to get the value. If an extension is found on the file name other than what is
33476
- * expected, the correct extension will be appended to the end of the exported file as per the logic described previously.
33477
- */
33478
- exportToDirAsync(destinationDir?: string, callbackFunction?: callbackExportFullPath, flowFormat?: string, fileName?: string): Promise<string>;
33479
- /**
33480
- * Exports the flow to a JSON object. The object passed back in the callback function
33481
- * will be a JSON object with a content and fileName property where the content holds
33482
- * the flow export contents and the fileName property holds the file name where the
33483
- * export would be written if {@link ArchBaseFlow#exportToDirAsync} is called.
33484
- * @param callbackFunction - the function to call back with the export information contained
33485
- * in the parameter passed to it.
33486
- * @param [flowFormat = archEnums.FLOW_FORMAT_TYPES.architect] - the desired export format to use on an export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export formats. If no format is used,
33487
- * it will default to the Architect format.
33488
- */
33489
- exportToObjectAsync(callbackFunction: callbackExportObject, flowFormat?: string): Promise<ExportInfoType>;
33490
- /**
33491
- * The type of the flow. The string
33492
- * values in {@link ArchEnums#FLOW_TYPES} lists valid flow type values.
33493
- */
33494
- readonly flowType: string;
33495
- /**
33496
- * This function will return the file path where a flow export will be written when calling the {@link ArchBaseFlow#exportToDirAsync}
33497
- * method for the supplied destination directory and export flow format. A typical use case for this function would be
33498
- * to get the export file path prior to calling the {@link ArchBaseFlow#exportToDirAsync} so you could see if the file already exists
33499
- * and decide if you want to perform an export or not since {@link ArchBaseFlow#exportToDirAsync} will attempt to overwrite
33500
- * a file if it already exists. Note that this uses the file system and should not be used when running in a
33501
- * browser.
33502
- * @param [destinationDir] - the directory where the flow export should be written. If no directory path is given, this method uses the
33503
- * current working directory. If a relative path is supplied, it will be resolved relative to the current
33504
- * working directory.
33505
- * @param [flowFormat = ArchEnums.FLOW_FORMAT_TYPES.architect] - the desired flow format to use for the export. See {@link ArchEnums#FLOW_FORMAT_TYPES} for allowable export
33506
- * formats. If no format is supplied, it will use the Architect format.
33507
- * @param [fileName] - the file name to use for the exported flow. If a file extension is not added to the file name, it will use the default file extension for the desired export type for
33508
- * the desired export format and flow that you are exporting. If the format is YAML, the extension is always '.yaml' regardless of flow type. However, if it is the Architect format, the extension is unique per flow-type.
33509
- * To find the correct file extension for the Architect format, you can either export a flow from the Architect UI or look at the [flow definition]{@link ArchBaseFlow#definition}
33510
- * for a flow type and access the [fileExtension]{@link ArchDefinitionFlow#fileExtension} property to get the value. If an extension is found on the file name other than what is
33511
- * expected, the correct extension will be appended to the end of the exported file as per the logic described previously.
33512
- */
33513
- getExportFilePath(destinationDir?: string, flowFormat?: string, fileName?: string): string;
33514
- /**
33515
- * Returns the flow scoped variable for the supplied variable identifier ( if it exists ).
33516
- * If the variable name cannot be found, nothing is returned.
33517
- * @param variableId - the supllied variable identifier to look up such as __CALL_ANI__.
33518
- */
33519
- getVariableById<T extends ArchBaseVariable = ArchBaseVariable>(variableId: string): T;
33520
- /**
33521
- * Returns the flow scoped variable for the supplied fully scoped variable name ( if it exists ). Remember, looking
33522
- * up variables by name is case insensitive. If the variable name cannot be found, nothing is returned.
33523
- * @param variableName - the fully scoped variable name to look up such as Flow.MyVar.
33524
- */
33525
- getVariableByName<T extends ArchBaseVariable = ArchBaseVariable>(variableName: string): T;
33526
- /**
33527
- * Imports the flow content from the supplied content string. This content string should be for a flow of the
33528
- * same type as the one you're importing in to. Upon successful import, the callback function passed in
33529
- * will be called. Importing flow contents in to a flow is something where you should *not* attempt to
33530
- * do work with the flow on which this is being called until the callback is called.
33531
- * @param exportContent - the contents from a flow export.
33532
- * @param [callbackFunction] - a function to call if the export content successfully loaded and configured
33533
- * on this flow. The first parameter passed to the callback function will be this
33534
- * Architect flow instance.
33535
- */
33536
- importFromContentAsync<T extends ArchBaseFlow = ArchBaseFlow>(exportContent: string, callbackFunction?: (...params: any[]) => any): Promise<T>;
33537
- /**
33538
- * Imports the flow content from the supplied file path. Upon successful import, the callback function passed in
33539
- * will be called. Importing flow contents in to a flow is something where you should *not* attempt to
33540
- * do work with the flow on which this is being called until the callback is called.
33541
- * Also note that this method should not be used if running in a browser.
33542
- * @param exportFilePath - the file path to an Architect flow export file that should be imported.
33543
- * @param [callbackFunction] - a function to call if the export content successfully loaded and configured
33544
- * on this flow. The first parameter passed to the callback function will be this
33545
- * Architect flow instance.
33546
- */
33547
- importFromFileAsync<T extends ArchBaseFlow = ArchBaseFlow>(exportFilePath: string, callbackFunction?: (...params: any[]) => any): Promise<T>;
33548
- /**
33549
- * Returns whether or not the flow is created in Genesys Cloud.
33550
- */
33551
- readonly isCreated: boolean;
33552
- /**
33553
- * Returns whether or not the flow is read-only. Flows that have been created locally in
33554
- * scripting but not saved, checked in or published will report that they are not read-only.
33555
- */
33556
- readonly isReadOnly: boolean;
33557
- /**
33558
- * Returns whether or not the flow is secure. That means it contains something that is
33559
- * secure like a secure variable or secure action.
33560
- */
33561
- readonly isSecure: boolean;
33562
- /**
33563
- * Returns true indicating the flow acts as a variable container which means you can
33564
- * add variables to it.
33565
- */
33566
- readonly isVariableContainer: boolean;
33567
- /**
33568
- * The language settings for the flow. This property is now deprecated.
33569
- * Please replace calls to this property with {@link ArchBaseFlow#settingsSupportedLanguages} instead.
33570
- */
33571
- readonly languageSettings: ArchSettingsSupportedLanguagesFlow;
33572
- /**
33573
- * The name of the flow
33574
- */
33575
- name: string;
33576
- /**
33577
- * Publishes the flow. This will do a validate, save, checkin and then publish last. Any of these
33578
- * steps can fail and reject the promise. Operations are not atomic.
33579
- * @param [ensureSearchable] - whether or not to poll after successful publish to ensure that the flow is available for flow
33580
- * search operations such as {@link ArchFactoryFlows#getFlowInfoByFlowNameAsync} or {@link ArchFactoryFlows#getFlowInfoByFlowIdAsync}
33581
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
33582
- * flow instance.
33583
- */
33584
- publishAsync(ensureSearchable?: boolean): Promise<any>;
33585
- /**
33586
- * Save the current flow configuration, creating the flow if needed.
33587
- * @returns - On your promise's then handler, the first parameter passed to the then function will be this
33588
- * flow instance.
33589
- */
33590
- saveAsync(): Promise<any>;
33591
- /**
33592
- * Returns the error handling settings for the flow.
33593
- */
33594
- readonly settingsErrorHandling: ArchSettingsEventErrorFlow;
33595
- /**
33596
- * Returns the action default settings for the flow.
33597
- */
33598
- readonly settingsActionDefaults: ArchSettingsActionDefaults;
33599
- /**
33600
- * The supported language settings for the flow.
33601
- * This method will throw if the flow doesn't support languages. You can check {@link ArchBaseFlow#supportsLanguages} prior
33602
- * to calling this method to see if a flow supports languages or not.
33603
- */
33604
- readonly settingsSupportedLanguages: ArchSettingsSupportedLanguagesFlow;
33605
- /**
33606
- * Returns whether or not this flow supports audio channel.
33607
- */
33608
- readonly supportsAudio: boolean;
33609
- /**
33610
- * Returns whether or not this flow supports error handling.
33611
- */
33612
- readonly supportsErrorHandling: boolean;
33613
- /**
33614
- * Returns whether or not this flow supports languages. If false, that means you have to configure the flow
33615
- * when creating it to use English United States.
33616
- * Note: At this time this functionality is available while we're determining the needs of workflow and
33617
- * inbound email flow types. This property may go away in a future release of Architect Scripting.
33618
- */
33619
- readonly supportsLanguages: boolean;
33620
- /**
33621
- * Returns whether or not this flow supports setting a supported language as the default.
33622
- */
33623
- readonly supportsDefaultLanguage: boolean;
33624
- /**
33625
- * Returns a URL for this flow. If the flow has not been created or there is no startup object set on the flow,
33626
- * the returned URL will be blank.
33627
- */
33628
- readonly url: string;
33629
- /**
33630
- * Validates the flow. Promise returns an {@link ArchValidationResults} instance.
33631
- * @returns - On your promise's then handler, the first parameter passed to the then function will be the
33632
- * validation results.
33633
- */
33634
- validateAsync(): Promise<ArchValidationResults>;
33635
- /**
33636
- * Returns an array of variables defined at the flow scope for this flow.
33637
- */
33638
- readonly variables: ArchBaseVariable[];
33639
- /**
33640
- * The identifier string for this object.
33641
- */
33642
- readonly id: string;
33643
- /**
33644
- * Returns whether or not the id property may be blank or undefined for this object. For example, the returned settings from {@link ArchMenu#settingsMenu}
33645
- * will have a blank identifier along with the settings returned from {@link ArchMenu#settingsSpeechRec}. Note that this is
33646
- * an extremely rare case.
33647
- */
33648
- readonly idMayBeBlank: string;
33649
- /**
33650
- * Returns true indicating that this is an ArchBaseCoreObject instance.
33651
- */
33652
- readonly isArchBaseCoreObject: boolean;
33653
- /**
33654
- * This method iterates over this object and ArchBaseCoreObject instances
33655
- * within it. For each object it will call the {@link ArchBaseObject#isFilterMatch} method
33656
- * with a filter and call the supplied callback function if isMatch returns true.
33657
- * The callback will be passed an {@link ArchTraverseInfo} with details
33658
- * about the match such as the match object itself along with current contextual
33659
- * information such as the object hierarchy for the match object relative to
33660
- * the object on which this traverse call is being made.
33661
- *
33662
- * The traverse [filter]{@link ArchFilterObject} is one which you can create
33663
- * by calling {@link ArchFactoryFilters#createFilterObject} and then add desired clauses
33664
- * or clause containers to it. If not specified, this function will use a
33665
- * [default filter]{@link ArchFactoryFilters#createFilterTraverseDefault}.
33666
- *
33667
- * Here is an example that does a simple flow traversal using the default
33668
- * filter and logs information about objects in the callback from the
33669
- * traverse object that's passed back:
33670
- *
33671
- * ```
33672
- * archInboundCallFlow.traverse(function(traverseInfo) {
33673
- * archLogging.logNote(' Object : ' + traverseInfo.matchObject.logStr);
33674
- * archLogging.logNote(' Hierarchy: ' + traverseInfo.context.hierarchyStr);
33675
- * });
33676
- * ```
33677
- * This might be enough for most uses and you can check various aspects
33678
- * about the object in the callback such as "is this an Architect action?" by
33679
- * seeing if traverseInfo.matchObject.isArchBaseAction is true. You can specify
33680
- * a filter for the traversal code to use as well and only have it call your
33681
- * callback when the object's {@link ArchBaseCoreObject#isFilterMatch} method returns true for
33682
- * the filter. Here's an example that creates a filter for callbacks on
33683
- * [any type of transfer action]{@link ArchBaseActionTransfer}, any
33684
- * [decision action]{@link ArchActionDecision} or objects whose name
33685
- * property case insensitively matches the word 'foo'. While this could all be done
33686
- * with one property callback clause the example will use multiple clauses for
33687
- * the sake of simplicity:
33688
- * ```
33689
- * const myTraverseFilter = filterFactory.createFilterObject(archEnums.FILTER_CONTAINER_OPERATORS.or);
33690
- * myTraverseFilter.addClausePropertyValueEquals('isArchBaseActionTransfer', true);
33691
- * myTraverseFilter.addClausePropertyValueEquals('isArchActionDecision', true);
33692
- * myTraverseFilter.addClausePropertyCallback('name', function(propValue, archContainingObject, propName) {
33693
- * // We fully spelled out the function signature above but archContainingObject and propName are
33694
- * // not needed in this case. The archContainingObject is the object that contains the
33695
- * // property and propName is the property name itself. We pass in propName because the same
33696
- * // function could be used for multiple property callback clauses.
33697
- * // Remember to return a boolean true, false or undefined from ths callback. :)
33698
- * return propValue && propValue.toLowerCase() === 'foo';
33699
- * });
33700
- * archTask.traverse(function(traverseContext) {
33701
- * // You will only be called back here for ArchBaseCoreObject instances that
33702
- * // have the isArchBaseActionTransfer or isArchActionDecision property values equal to true.
33703
- * }, myTraverseFilter);
33704
- * ```
33705
- * If you supply a filter with no clauses, this tells the traverse method to
33706
- * call the supplied callback function for every {@link ArchBaseCoreObject} it traverses.
33707
- *
33708
- * If you want traversal itself to stop after a callback, simply return boolean
33709
- * false from the callback function you supply to the traverse call.
33710
- *
33711
- * The traverse method does not process deprecated property names such as [orgId]{@link ArchSession#orgId},
33712
- * [orgName]{@link ArchSession#orgName} or [languageSettings]{@link ArchBaseFlow#languageSettings}. Additionally
33713
- * it does not traverse in to properties that would "jump out" of the current traversal. An example of this
33714
- * would be if the code was traversing an {@link ArchActionJumpToMenu} action that it would not start traversing
33715
- * in to the menu that it jumps to. Another example would be a {@link ArchActionChangeState} action where
33716
- * it would not traverse in to the target state of the action. This also means traversal does not traverse
33717
- * in to the {@link ArchBaseValue#flowLevelDefault} property.
33718
- *
33719
- * And lastly, as Scripting evolves over time with new versions, you can expect to get callbacks for new object
33720
- * types such as new actions or new properties on objects. As such, it's important not to assume any particular
33721
- * order in callbacks to keep code most compatible with traversal callbacks. Or if you use inequality checks in filter
33722
- * clauses remember that new "stuff" may satisfy an inequality check which may or may not be anticipated in your logic.
33723
- *
33724
- * Note: This traverse method is a helper method and is very handy for iterating over Architect Scripting
33725
- * objects and their properties in a generic fashion with filtering capabilities. Obviously you can write
33726
- * your own custom traversal code if this implementation doesn't cut it for some reason. :)
33727
- *
33728
- * This function returns the number of times it called the callback function.
33729
- * @param callbackFunction - the callback function to call for objects that match the traverse filter.
33730
- * @param [traverseFilter = {@link ArchFactoryFilters#createFilterTraverseDefault}] - the filter to use when performing the traversal to determine which
33731
- * {@link ArchBaseCoreObject} instances you wish to be called back for. If no
33732
- * filter is specified, this function will call {@link ArchFactoryFilters#createFilterTraverseDefault} and
33733
- * use that traversal default filter. The wantArchBaseValues parameter on that call is set to true.
33734
- */
33735
- traverse(callbackFunction: callbackTraverseInfo, traverseFilter?: ArchFilterObject): number;
30640
+ readonly versionStr: string;
33736
30641
  /**
33737
30642
  * This is a string suitable for logging information about this object where it's just the object's type. This is normally used
33738
30643
  * when logging errors that occur in constructor parameter checking because the scripting object isn't set up and the normal
@@ -33773,61 +30678,65 @@ export class ArchFlowSurveyInvite extends ArchBaseFlowWorkflow {
33773
30678
  isFilterMatch(archFilterObject: ArchFilterObject): boolean;
33774
30679
  }
33775
30680
 
33776
- export class ArchFlowVoiceSurvey extends ArchBaseFlowBot {
33777
- // constructor(coreVoiceSurveyFlowViewModel: any);
30681
+ export class ArchFlowOutboundCall extends ArchBaseFlowInboundOutboundSecureCall {
30682
+ // constructor(coreOutboundCallFlowViewModel: any);
33778
30683
  /**
33779
- * Returns the display type name string 'ArchFlowVoiceSurvey'.
30684
+ * Returns the display type name string 'ArchFlowOutboundCall'.
33780
30685
  */
33781
30686
  readonly displayTypeName: string;
33782
30687
  /**
33783
- * Returns true indicating that this is an ArchFlowVoiceSurvey instance.
30688
+ * Returns true indicating that this is an ArchFlowOutboundCall instance.
33784
30689
  */
33785
- readonly isArchFlowVoiceSurvey: boolean;
30690
+ readonly isArchFlowOutboundCall: boolean;
33786
30691
  /**
33787
- * The prompt settings for the flow. If no destination flow types configured on this Voice Survey flow support prompt settings,
33788
- * nothing is returned.
30692
+ * The initial audio set on the flow.
33789
30693
  */
33790
- readonly settingsPrompts: ArchSettingsPromptsFlow;
30694
+ readonly initialAudio: ArchAudio;
33791
30695
  /**
33792
- * The recording settings for the flow where you control recording behavior. For consistency
33793
- * with other flow types, this property is named settingsSpeechRec.
30696
+ * Returns true indicating that this is an ArchBaseFlowInboundOutboundSecureCall object.
33794
30697
  */
33795
- readonly settingsSpeechRec: ArchSettingsSpeechRecFlow;
30698
+ readonly isArchBaseFlowInboundOutboundSecureCall: boolean;
33796
30699
  /**
33797
- * Voice survey specific settings for the flow.
30700
+ * Sets the specified menu to be the starting task on the flow.
30701
+ * @param archMenu - An Architect Scripting menu object.
33798
30702
  */
33799
- readonly voiceSurveySettings: ArchSettingsVoiceSurveyFlow;
30703
+ setStartingMenu(archMenu: ArchMenu): void;
33800
30704
  /**
33801
- * Returns true indicating that this is an ArchBaseFlowBot instance.
30705
+ * Sets the specified task to be the starting task on the flow.
30706
+ * @param archTask - An Architect Scripting task object.
33802
30707
  */
33803
- readonly isArchBaseFlowBot: boolean;
30708
+ setStartingTask(archTask: ArchTask): void;
33804
30709
  /**
33805
- * The user input settings for the flow.
30710
+ * The menu settings for the flow.
33806
30711
  */
33807
- readonly userInputSettings: ArchSettingsUserInput;
30712
+ readonly settingsMenu: ArchSettingsMenuFlow;
33808
30713
  /**
33809
- * Returns the error handling settings for the flow.
30714
+ * The prompt settings for the flow.
33810
30715
  */
33811
- readonly settingsErrorHandling: ArchSettingsEventErrorFlowBot;
30716
+ readonly settingsPrompts: ArchSettingsPromptsFlow;
33812
30717
  /**
33813
- * This function deletes the specified state from this flow.
33814
- * @param stateToDelete - the state to delete.
30718
+ * The speech rec settings for the flow.
33815
30719
  */
33816
- deleteState(stateToDelete: ArchState): void;
30720
+ readonly settingsSpeechRec: ArchSettingsSpeechRecFlow;
33817
30721
  /**
33818
- * Sets the specified state to be the starting state on the flow.
33819
- * @param archState - An Architect Scripting state object.
30722
+ * Returns the starting task or menu for this call flow.
30723
+ * If there is no startup object configured, accessing this property returns null.
33820
30724
  */
33821
- setStartingState(archState: ArchState): void;
30725
+ readonly startUpObject: ArchTask | ArchMenu | null;
33822
30726
  /**
33823
- * Returns the starting state for this flow.
33824
- * If there is no startup object configured, accessing this property returns null.
30727
+ * The outbound settings for the flow such as contact list and default wrapup code.
33825
30728
  */
33826
- readonly startUpObject: ArchState;
30729
+ readonly settingsOutboundCall: ArchSettingsOutboundCallFlow;
33827
30730
  /**
33828
- * The states in the flow.
30731
+ * This function deletes the specified reusable menu from this flow.
30732
+ * @param menuToDelete - the menu to delete. This must be a reusable menu which means the {@link ArchMenu#isReusableMenu}
30733
+ * property on the specified menu instance is true.
33829
30734
  */
33830
- readonly states: ArchState[];
30735
+ deleteMenu(menuToDelete: ArchMenu): void;
30736
+ /**
30737
+ * Returns an array of the currently defined reusable menus for this flow.
30738
+ */
30739
+ readonly menusReusable: ArchBaseMenu[];
33831
30740
  /**
33832
30741
  * This function deletes the specified reusable task from this flow.
33833
30742
  * @param taskToDelete - the task to delete. This must be a reusable task which means the {@link ArchTask#isReusableTask}
@@ -34060,6 +30969,10 @@ export class ArchFlowVoiceSurvey extends ArchBaseFlowBot {
34060
30969
  * flow instance.
34061
30970
  */
34062
30971
  saveAsync(): Promise<any>;
30972
+ /**
30973
+ * Returns the error handling settings for the flow.
30974
+ */
30975
+ readonly settingsErrorHandling: ArchSettingsEventErrorFlow;
34063
30976
  /**
34064
30977
  * Returns the action default settings for the flow.
34065
30978
  */
@@ -34241,16 +31154,16 @@ export class ArchFlowVoiceSurvey extends ArchBaseFlowBot {
34241
31154
  isFilterMatch(archFilterObject: ArchFilterObject): boolean;
34242
31155
  }
34243
31156
 
34244
- export class ArchFlowVoicemail extends ArchBaseFlowInboundOutboundSecureCall {
34245
- // constructor(coreVoicemailFlowViewModel: any);
31157
+ export class ArchFlowSecureCall extends ArchBaseFlowInboundOutboundSecureCall {
31158
+ // constructor(coreSecureCallFlowViewModel: any);
34246
31159
  /**
34247
- * Returns the display type name string 'ArchFlowVoicemail'.
31160
+ * Returns the display type name string 'ArchFlowSecureCall'.
34248
31161
  */
34249
31162
  readonly displayTypeName: string;
34250
31163
  /**
34251
- * Returns true indicating that this is an ArchFlowVoicemail instance.
31164
+ * Returns true indicating that this is an ArchFlowSecureCall instance.
34252
31165
  */
34253
- static isArchFlowVoicemail: boolean;
31166
+ readonly isArchFlowSecureCall: boolean;
34254
31167
  /**
34255
31168
  * The initial audio set on the flow.
34256
31169
  */
@@ -34717,16 +31630,59 @@ export class ArchFlowVoicemail extends ArchBaseFlowInboundOutboundSecureCall {
34717
31630
  isFilterMatch(archFilterObject: ArchFilterObject): boolean;
34718
31631
  }
34719
31632
 
34720
- export class ArchFlowWorkflow extends ArchBaseFlowWorkflow {
34721
- // constructor(coreWorkflowViewModel: any);
31633
+ /**
31634
+ * The Architect Scripting class for the Survey Invite flow class.
31635
+ * Instances of this Architect Scripting object should be created by calling {@link ArchFactoryFlows#createFlowSurveyInviteAsync}
31636
+ * @param coreSurveyInviteViewModel - ( *Internal* ) an Architect core Survey Invite view model.
31637
+ */
31638
+ export class ArchFlowSurveyInvite extends ArchBaseFlowWorkflow {
31639
+ // constructor(coreSurveyInviteViewModel: any);
34722
31640
  /**
34723
- * Returns the display type name string 'ArchFlowWorkflow'.
31641
+ * Returns the display type name string 'ArchFlowSurveyInvite'.
34724
31642
  */
34725
31643
  readonly displayTypeName: string;
34726
31644
  /**
34727
- * Returns true indicating that this is an ArchFlowWorkflow instance.
31645
+ * Returns true indicating that this is an ArchFlowSurveyInvite instance.
34728
31646
  */
34729
- readonly isArchFlowWorkflow: boolean;
31647
+ readonly isArchFlowSurveyInvite: boolean;
31648
+ }
31649
+
31650
+ export class ArchFlowVoiceSurvey extends ArchBaseFlowBot {
31651
+ // constructor(coreVoiceSurveyFlowViewModel: any);
31652
+ /**
31653
+ * Returns the display type name string 'ArchFlowVoiceSurvey'.
31654
+ */
31655
+ readonly displayTypeName: string;
31656
+ /**
31657
+ * Returns true indicating that this is an ArchFlowVoiceSurvey instance.
31658
+ */
31659
+ readonly isArchFlowVoiceSurvey: boolean;
31660
+ /**
31661
+ * The prompt settings for the flow. If no destination flow types configured on this Voice Survey flow support prompt settings,
31662
+ * nothing is returned.
31663
+ */
31664
+ readonly settingsPrompts: ArchSettingsPromptsFlow;
31665
+ /**
31666
+ * The recording settings for the flow where you control recording behavior. For consistency
31667
+ * with other flow types, this property is named settingsSpeechRec.
31668
+ */
31669
+ readonly settingsSpeechRec: ArchSettingsSpeechRecFlow;
31670
+ /**
31671
+ * Voice survey specific settings for the flow.
31672
+ */
31673
+ readonly voiceSurveySettings: ArchSettingsVoiceSurveyFlow;
31674
+ /**
31675
+ * Returns true indicating that this is an ArchBaseFlowBot instance.
31676
+ */
31677
+ readonly isArchBaseFlowBot: boolean;
31678
+ /**
31679
+ * The user input settings for the flow.
31680
+ */
31681
+ readonly userInputSettings: ArchSettingsUserInput;
31682
+ /**
31683
+ * Returns the error handling settings for the flow.
31684
+ */
31685
+ readonly settingsErrorHandling: ArchSettingsEventErrorFlowBot;
34730
31686
  /**
34731
31687
  * This function deletes the specified state from this flow.
34732
31688
  * @param stateToDelete - the state to delete.
@@ -34978,10 +31934,6 @@ export class ArchFlowWorkflow extends ArchBaseFlowWorkflow {
34978
31934
  * flow instance.
34979
31935
  */
34980
31936
  saveAsync(): Promise<any>;
34981
- /**
34982
- * Returns the error handling settings for the flow.
34983
- */
34984
- readonly settingsErrorHandling: ArchSettingsEventErrorFlow;
34985
31937
  /**
34986
31938
  * Returns the action default settings for the flow.
34987
31939
  */
@@ -35163,39 +32115,65 @@ export class ArchFlowWorkflow extends ArchBaseFlowWorkflow {
35163
32115
  isFilterMatch(archFilterObject: ArchFilterObject): boolean;
35164
32116
  }
35165
32117
 
35166
- export class ArchFlowWorkitem extends ArchBaseFlowWorkflow {
35167
- // constructor(coreWorkitemFlowViewModel: any);
32118
+ export class ArchFlowVoicemail extends ArchBaseFlowInboundOutboundSecureCall {
32119
+ // constructor(coreVoicemailFlowViewModel: any);
35168
32120
  /**
35169
- * Returns the display type name string 'ArchFlowWorkitem'.
32121
+ * Returns the display type name string 'ArchFlowVoicemail'.
35170
32122
  */
35171
32123
  readonly displayTypeName: string;
35172
32124
  /**
35173
- * Returns true indicating that this is an ArchFlowWorkitem instance.
32125
+ * Returns true indicating that this is an ArchFlowVoicemail instance.
35174
32126
  */
35175
- readonly isArchFlowWorkitem: boolean;
32127
+ static isArchFlowVoicemail: boolean;
35176
32128
  /**
35177
- * Workitem specific settings for the flow.
32129
+ * The initial audio set on the flow.
35178
32130
  */
35179
- readonly workitemSettings: ArchSettingsWorkitemFlow;
32131
+ readonly initialAudio: ArchAudio;
35180
32132
  /**
35181
- * This function deletes the specified state from this flow.
35182
- * @param stateToDelete - the state to delete.
32133
+ * Returns true indicating that this is an ArchBaseFlowInboundOutboundSecureCall object.
35183
32134
  */
35184
- deleteState(stateToDelete: ArchState): void;
32135
+ readonly isArchBaseFlowInboundOutboundSecureCall: boolean;
35185
32136
  /**
35186
- * Sets the specified state to be the starting state on the flow.
35187
- * @param archState - An Architect Scripting state object.
32137
+ * Sets the specified menu to be the starting task on the flow.
32138
+ * @param archMenu - An Architect Scripting menu object.
35188
32139
  */
35189
- setStartingState(archState: ArchState): void;
32140
+ setStartingMenu(archMenu: ArchMenu): void;
35190
32141
  /**
35191
- * Returns the starting state for this flow.
32142
+ * Sets the specified task to be the starting task on the flow.
32143
+ * @param archTask - An Architect Scripting task object.
32144
+ */
32145
+ setStartingTask(archTask: ArchTask): void;
32146
+ /**
32147
+ * The menu settings for the flow.
32148
+ */
32149
+ readonly settingsMenu: ArchSettingsMenuFlow;
32150
+ /**
32151
+ * The prompt settings for the flow.
32152
+ */
32153
+ readonly settingsPrompts: ArchSettingsPromptsFlow;
32154
+ /**
32155
+ * The speech rec settings for the flow.
32156
+ */
32157
+ readonly settingsSpeechRec: ArchSettingsSpeechRecFlow;
32158
+ /**
32159
+ * Returns the starting task or menu for this call flow.
35192
32160
  * If there is no startup object configured, accessing this property returns null.
35193
32161
  */
35194
- readonly startUpObject: ArchState;
32162
+ readonly startUpObject: ArchTask | ArchMenu | null;
35195
32163
  /**
35196
- * The states in the flow.
32164
+ * The outbound settings for the flow such as contact list and default wrapup code.
35197
32165
  */
35198
- readonly states: ArchState[];
32166
+ readonly settingsOutboundCall: ArchSettingsOutboundCallFlow;
32167
+ /**
32168
+ * This function deletes the specified reusable menu from this flow.
32169
+ * @param menuToDelete - the menu to delete. This must be a reusable menu which means the {@link ArchMenu#isReusableMenu}
32170
+ * property on the specified menu instance is true.
32171
+ */
32172
+ deleteMenu(menuToDelete: ArchMenu): void;
32173
+ /**
32174
+ * Returns an array of the currently defined reusable menus for this flow.
32175
+ */
32176
+ readonly menusReusable: ArchBaseMenu[];
35199
32177
  /**
35200
32178
  * This function deletes the specified reusable task from this flow.
35201
32179
  * @param taskToDelete - the task to delete. This must be a reusable task which means the {@link ArchTask#isReusableTask}
@@ -35613,6 +32591,44 @@ export class ArchFlowWorkitem extends ArchBaseFlowWorkflow {
35613
32591
  isFilterMatch(archFilterObject: ArchFilterObject): boolean;
35614
32592
  }
35615
32593
 
32594
+ /**
32595
+ * The Architect Scripting class for the Workflow flow class.
32596
+ * Instances of this Architect Scripting object should be created by calling {@link ArchFactoryFlows#createFlowWorkflowAsync}
32597
+ * @param coreWorkflowViewModel - ( *Internal* ) an Architect core workflow view model.
32598
+ */
32599
+ export class ArchFlowWorkflow extends ArchBaseFlowWorkflow {
32600
+ // constructor(coreWorkflowViewModel: any);
32601
+ /**
32602
+ * Returns the display type name string 'ArchFlowWorkflow'.
32603
+ */
32604
+ readonly displayTypeName: string;
32605
+ /**
32606
+ * Returns true indicating that this is an ArchFlowWorkflow instance.
32607
+ */
32608
+ readonly isArchFlowWorkflow: boolean;
32609
+ }
32610
+
32611
+ /**
32612
+ * The Architect Scripting class for the Workitem flow class.
32613
+ * Instances of this Architect Scripting object should be created by calling {@link ArchFactoryFlows#createFlowWorkitemAsync}
32614
+ * @param coreWorkitemFlowViewModel - ( *Internal* ) an Architect core Workitem flow view model.
32615
+ */
32616
+ export class ArchFlowWorkitem extends ArchBaseFlowWorkflow {
32617
+ // constructor(coreWorkitemFlowViewModel: any);
32618
+ /**
32619
+ * Returns the display type name string 'ArchFlowWorkitem'.
32620
+ */
32621
+ readonly displayTypeName: string;
32622
+ /**
32623
+ * Returns true indicating that this is an ArchFlowWorkitem instance.
32624
+ */
32625
+ readonly isArchFlowWorkitem: boolean;
32626
+ /**
32627
+ * Workitem specific settings for the flow.
32628
+ */
32629
+ readonly workitemSettings: ArchSettingsWorkitemFlow;
32630
+ }
32631
+
35616
32632
  /**
35617
32633
  * The Architect Scripting class that represents a menu whether it be the starting menu for a call flow
35618
32634
  * or a reusable menu.
@@ -36709,6 +33725,14 @@ export class ArchSettingsBotFlow extends ArchBaseCoreObjectWithId {
36709
33725
  * Returns true indicating that this is an ArchSettingsBotFlow instance.
36710
33726
  */
36711
33727
  readonly isArchSettingsBotFlow: boolean;
33728
+ /**
33729
+ * Returns true if Agentic Virtual Agent functionality is enabled for this flow, otherwise false.
33730
+ * This property is automatically set to true when the flow contains Call Guide actions (legacy behavior).
33731
+ * TODO: Add support for Call Agentic Virtual Agent actions
33732
+ * Once set to true, it cannot be set back to false.
33733
+ * To downgrade from an agentic flow back to non-agentic (va flow), you must revert to a previous flow version.
33734
+ */
33735
+ readonly agenticVirtualAgentEnabled: boolean;
36712
33736
  /**
36713
33737
  * Given a dynamic slot type name, this returns the ArchSettingsNluDynamicSlotType object for that dynamic slot type.
36714
33738
  * This name lookup is case insensitive. If the dynamic slot type cannot be found, nothing is returned.
@@ -36743,14 +33767,6 @@ export class ArchSettingsBotFlow extends ArchBaseCoreObjectWithId {
36743
33767
  * for Virtual Agent functionality to be used at flow runtime.
36744
33768
  */
36745
33769
  virtualAgentEnabled: boolean;
36746
- /**
36747
- * Returns true if Agentic Virtual Agent functionality is enabled for this flow, otherwise false.
36748
- * This property is automatically set to true when the flow contains Call Guide actions (legacy behavior).
36749
- * TODO: Add support for Call Agentic Virtual Agent actions
36750
- * Once set to true, it cannot be set back to false.
36751
- * To downgrade from an agentic flow back to non-agentic (va flow), you must revert to a previous flow version.
36752
- */
36753
- readonly agenticVirtualAgentEnabled: boolean;
36754
33770
  }
36755
33771
 
36756
33772
  /**
@@ -37700,6 +34716,22 @@ export class ArchSettingsNluKnowledge extends ArchBaseCoreObject {
37700
34716
  * callback function will be this Architect NLU Knowledge Settings instance.
37701
34717
  */
37702
34718
  setKnowledgeBaseByNameAsync(knowledgeBaseName: string, callbackFunction?: (...params: any[]) => any): Promise<ArchSettingsNluKnowledge>;
34719
+ /**
34720
+ * This sets the knowledge configuration setting that will be used for use at runtime by the knowledge configuration setting's id.
34721
+ * @param knowledgeSettingId - the id of the Knowledge Setting to set.
34722
+ * @param [callbackFunction] - a callback function to call if the Knowledge Setting is successfully
34723
+ * looked up and configured on this action. The first parameter passed to the
34724
+ * callback function will be this Architect NLU Knowledge Settings instance.
34725
+ */
34726
+ setKnowledgeSettingByIdAsync(knowledgeSettingId: string, callbackFunction?: (...params: any[]) => any): Promise<ArchSettingsNluKnowledge>;
34727
+ /**
34728
+ * This sets the knowledge configuration setting that will be used at runtime by the knowledge configuration setting's name.
34729
+ * @param knowledgeSettingName - the name of the Knowledge Setting to set. Knowledge Setting names are looked up case insensitively.
34730
+ * @param [callbackFunction] - a callback function to call if the Knowledge Setting is successfully
34731
+ * looked up and configured on this action. The first parameter passed to the
34732
+ * callback function will be this Architect NLU Knowledge Settings instance.
34733
+ */
34734
+ setKnowledgeSettingByNameAsync(knowledgeSettingName: string, callbackFunction?: (...params: any[]) => any): Promise<ArchSettingsNluKnowledge>;
37703
34735
  /**
37704
34736
  * This sets the welcome article that will be used by the bot at runtime by the knowledge base document's identifier.
37705
34737
  * Remember that prior to setting a knowledge base document as the welcome article that the knowledge base must
@@ -38822,6 +35854,14 @@ export class ArchSettingsVoiceSurveyFlow extends ArchSettingsBotFlow {
38822
35854
  * Returns true indicating that this is an ArchSettingsBotFlow instance.
38823
35855
  */
38824
35856
  readonly isArchSettingsBotFlow: boolean;
35857
+ /**
35858
+ * Returns true if Agentic Virtual Agent functionality is enabled for this flow, otherwise false.
35859
+ * This property is automatically set to true when the flow contains Call Guide actions (legacy behavior).
35860
+ * TODO: Add support for Call Agentic Virtual Agent actions
35861
+ * Once set to true, it cannot be set back to false.
35862
+ * To downgrade from an agentic flow back to non-agentic (va flow), you must revert to a previous flow version.
35863
+ */
35864
+ readonly agenticVirtualAgentEnabled: boolean;
38825
35865
  /**
38826
35866
  * Given a dynamic slot type name, this returns the ArchSettingsNluDynamicSlotType object for that dynamic slot type.
38827
35867
  * This name lookup is case insensitive. If the dynamic slot type cannot be found, nothing is returned.
@@ -38856,14 +35896,6 @@ export class ArchSettingsVoiceSurveyFlow extends ArchSettingsBotFlow {
38856
35896
  * for Virtual Agent functionality to be used at flow runtime.
38857
35897
  */
38858
35898
  virtualAgentEnabled: boolean;
38859
- /**
38860
- * Returns true if Agentic Virtual Agent functionality is enabled for this flow, otherwise false.
38861
- * This property is automatically set to true when the flow contains Call Guide actions (legacy behavior).
38862
- * TODO: Add support for Call Agentic Virtual Agent actions
38863
- * Once set to true, it cannot be set back to false.
38864
- * To downgrade from an agentic flow back to non-agentic (va flow), you must revert to a previous flow version.
38865
- */
38866
- readonly agenticVirtualAgentEnabled: boolean;
38867
35899
  /**
38868
35900
  * The identifier string for this object.
38869
35901
  */
@@ -40368,16 +37400,16 @@ export class ArchValidationResults extends ArchBaseCoreObject {
40368
37400
  */
40369
37401
  getSummaryStr(wantDetails: boolean, addLogStr?: boolean, prefix?: string): string;
40370
37402
  /**
40371
- * Returns true is there are any validation issues with errors in these results, otherwise false.
37403
+ * Returns true if there are any validation issues with errors in these results, otherwise false.
40372
37404
  */
40373
37405
  readonly hasErrors: boolean;
40374
37406
  /**
40375
- * Returns true is there are no validation issues with errors or rollup errors in this validation
37407
+ * Returns true if there are no validation issues with errors or rollup errors in this validation
40376
37408
  * results instance, otherwise false.
40377
37409
  */
40378
37410
  readonly hasNoErrors: boolean;
40379
37411
  /**
40380
- * Returns true is there are any validation issues with errors, rollup errors, warnings or rollup warnings in
37412
+ * Returns true if there are any validation issues with errors, rollup errors, warnings or rollup warnings in
40381
37413
  * these results, otherwise false.
40382
37414
  */
40383
37415
  readonly hasErrorsOrWarnings: boolean;
@@ -40386,35 +37418,47 @@ export class ArchValidationResults extends ArchBaseCoreObject {
40386
37418
  */
40387
37419
  readonly hasNoErrorsOrWarnings: boolean;
40388
37420
  /**
40389
- * Returns true is there are any validation issues with warnings or rollup warnings in these results, otherwise false.
37421
+ * Returns true if there are any validation issues with warnings or rollup warnings in these results, otherwise false.
40390
37422
  */
40391
37423
  readonly hasWarnings: boolean;
40392
37424
  /**
40393
- * Returns true is there are no validation issues with warnings or rollup warnings in this validation
37425
+ * Returns true if there are no validation issues with warnings or rollup warnings in this validation
40394
37426
  * results instance, otherwise false.
40395
37427
  */
40396
37428
  readonly hasNoWarnings: boolean;
40397
37429
  /**
40398
- * Returns number of errors the object has
37430
+ * Returns number of validation errors the object has.
40399
37431
  * @param archObjectWithId - the Architect Scripting object to check.
40400
37432
  */
40401
37433
  objectErrorCount(archObjectWithId: ArchBaseCoreObjectWithId): boolean;
40402
37434
  /**
40403
- * Returns whether or not the supplied Architect Scripting object has an error or rollup error that matches
37435
+ * Returns number of validation warnings the object has.
37436
+ * @param archObjectWithId - the Architect Scripting object to check.
37437
+ */
37438
+ objectWarningCount(archObjectWithId: ArchBaseCoreObjectWithId): boolean;
37439
+ /**
37440
+ * Returns whether the supplied Architect Scripting object has an error or rollup error that matches
40404
37441
  * the supplied error string.
40405
37442
  * @param archObjectWithId - the Architect Scripting object to check.
40406
37443
  * @param errorString - the error string to look up. This must be a non-blank string.
40407
37444
  */
40408
37445
  objectHasErrorString(archObjectWithId: ArchBaseCoreObjectWithId, errorString: string): boolean;
40409
37446
  /**
40410
- * Returns true if the the supplied Architect Scripting object has an error or rollup error in this set of validation
37447
+ * Returns true if the supplied Architect Scripting object has an error or rollup error in this set of validation
40411
37448
  * results. This method looks up a validation issue for the specified Architect base object and if found will check
40412
37449
  * to see if the error or rollup error count are greater than 0.
40413
37450
  * @param archObjectWithId - the Architect Scripting object to check.
40414
37451
  */
40415
37452
  objectHasErrors(archObjectWithId: ArchBaseCoreObjectWithId): boolean;
40416
37453
  /**
40417
- * Returns whether or not the supplied Architect Scripting object has no errors or rollup errors
37454
+ * Returns true if the supplied Architect Scripting object has a warning or rollup warning in this set of validation
37455
+ * results. This method looks up a validation issue for the specified Architect base object and if found will check
37456
+ * to see if the warning or rollup warning count are greater than 0.
37457
+ * @param archObjectWithId - the Architect Scripting object to check.
37458
+ */
37459
+ objectHasWarnings(archObjectWithId: ArchBaseCoreObjectWithId): boolean;
37460
+ /**
37461
+ * Returns whether the supplied Architect Scripting object has no errors or rollup errors
40418
37462
  * in this set of validation results. This method looks up a validation issue for the specified Architect
40419
37463
  * base object and if found will check to make sure that the validation issue's error count and rollup
40420
37464
  * error count are equal to 0.
@@ -40422,7 +37466,7 @@ export class ArchValidationResults extends ArchBaseCoreObject {
40422
37466
  */
40423
37467
  objectHasNoErrors(archObjectWithId: ArchBaseCoreObjectWithId): boolean;
40424
37468
  /**
40425
- * Returns true if the the supplied Architect Scripting object has an error, rollup error, warning or
37469
+ * Returns true if the supplied Architect Scripting object has an error, rollup error, warning or
40426
37470
  * rollup warning in this set of validation results. This method looks up a validation issue for the specified
40427
37471
  * Architect base object and if found will check to see if the error, rollup error, warning or rollup warning
40428
37472
  * count are greater than 0.
@@ -40430,7 +37474,7 @@ export class ArchValidationResults extends ArchBaseCoreObject {
40430
37474
  */
40431
37475
  objectHasErrorsOrWarnings(archObjectWithId: ArchBaseCoreObjectWithId): boolean;
40432
37476
  /**
40433
- * Returns true if the the supplied Architect Scripting object has no errors, rollup errors, warnings or
37477
+ * Returns true if the supplied Architect Scripting object has no errors, rollup errors, warnings or
40434
37478
  * rollup warnings in this set of validation results. This method looks up a validation issue for the specified
40435
37479
  * Architect base object and if found will check to make sure that the validation issue's error, rollup error, warning
40436
37480
  * and rollup warning counts are 0.
@@ -40438,7 +37482,7 @@ export class ArchValidationResults extends ArchBaseCoreObject {
40438
37482
  */
40439
37483
  objectHasNoErrorsOrWarnings(archObjectWithId: ArchBaseCoreObjectWithId): boolean;
40440
37484
  /**
40441
- * Returns whether or not the supplied Architect Scripting object has no warnings or rollup warnings
37485
+ * Returns whether the supplied Architect Scripting object has no warnings or rollup warnings
40442
37486
  * in this set of validation results. This method looks up a validation issue for the specified Architect
40443
37487
  * base object and if found will check to make sure that the validation issue's warning count and rollup
40444
37488
  * warning count are equal to 0.
@@ -40446,7 +37490,7 @@ export class ArchValidationResults extends ArchBaseCoreObject {
40446
37490
  */
40447
37491
  objectHasNoWarnings(archObjectWithId: ArchBaseCoreObjectWithId): boolean;
40448
37492
  /**
40449
- * Returns whether or not the supplied Architect Scripting object has a warning or rollup warning that matches
37493
+ * Returns whether the supplied Architect Scripting object has a warning or rollup warning that matches
40450
37494
  * the supplied warning string.
40451
37495
  * @param archObjectWithId - the Architect Scripting object to check.
40452
37496
  * @param warningString - the warning string to look up. This must be a non-blank string.
@@ -91556,6 +88600,7 @@ declare module 'purecloud-flow-scripting-api-sdk-javascript' {
91556
88600
  let ArchBaseActionNoInputNoMatch: ArchBaseActionNoInputNoMatch;
91557
88601
  let ArchBaseActionBot: ArchBaseActionBot;
91558
88602
  let ArchBaseActionBotWithSessionVariables: ArchBaseActionBotWithSessionVariables;
88603
+ let ArchBaseActionConversationAttribute: ArchBaseActionConversationAttribute;
91559
88604
  let ArchBaseActionDataAction: ArchBaseActionDataAction;
91560
88605
  let ArchBaseDefinition: ArchBaseDefinition;
91561
88606
  let ArchBaseActionFindSystemObject: ArchBaseActionFindSystemObject;