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