@@ -23,6 +23,25 @@ export class AIServiceDocumentWaiter {
2323 private readonly config ?: WaiterConfiguration
2424 ) { }
2525
26+ /**
27+ * Waits forModel till it reaches any of the provided states
28+ *
29+ * @param request the request to send
30+ * @param targetStates the desired states to wait for. The waiter will return once the resource reaches any of the provided states
31+ * @return response returns GetModelResponse | null (null in case of 404 response)
32+ */
33+ public async forModel (
34+ request : serviceRequests . GetModelRequest ,
35+ ...targetStates : models . Model . LifecycleState [ ]
36+ ) : Promise < serviceResponses . GetModelResponse | null > {
37+ return genericTerminalConditionWaiter (
38+ this . config ,
39+ ( ) => this . client . getModel ( request ) ,
40+ response => targetStates . includes ( response . model . lifecycleState ! ) ,
41+ targetStates . includes ( models . Model . LifecycleState . Deleted )
42+ ) ;
43+ }
44+
2645 /**
2746 * Waits forProcessorJob till it reaches any of the provided states
2847 *
@@ -40,4 +59,39 @@ export class AIServiceDocumentWaiter {
4059 response => targetStates . includes ( response . processorJob . lifecycleState ! )
4160 ) ;
4261 }
62+
63+ /**
64+ * Waits forProject till it reaches any of the provided states
65+ *
66+ * @param request the request to send
67+ * @param targetStates the desired states to wait for. The waiter will return once the resource reaches any of the provided states
68+ * @return response returns GetProjectResponse | null (null in case of 404 response)
69+ */
70+ public async forProject (
71+ request : serviceRequests . GetProjectRequest ,
72+ ...targetStates : models . Project . LifecycleState [ ]
73+ ) : Promise < serviceResponses . GetProjectResponse | null > {
74+ return genericTerminalConditionWaiter (
75+ this . config ,
76+ ( ) => this . client . getProject ( request ) ,
77+ response => targetStates . includes ( response . project . lifecycleState ! ) ,
78+ targetStates . includes ( models . Project . LifecycleState . Deleted )
79+ ) ;
80+ }
81+
82+ /**
83+ * Waits forWorkRequest
84+ *
85+ * @param request the request to send
86+ * @return response returns GetWorkRequestResponse
87+ */
88+ public async forWorkRequest (
89+ request : serviceRequests . GetWorkRequestRequest
90+ ) : Promise < serviceResponses . GetWorkRequestResponse > {
91+ return genericWaiter (
92+ this . config ,
93+ ( ) => this . client . getWorkRequest ( request ) ,
94+ response => ( response . workRequest . timeFinished ? true : false )
95+ ) ;
96+ }
4397}
0 commit comments