googletaskqueue.pp 26 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015
  1. unit googletaskqueue;
  2. {$MODE objfpc}
  3. {$H+}
  4. interface
  5. uses sysutils, classes, googleservice, restbase, googlebase;
  6. type
  7. //Top-level schema types
  8. TTask = Class;
  9. TTaskQueue = Class;
  10. TTasks = Class;
  11. TTasks2 = Class;
  12. TTaskArray = Array of TTask;
  13. TTaskQueueArray = Array of TTaskQueue;
  14. TTasksArray = Array of TTasks;
  15. TTasks2Array = Array of TTasks2;
  16. //Anonymous types, using auto-generated names
  17. TTaskQueueTypeacl = Class;
  18. TTaskQueueTypestats = Class;
  19. TTasksTypeitemsArray = Array of TTask;
  20. TTasks2TypeitemsArray = Array of TTask;
  21. { --------------------------------------------------------------------
  22. TTask
  23. --------------------------------------------------------------------}
  24. TTask = Class(TGoogleBaseObject)
  25. Private
  26. FenqueueTimestamp : String;
  27. Fid : String;
  28. Fkind : String;
  29. FleaseTimestamp : String;
  30. FpayloadBase64 : String;
  31. FqueueName : String;
  32. Fretry_count : integer;
  33. Ftag : String;
  34. Protected
  35. //Property setters
  36. Procedure SetenqueueTimestamp(AIndex : Integer; const AValue : String); virtual;
  37. Procedure Setid(AIndex : Integer; const AValue : String); virtual;
  38. Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
  39. Procedure SetleaseTimestamp(AIndex : Integer; const AValue : String); virtual;
  40. Procedure SetpayloadBase64(AIndex : Integer; const AValue : String); virtual;
  41. Procedure SetqueueName(AIndex : Integer; const AValue : String); virtual;
  42. Procedure Setretry_count(AIndex : Integer; const AValue : integer); virtual;
  43. Procedure Settag(AIndex : Integer; const AValue : String); virtual;
  44. Public
  45. Published
  46. Property enqueueTimestamp : String Index 0 Read FenqueueTimestamp Write SetenqueueTimestamp;
  47. Property id : String Index 8 Read Fid Write Setid;
  48. Property kind : String Index 16 Read Fkind Write Setkind;
  49. Property leaseTimestamp : String Index 24 Read FleaseTimestamp Write SetleaseTimestamp;
  50. Property payloadBase64 : String Index 32 Read FpayloadBase64 Write SetpayloadBase64;
  51. Property queueName : String Index 40 Read FqueueName Write SetqueueName;
  52. Property retry_count : integer Index 48 Read Fretry_count Write Setretry_count;
  53. Property tag : String Index 56 Read Ftag Write Settag;
  54. end;
  55. TTaskClass = Class of TTask;
  56. { --------------------------------------------------------------------
  57. TTaskQueueTypeacl
  58. --------------------------------------------------------------------}
  59. TTaskQueueTypeacl = Class(TGoogleBaseObject)
  60. Private
  61. FadminEmails : TStringArray;
  62. FconsumerEmails : TStringArray;
  63. FproducerEmails : TStringArray;
  64. Protected
  65. //Property setters
  66. Procedure SetadminEmails(AIndex : Integer; const AValue : TStringArray); virtual;
  67. Procedure SetconsumerEmails(AIndex : Integer; const AValue : TStringArray); virtual;
  68. Procedure SetproducerEmails(AIndex : Integer; const AValue : TStringArray); virtual;
  69. //2.6.4. bug workaround
  70. {$IFDEF VER2_6}
  71. Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
  72. {$ENDIF VER2_6}
  73. Public
  74. Published
  75. Property adminEmails : TStringArray Index 0 Read FadminEmails Write SetadminEmails;
  76. Property consumerEmails : TStringArray Index 8 Read FconsumerEmails Write SetconsumerEmails;
  77. Property producerEmails : TStringArray Index 16 Read FproducerEmails Write SetproducerEmails;
  78. end;
  79. TTaskQueueTypeaclClass = Class of TTaskQueueTypeacl;
  80. { --------------------------------------------------------------------
  81. TTaskQueueTypestats
  82. --------------------------------------------------------------------}
  83. TTaskQueueTypestats = Class(TGoogleBaseObject)
  84. Private
  85. FleasedLastHour : String;
  86. FleasedLastMinute : String;
  87. FoldestTask : String;
  88. FtotalTasks : integer;
  89. Protected
  90. //Property setters
  91. Procedure SetleasedLastHour(AIndex : Integer; const AValue : String); virtual;
  92. Procedure SetleasedLastMinute(AIndex : Integer; const AValue : String); virtual;
  93. Procedure SetoldestTask(AIndex : Integer; const AValue : String); virtual;
  94. Procedure SettotalTasks(AIndex : Integer; const AValue : integer); virtual;
  95. Public
  96. Published
  97. Property leasedLastHour : String Index 0 Read FleasedLastHour Write SetleasedLastHour;
  98. Property leasedLastMinute : String Index 8 Read FleasedLastMinute Write SetleasedLastMinute;
  99. Property oldestTask : String Index 16 Read FoldestTask Write SetoldestTask;
  100. Property totalTasks : integer Index 24 Read FtotalTasks Write SettotalTasks;
  101. end;
  102. TTaskQueueTypestatsClass = Class of TTaskQueueTypestats;
  103. { --------------------------------------------------------------------
  104. TTaskQueue
  105. --------------------------------------------------------------------}
  106. TTaskQueue = Class(TGoogleBaseObject)
  107. Private
  108. Facl : TTaskQueueTypeacl;
  109. Fid : String;
  110. Fkind : String;
  111. FmaxLeases : integer;
  112. Fstats : TTaskQueueTypestats;
  113. Protected
  114. //Property setters
  115. Procedure Setacl(AIndex : Integer; const AValue : TTaskQueueTypeacl); virtual;
  116. Procedure Setid(AIndex : Integer; const AValue : String); virtual;
  117. Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
  118. Procedure SetmaxLeases(AIndex : Integer; const AValue : integer); virtual;
  119. Procedure Setstats(AIndex : Integer; const AValue : TTaskQueueTypestats); virtual;
  120. Public
  121. Published
  122. Property acl : TTaskQueueTypeacl Index 0 Read Facl Write Setacl;
  123. Property id : String Index 8 Read Fid Write Setid;
  124. Property kind : String Index 16 Read Fkind Write Setkind;
  125. Property maxLeases : integer Index 24 Read FmaxLeases Write SetmaxLeases;
  126. Property stats : TTaskQueueTypestats Index 32 Read Fstats Write Setstats;
  127. end;
  128. TTaskQueueClass = Class of TTaskQueue;
  129. { --------------------------------------------------------------------
  130. TTasks
  131. --------------------------------------------------------------------}
  132. TTasks = Class(TGoogleBaseObject)
  133. Private
  134. Fitems : TTasksTypeitemsArray;
  135. Fkind : String;
  136. Protected
  137. //Property setters
  138. Procedure Setitems(AIndex : Integer; const AValue : TTasksTypeitemsArray); virtual;
  139. Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
  140. //2.6.4. bug workaround
  141. {$IFDEF VER2_6}
  142. Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
  143. {$ENDIF VER2_6}
  144. Public
  145. Published
  146. Property items : TTasksTypeitemsArray Index 0 Read Fitems Write Setitems;
  147. Property kind : String Index 8 Read Fkind Write Setkind;
  148. end;
  149. TTasksClass = Class of TTasks;
  150. { --------------------------------------------------------------------
  151. TTasks2
  152. --------------------------------------------------------------------}
  153. TTasks2 = Class(TGoogleBaseObject)
  154. Private
  155. Fitems : TTasks2TypeitemsArray;
  156. Fkind : String;
  157. Protected
  158. //Property setters
  159. Procedure Setitems(AIndex : Integer; const AValue : TTasks2TypeitemsArray); virtual;
  160. Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
  161. //2.6.4. bug workaround
  162. {$IFDEF VER2_6}
  163. Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
  164. {$ENDIF VER2_6}
  165. Public
  166. Published
  167. Property items : TTasks2TypeitemsArray Index 0 Read Fitems Write Setitems;
  168. Property kind : String Index 8 Read Fkind Write Setkind;
  169. end;
  170. TTasks2Class = Class of TTasks2;
  171. { --------------------------------------------------------------------
  172. TTaskqueuesResource
  173. --------------------------------------------------------------------}
  174. //Optional query Options for TTaskqueuesResource, method Get
  175. TTaskqueuesGetOptions = Record
  176. getStats : boolean;
  177. end;
  178. TTaskqueuesResource = Class(TGoogleResource)
  179. Public
  180. Class Function ResourceName : String; override;
  181. Class Function DefaultAPI : TGoogleAPIClass; override;
  182. Function Get(project: string; taskqueue: string; AQuery : string = '') : TTaskQueue;
  183. Function Get(project: string; taskqueue: string; AQuery : TTaskqueuesgetOptions) : TTaskQueue;
  184. end;
  185. { --------------------------------------------------------------------
  186. TTasksResource
  187. --------------------------------------------------------------------}
  188. //Optional query Options for TTasksResource, method Lease
  189. TTasksLeaseOptions = Record
  190. groupByTag : boolean;
  191. leaseSecs : integer;
  192. numTasks : integer;
  193. tag : String;
  194. end;
  195. //Optional query Options for TTasksResource, method Patch
  196. TTasksPatchOptions = Record
  197. newLeaseSeconds : integer;
  198. end;
  199. //Optional query Options for TTasksResource, method Update
  200. TTasksUpdateOptions = Record
  201. newLeaseSeconds : integer;
  202. end;
  203. TTasksResource = Class(TGoogleResource)
  204. Public
  205. Class Function ResourceName : String; override;
  206. Class Function DefaultAPI : TGoogleAPIClass; override;
  207. Procedure Delete(project: string; task: string; taskqueue: string);
  208. Function Get(project: string; task: string; taskqueue: string) : TTask;
  209. Function Insert(project: string; taskqueue: string; aTask : TTask) : TTask;
  210. Function Lease(project: string; taskqueue: string; AQuery : string = '') : TTasks;
  211. Function Lease(project: string; taskqueue: string; AQuery : TTasksleaseOptions) : TTasks;
  212. Function List(project: string; taskqueue: string) : TTasks2;
  213. Function Patch(project: string; task: string; taskqueue: string; aTask : TTask; AQuery : string = '') : TTask;
  214. Function Patch(project: string; task: string; taskqueue: string; aTask : TTask; AQuery : TTaskspatchOptions) : TTask;
  215. Function Update(project: string; task: string; taskqueue: string; aTask : TTask; AQuery : string = '') : TTask;
  216. Function Update(project: string; task: string; taskqueue: string; aTask : TTask; AQuery : TTasksupdateOptions) : TTask;
  217. end;
  218. { --------------------------------------------------------------------
  219. TTaskqueueAPI
  220. --------------------------------------------------------------------}
  221. TTaskqueueAPI = Class(TGoogleAPI)
  222. Private
  223. FTaskqueuesInstance : TTaskqueuesResource;
  224. FTasksInstance : TTasksResource;
  225. Function GetTaskqueuesInstance : TTaskqueuesResource;virtual;
  226. Function GetTasksInstance : TTasksResource;virtual;
  227. Public
  228. //Override class functions with API info
  229. Class Function APIName : String; override;
  230. Class Function APIVersion : String; override;
  231. Class Function APIRevision : String; override;
  232. Class Function APIID : String; override;
  233. Class Function APITitle : String; override;
  234. Class Function APIDescription : String; override;
  235. Class Function APIOwnerDomain : String; override;
  236. Class Function APIOwnerName : String; override;
  237. Class Function APIIcon16 : String; override;
  238. Class Function APIIcon32 : String; override;
  239. Class Function APIdocumentationLink : String; override;
  240. Class Function APIrootUrl : string; override;
  241. Class Function APIbasePath : string;override;
  242. Class Function APIbaseURL : String;override;
  243. Class Function APIProtocol : string;override;
  244. Class Function APIservicePath : string;override;
  245. Class Function APIbatchPath : String;override;
  246. Class Function APIAuthScopes : TScopeInfoArray;override;
  247. Class Function APINeedsAuth : Boolean;override;
  248. Class Procedure RegisterAPIResources; override;
  249. //Add create function for resources
  250. Function CreateTaskqueuesResource(AOwner : TComponent) : TTaskqueuesResource;virtual;overload;
  251. Function CreateTaskqueuesResource : TTaskqueuesResource;virtual;overload;
  252. Function CreateTasksResource(AOwner : TComponent) : TTasksResource;virtual;overload;
  253. Function CreateTasksResource : TTasksResource;virtual;overload;
  254. //Add default on-demand instances for resources
  255. Property TaskqueuesResource : TTaskqueuesResource Read GetTaskqueuesInstance;
  256. Property TasksResource : TTasksResource Read GetTasksInstance;
  257. end;
  258. implementation
  259. { --------------------------------------------------------------------
  260. TTask
  261. --------------------------------------------------------------------}
  262. Procedure TTask.SetenqueueTimestamp(AIndex : Integer; const AValue : String);
  263. begin
  264. If (FenqueueTimestamp=AValue) then exit;
  265. FenqueueTimestamp:=AValue;
  266. MarkPropertyChanged(AIndex);
  267. end;
  268. Procedure TTask.Setid(AIndex : Integer; const AValue : String);
  269. begin
  270. If (Fid=AValue) then exit;
  271. Fid:=AValue;
  272. MarkPropertyChanged(AIndex);
  273. end;
  274. Procedure TTask.Setkind(AIndex : Integer; const AValue : String);
  275. begin
  276. If (Fkind=AValue) then exit;
  277. Fkind:=AValue;
  278. MarkPropertyChanged(AIndex);
  279. end;
  280. Procedure TTask.SetleaseTimestamp(AIndex : Integer; const AValue : String);
  281. begin
  282. If (FleaseTimestamp=AValue) then exit;
  283. FleaseTimestamp:=AValue;
  284. MarkPropertyChanged(AIndex);
  285. end;
  286. Procedure TTask.SetpayloadBase64(AIndex : Integer; const AValue : String);
  287. begin
  288. If (FpayloadBase64=AValue) then exit;
  289. FpayloadBase64:=AValue;
  290. MarkPropertyChanged(AIndex);
  291. end;
  292. Procedure TTask.SetqueueName(AIndex : Integer; const AValue : String);
  293. begin
  294. If (FqueueName=AValue) then exit;
  295. FqueueName:=AValue;
  296. MarkPropertyChanged(AIndex);
  297. end;
  298. Procedure TTask.Setretry_count(AIndex : Integer; const AValue : integer);
  299. begin
  300. If (Fretry_count=AValue) then exit;
  301. Fretry_count:=AValue;
  302. MarkPropertyChanged(AIndex);
  303. end;
  304. Procedure TTask.Settag(AIndex : Integer; const AValue : String);
  305. begin
  306. If (Ftag=AValue) then exit;
  307. Ftag:=AValue;
  308. MarkPropertyChanged(AIndex);
  309. end;
  310. { --------------------------------------------------------------------
  311. TTaskQueueTypeacl
  312. --------------------------------------------------------------------}
  313. Procedure TTaskQueueTypeacl.SetadminEmails(AIndex : Integer; const AValue : TStringArray);
  314. begin
  315. If (FadminEmails=AValue) then exit;
  316. FadminEmails:=AValue;
  317. MarkPropertyChanged(AIndex);
  318. end;
  319. Procedure TTaskQueueTypeacl.SetconsumerEmails(AIndex : Integer; const AValue : TStringArray);
  320. begin
  321. If (FconsumerEmails=AValue) then exit;
  322. FconsumerEmails:=AValue;
  323. MarkPropertyChanged(AIndex);
  324. end;
  325. Procedure TTaskQueueTypeacl.SetproducerEmails(AIndex : Integer; const AValue : TStringArray);
  326. begin
  327. If (FproducerEmails=AValue) then exit;
  328. FproducerEmails:=AValue;
  329. MarkPropertyChanged(AIndex);
  330. end;
  331. //2.6.4. bug workaround
  332. {$IFDEF VER2_6}
  333. Procedure TTaskQueueTypeacl.SetArrayLength(Const AName : String; ALength : Longint);
  334. begin
  335. Case AName of
  336. 'adminemails' : SetLength(FadminEmails,ALength);
  337. 'consumeremails' : SetLength(FconsumerEmails,ALength);
  338. 'produceremails' : SetLength(FproducerEmails,ALength);
  339. else
  340. Inherited SetArrayLength(AName,ALength);
  341. end;
  342. end;
  343. {$ENDIF VER2_6}
  344. { --------------------------------------------------------------------
  345. TTaskQueueTypestats
  346. --------------------------------------------------------------------}
  347. Procedure TTaskQueueTypestats.SetleasedLastHour(AIndex : Integer; const AValue : String);
  348. begin
  349. If (FleasedLastHour=AValue) then exit;
  350. FleasedLastHour:=AValue;
  351. MarkPropertyChanged(AIndex);
  352. end;
  353. Procedure TTaskQueueTypestats.SetleasedLastMinute(AIndex : Integer; const AValue : String);
  354. begin
  355. If (FleasedLastMinute=AValue) then exit;
  356. FleasedLastMinute:=AValue;
  357. MarkPropertyChanged(AIndex);
  358. end;
  359. Procedure TTaskQueueTypestats.SetoldestTask(AIndex : Integer; const AValue : String);
  360. begin
  361. If (FoldestTask=AValue) then exit;
  362. FoldestTask:=AValue;
  363. MarkPropertyChanged(AIndex);
  364. end;
  365. Procedure TTaskQueueTypestats.SettotalTasks(AIndex : Integer; const AValue : integer);
  366. begin
  367. If (FtotalTasks=AValue) then exit;
  368. FtotalTasks:=AValue;
  369. MarkPropertyChanged(AIndex);
  370. end;
  371. { --------------------------------------------------------------------
  372. TTaskQueue
  373. --------------------------------------------------------------------}
  374. Procedure TTaskQueue.Setacl(AIndex : Integer; const AValue : TTaskQueueTypeacl);
  375. begin
  376. If (Facl=AValue) then exit;
  377. Facl:=AValue;
  378. MarkPropertyChanged(AIndex);
  379. end;
  380. Procedure TTaskQueue.Setid(AIndex : Integer; const AValue : String);
  381. begin
  382. If (Fid=AValue) then exit;
  383. Fid:=AValue;
  384. MarkPropertyChanged(AIndex);
  385. end;
  386. Procedure TTaskQueue.Setkind(AIndex : Integer; const AValue : String);
  387. begin
  388. If (Fkind=AValue) then exit;
  389. Fkind:=AValue;
  390. MarkPropertyChanged(AIndex);
  391. end;
  392. Procedure TTaskQueue.SetmaxLeases(AIndex : Integer; const AValue : integer);
  393. begin
  394. If (FmaxLeases=AValue) then exit;
  395. FmaxLeases:=AValue;
  396. MarkPropertyChanged(AIndex);
  397. end;
  398. Procedure TTaskQueue.Setstats(AIndex : Integer; const AValue : TTaskQueueTypestats);
  399. begin
  400. If (Fstats=AValue) then exit;
  401. Fstats:=AValue;
  402. MarkPropertyChanged(AIndex);
  403. end;
  404. { --------------------------------------------------------------------
  405. TTasks
  406. --------------------------------------------------------------------}
  407. Procedure TTasks.Setitems(AIndex : Integer; const AValue : TTasksTypeitemsArray);
  408. begin
  409. If (Fitems=AValue) then exit;
  410. Fitems:=AValue;
  411. MarkPropertyChanged(AIndex);
  412. end;
  413. Procedure TTasks.Setkind(AIndex : Integer; const AValue : String);
  414. begin
  415. If (Fkind=AValue) then exit;
  416. Fkind:=AValue;
  417. MarkPropertyChanged(AIndex);
  418. end;
  419. //2.6.4. bug workaround
  420. {$IFDEF VER2_6}
  421. Procedure TTasks.SetArrayLength(Const AName : String; ALength : Longint);
  422. begin
  423. Case AName of
  424. 'items' : SetLength(Fitems,ALength);
  425. else
  426. Inherited SetArrayLength(AName,ALength);
  427. end;
  428. end;
  429. {$ENDIF VER2_6}
  430. { --------------------------------------------------------------------
  431. TTasks2
  432. --------------------------------------------------------------------}
  433. Procedure TTasks2.Setitems(AIndex : Integer; const AValue : TTasks2TypeitemsArray);
  434. begin
  435. If (Fitems=AValue) then exit;
  436. Fitems:=AValue;
  437. MarkPropertyChanged(AIndex);
  438. end;
  439. Procedure TTasks2.Setkind(AIndex : Integer; const AValue : String);
  440. begin
  441. If (Fkind=AValue) then exit;
  442. Fkind:=AValue;
  443. MarkPropertyChanged(AIndex);
  444. end;
  445. //2.6.4. bug workaround
  446. {$IFDEF VER2_6}
  447. Procedure TTasks2.SetArrayLength(Const AName : String; ALength : Longint);
  448. begin
  449. Case AName of
  450. 'items' : SetLength(Fitems,ALength);
  451. else
  452. Inherited SetArrayLength(AName,ALength);
  453. end;
  454. end;
  455. {$ENDIF VER2_6}
  456. { --------------------------------------------------------------------
  457. TTaskqueuesResource
  458. --------------------------------------------------------------------}
  459. Class Function TTaskqueuesResource.ResourceName : String;
  460. begin
  461. Result:='taskqueues';
  462. end;
  463. Class Function TTaskqueuesResource.DefaultAPI : TGoogleAPIClass;
  464. begin
  465. Result:=TtaskqueueAPI;
  466. end;
  467. Function TTaskqueuesResource.Get(project: string; taskqueue: string; AQuery : string = '') : TTaskQueue;
  468. Const
  469. _HTTPMethod = 'GET';
  470. _Path = '{project}/taskqueues/{taskqueue}';
  471. _Methodid = 'taskqueue.taskqueues.get';
  472. Var
  473. _P : String;
  474. begin
  475. _P:=SubstitutePath(_Path,['project',project,'taskqueue',taskqueue]);
  476. Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TTaskQueue) as TTaskQueue;
  477. end;
  478. Function TTaskqueuesResource.Get(project: string; taskqueue: string; AQuery : TTaskqueuesgetOptions) : TTaskQueue;
  479. Var
  480. _Q : String;
  481. begin
  482. _Q:='';
  483. AddToQuery(_Q,'getStats',AQuery.getStats);
  484. Result:=Get(project,taskqueue,_Q);
  485. end;
  486. { --------------------------------------------------------------------
  487. TTasksResource
  488. --------------------------------------------------------------------}
  489. Class Function TTasksResource.ResourceName : String;
  490. begin
  491. Result:='tasks';
  492. end;
  493. Class Function TTasksResource.DefaultAPI : TGoogleAPIClass;
  494. begin
  495. Result:=TtaskqueueAPI;
  496. end;
  497. Procedure TTasksResource.Delete(project: string; task: string; taskqueue: string);
  498. Const
  499. _HTTPMethod = 'DELETE';
  500. _Path = '{project}/taskqueues/{taskqueue}/tasks/{task}';
  501. _Methodid = 'taskqueue.tasks.delete';
  502. Var
  503. _P : String;
  504. begin
  505. _P:=SubstitutePath(_Path,['project',project,'task',task,'taskqueue',taskqueue]);
  506. ServiceCall(_HTTPMethod,_P,'',Nil,Nil);
  507. end;
  508. Function TTasksResource.Get(project: string; task: string; taskqueue: string) : TTask;
  509. Const
  510. _HTTPMethod = 'GET';
  511. _Path = '{project}/taskqueues/{taskqueue}/tasks/{task}';
  512. _Methodid = 'taskqueue.tasks.get';
  513. Var
  514. _P : String;
  515. begin
  516. _P:=SubstitutePath(_Path,['project',project,'task',task,'taskqueue',taskqueue]);
  517. Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TTask) as TTask;
  518. end;
  519. Function TTasksResource.Insert(project: string; taskqueue: string; aTask : TTask) : TTask;
  520. Const
  521. _HTTPMethod = 'POST';
  522. _Path = '{project}/taskqueues/{taskqueue}/tasks';
  523. _Methodid = 'taskqueue.tasks.insert';
  524. Var
  525. _P : String;
  526. begin
  527. _P:=SubstitutePath(_Path,['project',project,'taskqueue',taskqueue]);
  528. Result:=ServiceCall(_HTTPMethod,_P,'',aTask,TTask) as TTask;
  529. end;
  530. Function TTasksResource.Lease(project: string; taskqueue: string; AQuery : string = '') : TTasks;
  531. Const
  532. _HTTPMethod = 'POST';
  533. _Path = '{project}/taskqueues/{taskqueue}/tasks/lease';
  534. _Methodid = 'taskqueue.tasks.lease';
  535. Var
  536. _P : String;
  537. begin
  538. _P:=SubstitutePath(_Path,['project',project,'taskqueue',taskqueue]);
  539. Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TTasks) as TTasks;
  540. end;
  541. Function TTasksResource.Lease(project: string; taskqueue: string; AQuery : TTasksleaseOptions) : TTasks;
  542. Var
  543. _Q : String;
  544. begin
  545. _Q:='';
  546. AddToQuery(_Q,'groupByTag',AQuery.groupByTag);
  547. AddToQuery(_Q,'leaseSecs',AQuery.leaseSecs);
  548. AddToQuery(_Q,'numTasks',AQuery.numTasks);
  549. AddToQuery(_Q,'tag',AQuery.tag);
  550. Result:=Lease(project,taskqueue,_Q);
  551. end;
  552. Function TTasksResource.List(project: string; taskqueue: string) : TTasks2;
  553. Const
  554. _HTTPMethod = 'GET';
  555. _Path = '{project}/taskqueues/{taskqueue}/tasks';
  556. _Methodid = 'taskqueue.tasks.list';
  557. Var
  558. _P : String;
  559. begin
  560. _P:=SubstitutePath(_Path,['project',project,'taskqueue',taskqueue]);
  561. Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TTasks2) as TTasks2;
  562. end;
  563. Function TTasksResource.Patch(project: string; task: string; taskqueue: string; aTask : TTask; AQuery : string = '') : TTask;
  564. Const
  565. _HTTPMethod = 'PATCH';
  566. _Path = '{project}/taskqueues/{taskqueue}/tasks/{task}';
  567. _Methodid = 'taskqueue.tasks.patch';
  568. Var
  569. _P : String;
  570. begin
  571. _P:=SubstitutePath(_Path,['project',project,'task',task,'taskqueue',taskqueue]);
  572. Result:=ServiceCall(_HTTPMethod,_P,AQuery,aTask,TTask) as TTask;
  573. end;
  574. Function TTasksResource.Patch(project: string; task: string; taskqueue: string; aTask : TTask; AQuery : TTaskspatchOptions) : TTask;
  575. Var
  576. _Q : String;
  577. begin
  578. _Q:='';
  579. AddToQuery(_Q,'newLeaseSeconds',AQuery.newLeaseSeconds);
  580. Result:=Patch(project,task,taskqueue,aTask,_Q);
  581. end;
  582. Function TTasksResource.Update(project: string; task: string; taskqueue: string; aTask : TTask; AQuery : string = '') : TTask;
  583. Const
  584. _HTTPMethod = 'POST';
  585. _Path = '{project}/taskqueues/{taskqueue}/tasks/{task}';
  586. _Methodid = 'taskqueue.tasks.update';
  587. Var
  588. _P : String;
  589. begin
  590. _P:=SubstitutePath(_Path,['project',project,'task',task,'taskqueue',taskqueue]);
  591. Result:=ServiceCall(_HTTPMethod,_P,AQuery,aTask,TTask) as TTask;
  592. end;
  593. Function TTasksResource.Update(project: string; task: string; taskqueue: string; aTask : TTask; AQuery : TTasksupdateOptions) : TTask;
  594. Var
  595. _Q : String;
  596. begin
  597. _Q:='';
  598. AddToQuery(_Q,'newLeaseSeconds',AQuery.newLeaseSeconds);
  599. Result:=Update(project,task,taskqueue,aTask,_Q);
  600. end;
  601. { --------------------------------------------------------------------
  602. TTaskqueueAPI
  603. --------------------------------------------------------------------}
  604. Class Function TTaskqueueAPI.APIName : String;
  605. begin
  606. Result:='taskqueue';
  607. end;
  608. Class Function TTaskqueueAPI.APIVersion : String;
  609. begin
  610. Result:='v1beta2';
  611. end;
  612. Class Function TTaskqueueAPI.APIRevision : String;
  613. begin
  614. Result:='20160428';
  615. end;
  616. Class Function TTaskqueueAPI.APIID : String;
  617. begin
  618. Result:='taskqueue:v1beta2';
  619. end;
  620. Class Function TTaskqueueAPI.APITitle : String;
  621. begin
  622. Result:='TaskQueue API';
  623. end;
  624. Class Function TTaskqueueAPI.APIDescription : String;
  625. begin
  626. Result:='Accesses a Google App Engine Pull Task Queue over REST.';
  627. end;
  628. Class Function TTaskqueueAPI.APIOwnerDomain : String;
  629. begin
  630. Result:='google.com';
  631. end;
  632. Class Function TTaskqueueAPI.APIOwnerName : String;
  633. begin
  634. Result:='Google';
  635. end;
  636. Class Function TTaskqueueAPI.APIIcon16 : String;
  637. begin
  638. Result:='https://www.google.com/images/icons/product/app_engine-16.png';
  639. end;
  640. Class Function TTaskqueueAPI.APIIcon32 : String;
  641. begin
  642. Result:='https://www.google.com/images/icons/product/app_engine-32.png';
  643. end;
  644. Class Function TTaskqueueAPI.APIdocumentationLink : String;
  645. begin
  646. Result:='https://developers.google.com/appengine/docs/python/taskqueue/rest';
  647. end;
  648. Class Function TTaskqueueAPI.APIrootUrl : string;
  649. begin
  650. Result:='https://www.googleapis.com/';
  651. end;
  652. Class Function TTaskqueueAPI.APIbasePath : string;
  653. begin
  654. Result:='/taskqueue/v1beta2/projects/';
  655. end;
  656. Class Function TTaskqueueAPI.APIbaseURL : String;
  657. begin
  658. Result:='https://www.googleapis.com/taskqueue/v1beta2/projects/';
  659. end;
  660. Class Function TTaskqueueAPI.APIProtocol : string;
  661. begin
  662. Result:='rest';
  663. end;
  664. Class Function TTaskqueueAPI.APIservicePath : string;
  665. begin
  666. Result:='taskqueue/v1beta2/projects/';
  667. end;
  668. Class Function TTaskqueueAPI.APIbatchPath : String;
  669. begin
  670. Result:='batch';
  671. end;
  672. Class Function TTaskqueueAPI.APIAuthScopes : TScopeInfoArray;
  673. begin
  674. SetLength(Result,2);
  675. Result[0].Name:='https://www.googleapis.com/auth/taskqueue';
  676. Result[0].Description:='Manage your Tasks and Taskqueues';
  677. Result[1].Name:='https://www.googleapis.com/auth/taskqueue.consumer';
  678. Result[1].Description:='Consume Tasks from your Taskqueues';
  679. end;
  680. Class Function TTaskqueueAPI.APINeedsAuth : Boolean;
  681. begin
  682. Result:=True;
  683. end;
  684. Class Procedure TTaskqueueAPI.RegisterAPIResources;
  685. begin
  686. TTask.RegisterObject;
  687. TTaskQueueTypeacl.RegisterObject;
  688. TTaskQueueTypestats.RegisterObject;
  689. TTaskQueue.RegisterObject;
  690. TTasks.RegisterObject;
  691. TTasks2.RegisterObject;
  692. end;
  693. Function TTaskqueueAPI.GetTaskqueuesInstance : TTaskqueuesResource;
  694. begin
  695. if (FTaskqueuesInstance=Nil) then
  696. FTaskqueuesInstance:=CreateTaskqueuesResource;
  697. Result:=FTaskqueuesInstance;
  698. end;
  699. Function TTaskqueueAPI.CreateTaskqueuesResource : TTaskqueuesResource;
  700. begin
  701. Result:=CreateTaskqueuesResource(Self);
  702. end;
  703. Function TTaskqueueAPI.CreateTaskqueuesResource(AOwner : TComponent) : TTaskqueuesResource;
  704. begin
  705. Result:=TTaskqueuesResource.Create(AOwner);
  706. Result.API:=Self.API;
  707. end;
  708. Function TTaskqueueAPI.GetTasksInstance : TTasksResource;
  709. begin
  710. if (FTasksInstance=Nil) then
  711. FTasksInstance:=CreateTasksResource;
  712. Result:=FTasksInstance;
  713. end;
  714. Function TTaskqueueAPI.CreateTasksResource : TTasksResource;
  715. begin
  716. Result:=CreateTasksResource(Self);
  717. end;
  718. Function TTaskqueueAPI.CreateTasksResource(AOwner : TComponent) : TTasksResource;
  719. begin
  720. Result:=TTasksResource.Create(AOwner);
  721. Result.API:=Self.API;
  722. end;
  723. initialization
  724. TTaskqueueAPI.RegisterAPI;
  725. end.