googlefirebaserules.pp 33 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244
  1. unit googlefirebaserules;
  2. {$MODE objfpc}
  3. {$H+}
  4. interface
  5. uses sysutils, classes, googleservice, restbase, googlebase;
  6. type
  7. //Top-level schema types
  8. TRelease = Class;
  9. TSource = Class;
  10. TSourcePosition = Class;
  11. TTestRulesetResponse = Class;
  12. TRuleset = Class;
  13. TListReleasesResponse = Class;
  14. TListRulesetsResponse = Class;
  15. TEmpty = Class;
  16. TFile = Class;
  17. TTestRulesetRequest = Class;
  18. TIssue = Class;
  19. TReleaseArray = Array of TRelease;
  20. TSourceArray = Array of TSource;
  21. TSourcePositionArray = Array of TSourcePosition;
  22. TTestRulesetResponseArray = Array of TTestRulesetResponse;
  23. TRulesetArray = Array of TRuleset;
  24. TListReleasesResponseArray = Array of TListReleasesResponse;
  25. TListRulesetsResponseArray = Array of TListRulesetsResponse;
  26. TEmptyArray = Array of TEmpty;
  27. TFileArray = Array of TFile;
  28. TTestRulesetRequestArray = Array of TTestRulesetRequest;
  29. TIssueArray = Array of TIssue;
  30. //Anonymous types, using auto-generated names
  31. TSourceTypefilesArray = Array of TFile;
  32. TTestRulesetResponseTypeissuesArray = Array of TIssue;
  33. TListReleasesResponseTypereleasesArray = Array of TRelease;
  34. TListRulesetsResponseTyperulesetsArray = Array of TRuleset;
  35. { --------------------------------------------------------------------
  36. TRelease
  37. --------------------------------------------------------------------}
  38. TRelease = Class(TGoogleBaseObject)
  39. Private
  40. FupdateTime : String;
  41. FcreateTime : String;
  42. Fname : String;
  43. FrulesetName : String;
  44. Protected
  45. //Property setters
  46. Procedure SetupdateTime(AIndex : Integer; const AValue : String); virtual;
  47. Procedure SetcreateTime(AIndex : Integer; const AValue : String); virtual;
  48. Procedure Setname(AIndex : Integer; const AValue : String); virtual;
  49. Procedure SetrulesetName(AIndex : Integer; const AValue : String); virtual;
  50. Public
  51. Published
  52. Property updateTime : String Index 0 Read FupdateTime Write SetupdateTime;
  53. Property createTime : String Index 8 Read FcreateTime Write SetcreateTime;
  54. Property name : String Index 16 Read Fname Write Setname;
  55. Property rulesetName : String Index 24 Read FrulesetName Write SetrulesetName;
  56. end;
  57. TReleaseClass = Class of TRelease;
  58. { --------------------------------------------------------------------
  59. TSource
  60. --------------------------------------------------------------------}
  61. TSource = Class(TGoogleBaseObject)
  62. Private
  63. Ffiles : TSourceTypefilesArray;
  64. Protected
  65. //Property setters
  66. Procedure Setfiles(AIndex : Integer; const AValue : TSourceTypefilesArray); virtual;
  67. //2.6.4. bug workaround
  68. {$IFDEF VER2_6}
  69. Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
  70. {$ENDIF VER2_6}
  71. Public
  72. Published
  73. Property files : TSourceTypefilesArray Index 0 Read Ffiles Write Setfiles;
  74. end;
  75. TSourceClass = Class of TSource;
  76. { --------------------------------------------------------------------
  77. TSourcePosition
  78. --------------------------------------------------------------------}
  79. TSourcePosition = Class(TGoogleBaseObject)
  80. Private
  81. FfileName : String;
  82. Fcolumn : integer;
  83. Fline : integer;
  84. Protected
  85. //Property setters
  86. Procedure SetfileName(AIndex : Integer; const AValue : String); virtual;
  87. Procedure Setcolumn(AIndex : Integer; const AValue : integer); virtual;
  88. Procedure Setline(AIndex : Integer; const AValue : integer); virtual;
  89. Public
  90. Published
  91. Property fileName : String Index 0 Read FfileName Write SetfileName;
  92. Property column : integer Index 8 Read Fcolumn Write Setcolumn;
  93. Property line : integer Index 16 Read Fline Write Setline;
  94. end;
  95. TSourcePositionClass = Class of TSourcePosition;
  96. { --------------------------------------------------------------------
  97. TTestRulesetResponse
  98. --------------------------------------------------------------------}
  99. TTestRulesetResponse = Class(TGoogleBaseObject)
  100. Private
  101. Fissues : TTestRulesetResponseTypeissuesArray;
  102. Protected
  103. //Property setters
  104. Procedure Setissues(AIndex : Integer; const AValue : TTestRulesetResponseTypeissuesArray); virtual;
  105. //2.6.4. bug workaround
  106. {$IFDEF VER2_6}
  107. Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
  108. {$ENDIF VER2_6}
  109. Public
  110. Published
  111. Property issues : TTestRulesetResponseTypeissuesArray Index 0 Read Fissues Write Setissues;
  112. end;
  113. TTestRulesetResponseClass = Class of TTestRulesetResponse;
  114. { --------------------------------------------------------------------
  115. TRuleset
  116. --------------------------------------------------------------------}
  117. TRuleset = Class(TGoogleBaseObject)
  118. Private
  119. Fsource : TSource;
  120. FcreateTime : String;
  121. Fname : String;
  122. Protected
  123. //Property setters
  124. Procedure Setsource(AIndex : Integer; const AValue : TSource); virtual;
  125. Procedure SetcreateTime(AIndex : Integer; const AValue : String); virtual;
  126. Procedure Setname(AIndex : Integer; const AValue : String); virtual;
  127. Public
  128. Published
  129. Property source : TSource Index 0 Read Fsource Write Setsource;
  130. Property createTime : String Index 8 Read FcreateTime Write SetcreateTime;
  131. Property name : String Index 16 Read Fname Write Setname;
  132. end;
  133. TRulesetClass = Class of TRuleset;
  134. { --------------------------------------------------------------------
  135. TListReleasesResponse
  136. --------------------------------------------------------------------}
  137. TListReleasesResponse = Class(TGoogleBaseObject)
  138. Private
  139. FnextPageToken : String;
  140. Freleases : TListReleasesResponseTypereleasesArray;
  141. Protected
  142. //Property setters
  143. Procedure SetnextPageToken(AIndex : Integer; const AValue : String); virtual;
  144. Procedure Setreleases(AIndex : Integer; const AValue : TListReleasesResponseTypereleasesArray); virtual;
  145. //2.6.4. bug workaround
  146. {$IFDEF VER2_6}
  147. Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
  148. {$ENDIF VER2_6}
  149. Public
  150. Published
  151. Property nextPageToken : String Index 0 Read FnextPageToken Write SetnextPageToken;
  152. Property releases : TListReleasesResponseTypereleasesArray Index 8 Read Freleases Write Setreleases;
  153. end;
  154. TListReleasesResponseClass = Class of TListReleasesResponse;
  155. { --------------------------------------------------------------------
  156. TListRulesetsResponse
  157. --------------------------------------------------------------------}
  158. TListRulesetsResponse = Class(TGoogleBaseObject)
  159. Private
  160. Frulesets : TListRulesetsResponseTyperulesetsArray;
  161. FnextPageToken : String;
  162. Protected
  163. //Property setters
  164. Procedure Setrulesets(AIndex : Integer; const AValue : TListRulesetsResponseTyperulesetsArray); virtual;
  165. Procedure SetnextPageToken(AIndex : Integer; const AValue : String); virtual;
  166. //2.6.4. bug workaround
  167. {$IFDEF VER2_6}
  168. Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
  169. {$ENDIF VER2_6}
  170. Public
  171. Published
  172. Property rulesets : TListRulesetsResponseTyperulesetsArray Index 0 Read Frulesets Write Setrulesets;
  173. Property nextPageToken : String Index 8 Read FnextPageToken Write SetnextPageToken;
  174. end;
  175. TListRulesetsResponseClass = Class of TListRulesetsResponse;
  176. { --------------------------------------------------------------------
  177. TEmpty
  178. --------------------------------------------------------------------}
  179. TEmpty = Class(TGoogleBaseObject)
  180. Private
  181. Protected
  182. //Property setters
  183. Public
  184. Published
  185. end;
  186. TEmptyClass = Class of TEmpty;
  187. { --------------------------------------------------------------------
  188. TFile
  189. --------------------------------------------------------------------}
  190. TFile = Class(TGoogleBaseObject)
  191. Private
  192. Fcontent : String;
  193. Fname : String;
  194. Ffingerprint : String;
  195. Protected
  196. //Property setters
  197. Procedure Setcontent(AIndex : Integer; const AValue : String); virtual;
  198. Procedure Setname(AIndex : Integer; const AValue : String); virtual;
  199. Procedure Setfingerprint(AIndex : Integer; const AValue : String); virtual;
  200. Public
  201. Published
  202. Property content : String Index 0 Read Fcontent Write Setcontent;
  203. Property name : String Index 8 Read Fname Write Setname;
  204. Property fingerprint : String Index 16 Read Ffingerprint Write Setfingerprint;
  205. end;
  206. TFileClass = Class of TFile;
  207. { --------------------------------------------------------------------
  208. TTestRulesetRequest
  209. --------------------------------------------------------------------}
  210. TTestRulesetRequest = Class(TGoogleBaseObject)
  211. Private
  212. Fsource : TSource;
  213. Protected
  214. //Property setters
  215. Procedure Setsource(AIndex : Integer; const AValue : TSource); virtual;
  216. Public
  217. Published
  218. Property source : TSource Index 0 Read Fsource Write Setsource;
  219. end;
  220. TTestRulesetRequestClass = Class of TTestRulesetRequest;
  221. { --------------------------------------------------------------------
  222. TIssue
  223. --------------------------------------------------------------------}
  224. TIssue = Class(TGoogleBaseObject)
  225. Private
  226. Fdescription : String;
  227. Fseverity : String;
  228. FsourcePosition : TSourcePosition;
  229. Protected
  230. //Property setters
  231. Procedure Setdescription(AIndex : Integer; const AValue : String); virtual;
  232. Procedure Setseverity(AIndex : Integer; const AValue : String); virtual;
  233. Procedure SetsourcePosition(AIndex : Integer; const AValue : TSourcePosition); virtual;
  234. Public
  235. Published
  236. Property description : String Index 0 Read Fdescription Write Setdescription;
  237. Property severity : String Index 8 Read Fseverity Write Setseverity;
  238. Property sourcePosition : TSourcePosition Index 16 Read FsourcePosition Write SetsourcePosition;
  239. end;
  240. TIssueClass = Class of TIssue;
  241. { --------------------------------------------------------------------
  242. TProjectsRulesetsResource
  243. --------------------------------------------------------------------}
  244. //Optional query Options for TProjectsRulesetsResource, method List
  245. TProjectsRulesetsListOptions = Record
  246. pageSize : integer;
  247. pageToken : String;
  248. end;
  249. TProjectsRulesetsResource = Class(TGoogleResource)
  250. Public
  251. Class Function ResourceName : String; override;
  252. Class Function DefaultAPI : TGoogleAPIClass; override;
  253. Function Create(_name: string; aRuleset : TRuleset) : TRuleset;overload;
  254. Function Get(_name: string) : TRuleset;
  255. Function List(_name: string; AQuery : string = '') : TListRulesetsResponse;
  256. Function List(_name: string; AQuery : TProjectsRulesetslistOptions) : TListRulesetsResponse;
  257. Function Delete(_name: string) : TEmpty;
  258. end;
  259. { --------------------------------------------------------------------
  260. TProjectsReleasesResource
  261. --------------------------------------------------------------------}
  262. //Optional query Options for TProjectsReleasesResource, method List
  263. TProjectsReleasesListOptions = Record
  264. pageSize : integer;
  265. filter : String;
  266. pageToken : String;
  267. end;
  268. TProjectsReleasesResource = Class(TGoogleResource)
  269. Public
  270. Class Function ResourceName : String; override;
  271. Class Function DefaultAPI : TGoogleAPIClass; override;
  272. Function Update(_name: string; aRelease : TRelease) : TRelease;
  273. Function Create(_name: string; aRelease : TRelease) : TRelease;overload;
  274. Function Get(_name: string) : TRelease;
  275. Function List(_name: string; AQuery : string = '') : TListReleasesResponse;
  276. Function List(_name: string; AQuery : TProjectsReleaseslistOptions) : TListReleasesResponse;
  277. Function Delete(_name: string) : TEmpty;
  278. end;
  279. { --------------------------------------------------------------------
  280. TProjectsResource
  281. --------------------------------------------------------------------}
  282. TProjectsResource = Class(TGoogleResource)
  283. Private
  284. FRulesetsInstance : TProjectsRulesetsResource;
  285. FReleasesInstance : TProjectsReleasesResource;
  286. Function GetRulesetsInstance : TProjectsRulesetsResource;virtual;
  287. Function GetReleasesInstance : TProjectsReleasesResource;virtual;
  288. Public
  289. Class Function ResourceName : String; override;
  290. Class Function DefaultAPI : TGoogleAPIClass; override;
  291. Function Test(_name: string; aTestRulesetRequest : TTestRulesetRequest) : TTestRulesetResponse;
  292. Function CreateRulesetsResource(AOwner : TComponent) : TProjectsRulesetsResource;virtual;overload;
  293. Function CreateRulesetsResource : TProjectsRulesetsResource;virtual;overload;
  294. Function CreateReleasesResource(AOwner : TComponent) : TProjectsReleasesResource;virtual;overload;
  295. Function CreateReleasesResource : TProjectsReleasesResource;virtual;overload;
  296. Property RulesetsResource : TProjectsRulesetsResource Read GetRulesetsInstance;
  297. Property ReleasesResource : TProjectsReleasesResource Read GetReleasesInstance;
  298. end;
  299. { --------------------------------------------------------------------
  300. TFirebaserulesAPI
  301. --------------------------------------------------------------------}
  302. TFirebaserulesAPI = Class(TGoogleAPI)
  303. Private
  304. FProjectsRulesetsInstance : TProjectsRulesetsResource;
  305. FProjectsReleasesInstance : TProjectsReleasesResource;
  306. FProjectsInstance : TProjectsResource;
  307. Function GetProjectsRulesetsInstance : TProjectsRulesetsResource;virtual;
  308. Function GetProjectsReleasesInstance : TProjectsReleasesResource;virtual;
  309. Function GetProjectsInstance : TProjectsResource;virtual;
  310. Public
  311. //Override class functions with API info
  312. Class Function APIName : String; override;
  313. Class Function APIVersion : String; override;
  314. Class Function APIRevision : String; override;
  315. Class Function APIID : String; override;
  316. Class Function APITitle : String; override;
  317. Class Function APIDescription : String; override;
  318. Class Function APIOwnerDomain : String; override;
  319. Class Function APIOwnerName : String; override;
  320. Class Function APIIcon16 : String; override;
  321. Class Function APIIcon32 : String; override;
  322. Class Function APIdocumentationLink : String; override;
  323. Class Function APIrootUrl : string; override;
  324. Class Function APIbasePath : string;override;
  325. Class Function APIbaseURL : String;override;
  326. Class Function APIProtocol : string;override;
  327. Class Function APIservicePath : string;override;
  328. Class Function APIbatchPath : String;override;
  329. Class Function APIAuthScopes : TScopeInfoArray;override;
  330. Class Function APINeedsAuth : Boolean;override;
  331. Class Procedure RegisterAPIResources; override;
  332. //Add create function for resources
  333. Function CreateProjectsRulesetsResource(AOwner : TComponent) : TProjectsRulesetsResource;virtual;overload;
  334. Function CreateProjectsRulesetsResource : TProjectsRulesetsResource;virtual;overload;
  335. Function CreateProjectsReleasesResource(AOwner : TComponent) : TProjectsReleasesResource;virtual;overload;
  336. Function CreateProjectsReleasesResource : TProjectsReleasesResource;virtual;overload;
  337. Function CreateProjectsResource(AOwner : TComponent) : TProjectsResource;virtual;overload;
  338. Function CreateProjectsResource : TProjectsResource;virtual;overload;
  339. //Add default on-demand instances for resources
  340. Property ProjectsRulesetsResource : TProjectsRulesetsResource Read GetProjectsRulesetsInstance;
  341. Property ProjectsReleasesResource : TProjectsReleasesResource Read GetProjectsReleasesInstance;
  342. Property ProjectsResource : TProjectsResource Read GetProjectsInstance;
  343. end;
  344. implementation
  345. { --------------------------------------------------------------------
  346. TRelease
  347. --------------------------------------------------------------------}
  348. Procedure TRelease.SetupdateTime(AIndex : Integer; const AValue : String);
  349. begin
  350. If (FupdateTime=AValue) then exit;
  351. FupdateTime:=AValue;
  352. MarkPropertyChanged(AIndex);
  353. end;
  354. Procedure TRelease.SetcreateTime(AIndex : Integer; const AValue : String);
  355. begin
  356. If (FcreateTime=AValue) then exit;
  357. FcreateTime:=AValue;
  358. MarkPropertyChanged(AIndex);
  359. end;
  360. Procedure TRelease.Setname(AIndex : Integer; const AValue : String);
  361. begin
  362. If (Fname=AValue) then exit;
  363. Fname:=AValue;
  364. MarkPropertyChanged(AIndex);
  365. end;
  366. Procedure TRelease.SetrulesetName(AIndex : Integer; const AValue : String);
  367. begin
  368. If (FrulesetName=AValue) then exit;
  369. FrulesetName:=AValue;
  370. MarkPropertyChanged(AIndex);
  371. end;
  372. { --------------------------------------------------------------------
  373. TSource
  374. --------------------------------------------------------------------}
  375. Procedure TSource.Setfiles(AIndex : Integer; const AValue : TSourceTypefilesArray);
  376. begin
  377. If (Ffiles=AValue) then exit;
  378. Ffiles:=AValue;
  379. MarkPropertyChanged(AIndex);
  380. end;
  381. //2.6.4. bug workaround
  382. {$IFDEF VER2_6}
  383. Procedure TSource.SetArrayLength(Const AName : String; ALength : Longint);
  384. begin
  385. Case AName of
  386. 'files' : SetLength(Ffiles,ALength);
  387. else
  388. Inherited SetArrayLength(AName,ALength);
  389. end;
  390. end;
  391. {$ENDIF VER2_6}
  392. { --------------------------------------------------------------------
  393. TSourcePosition
  394. --------------------------------------------------------------------}
  395. Procedure TSourcePosition.SetfileName(AIndex : Integer; const AValue : String);
  396. begin
  397. If (FfileName=AValue) then exit;
  398. FfileName:=AValue;
  399. MarkPropertyChanged(AIndex);
  400. end;
  401. Procedure TSourcePosition.Setcolumn(AIndex : Integer; const AValue : integer);
  402. begin
  403. If (Fcolumn=AValue) then exit;
  404. Fcolumn:=AValue;
  405. MarkPropertyChanged(AIndex);
  406. end;
  407. Procedure TSourcePosition.Setline(AIndex : Integer; const AValue : integer);
  408. begin
  409. If (Fline=AValue) then exit;
  410. Fline:=AValue;
  411. MarkPropertyChanged(AIndex);
  412. end;
  413. { --------------------------------------------------------------------
  414. TTestRulesetResponse
  415. --------------------------------------------------------------------}
  416. Procedure TTestRulesetResponse.Setissues(AIndex : Integer; const AValue : TTestRulesetResponseTypeissuesArray);
  417. begin
  418. If (Fissues=AValue) then exit;
  419. Fissues:=AValue;
  420. MarkPropertyChanged(AIndex);
  421. end;
  422. //2.6.4. bug workaround
  423. {$IFDEF VER2_6}
  424. Procedure TTestRulesetResponse.SetArrayLength(Const AName : String; ALength : Longint);
  425. begin
  426. Case AName of
  427. 'issues' : SetLength(Fissues,ALength);
  428. else
  429. Inherited SetArrayLength(AName,ALength);
  430. end;
  431. end;
  432. {$ENDIF VER2_6}
  433. { --------------------------------------------------------------------
  434. TRuleset
  435. --------------------------------------------------------------------}
  436. Procedure TRuleset.Setsource(AIndex : Integer; const AValue : TSource);
  437. begin
  438. If (Fsource=AValue) then exit;
  439. Fsource:=AValue;
  440. MarkPropertyChanged(AIndex);
  441. end;
  442. Procedure TRuleset.SetcreateTime(AIndex : Integer; const AValue : String);
  443. begin
  444. If (FcreateTime=AValue) then exit;
  445. FcreateTime:=AValue;
  446. MarkPropertyChanged(AIndex);
  447. end;
  448. Procedure TRuleset.Setname(AIndex : Integer; const AValue : String);
  449. begin
  450. If (Fname=AValue) then exit;
  451. Fname:=AValue;
  452. MarkPropertyChanged(AIndex);
  453. end;
  454. { --------------------------------------------------------------------
  455. TListReleasesResponse
  456. --------------------------------------------------------------------}
  457. Procedure TListReleasesResponse.SetnextPageToken(AIndex : Integer; const AValue : String);
  458. begin
  459. If (FnextPageToken=AValue) then exit;
  460. FnextPageToken:=AValue;
  461. MarkPropertyChanged(AIndex);
  462. end;
  463. Procedure TListReleasesResponse.Setreleases(AIndex : Integer; const AValue : TListReleasesResponseTypereleasesArray);
  464. begin
  465. If (Freleases=AValue) then exit;
  466. Freleases:=AValue;
  467. MarkPropertyChanged(AIndex);
  468. end;
  469. //2.6.4. bug workaround
  470. {$IFDEF VER2_6}
  471. Procedure TListReleasesResponse.SetArrayLength(Const AName : String; ALength : Longint);
  472. begin
  473. Case AName of
  474. 'releases' : SetLength(Freleases,ALength);
  475. else
  476. Inherited SetArrayLength(AName,ALength);
  477. end;
  478. end;
  479. {$ENDIF VER2_6}
  480. { --------------------------------------------------------------------
  481. TListRulesetsResponse
  482. --------------------------------------------------------------------}
  483. Procedure TListRulesetsResponse.Setrulesets(AIndex : Integer; const AValue : TListRulesetsResponseTyperulesetsArray);
  484. begin
  485. If (Frulesets=AValue) then exit;
  486. Frulesets:=AValue;
  487. MarkPropertyChanged(AIndex);
  488. end;
  489. Procedure TListRulesetsResponse.SetnextPageToken(AIndex : Integer; const AValue : String);
  490. begin
  491. If (FnextPageToken=AValue) then exit;
  492. FnextPageToken:=AValue;
  493. MarkPropertyChanged(AIndex);
  494. end;
  495. //2.6.4. bug workaround
  496. {$IFDEF VER2_6}
  497. Procedure TListRulesetsResponse.SetArrayLength(Const AName : String; ALength : Longint);
  498. begin
  499. Case AName of
  500. 'rulesets' : SetLength(Frulesets,ALength);
  501. else
  502. Inherited SetArrayLength(AName,ALength);
  503. end;
  504. end;
  505. {$ENDIF VER2_6}
  506. { --------------------------------------------------------------------
  507. TEmpty
  508. --------------------------------------------------------------------}
  509. { --------------------------------------------------------------------
  510. TFile
  511. --------------------------------------------------------------------}
  512. Procedure TFile.Setcontent(AIndex : Integer; const AValue : String);
  513. begin
  514. If (Fcontent=AValue) then exit;
  515. Fcontent:=AValue;
  516. MarkPropertyChanged(AIndex);
  517. end;
  518. Procedure TFile.Setname(AIndex : Integer; const AValue : String);
  519. begin
  520. If (Fname=AValue) then exit;
  521. Fname:=AValue;
  522. MarkPropertyChanged(AIndex);
  523. end;
  524. Procedure TFile.Setfingerprint(AIndex : Integer; const AValue : String);
  525. begin
  526. If (Ffingerprint=AValue) then exit;
  527. Ffingerprint:=AValue;
  528. MarkPropertyChanged(AIndex);
  529. end;
  530. { --------------------------------------------------------------------
  531. TTestRulesetRequest
  532. --------------------------------------------------------------------}
  533. Procedure TTestRulesetRequest.Setsource(AIndex : Integer; const AValue : TSource);
  534. begin
  535. If (Fsource=AValue) then exit;
  536. Fsource:=AValue;
  537. MarkPropertyChanged(AIndex);
  538. end;
  539. { --------------------------------------------------------------------
  540. TIssue
  541. --------------------------------------------------------------------}
  542. Procedure TIssue.Setdescription(AIndex : Integer; const AValue : String);
  543. begin
  544. If (Fdescription=AValue) then exit;
  545. Fdescription:=AValue;
  546. MarkPropertyChanged(AIndex);
  547. end;
  548. Procedure TIssue.Setseverity(AIndex : Integer; const AValue : String);
  549. begin
  550. If (Fseverity=AValue) then exit;
  551. Fseverity:=AValue;
  552. MarkPropertyChanged(AIndex);
  553. end;
  554. Procedure TIssue.SetsourcePosition(AIndex : Integer; const AValue : TSourcePosition);
  555. begin
  556. If (FsourcePosition=AValue) then exit;
  557. FsourcePosition:=AValue;
  558. MarkPropertyChanged(AIndex);
  559. end;
  560. { --------------------------------------------------------------------
  561. TProjectsRulesetsResource
  562. --------------------------------------------------------------------}
  563. Class Function TProjectsRulesetsResource.ResourceName : String;
  564. begin
  565. Result:='rulesets';
  566. end;
  567. Class Function TProjectsRulesetsResource.DefaultAPI : TGoogleAPIClass;
  568. begin
  569. Result:=TfirebaserulesAPI;
  570. end;
  571. Function TProjectsRulesetsResource.Create(_name: string; aRuleset : TRuleset) : TRuleset;
  572. Const
  573. _HTTPMethod = 'POST';
  574. _Path = 'v1/{+name}/rulesets';
  575. _Methodid = 'firebaserules.projects.rulesets.create';
  576. Var
  577. _P : String;
  578. begin
  579. _P:=SubstitutePath(_Path,['name',_name]);
  580. Result:=ServiceCall(_HTTPMethod,_P,'',aRuleset,TRuleset) as TRuleset;
  581. end;
  582. Function TProjectsRulesetsResource.Get(_name: string) : TRuleset;
  583. Const
  584. _HTTPMethod = 'GET';
  585. _Path = 'v1/{+name}';
  586. _Methodid = 'firebaserules.projects.rulesets.get';
  587. Var
  588. _P : String;
  589. begin
  590. _P:=SubstitutePath(_Path,['name',_name]);
  591. Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TRuleset) as TRuleset;
  592. end;
  593. Function TProjectsRulesetsResource.List(_name: string; AQuery : string = '') : TListRulesetsResponse;
  594. Const
  595. _HTTPMethod = 'GET';
  596. _Path = 'v1/{+name}/rulesets';
  597. _Methodid = 'firebaserules.projects.rulesets.list';
  598. Var
  599. _P : String;
  600. begin
  601. _P:=SubstitutePath(_Path,['name',_name]);
  602. Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TListRulesetsResponse) as TListRulesetsResponse;
  603. end;
  604. Function TProjectsRulesetsResource.List(_name: string; AQuery : TProjectsRulesetslistOptions) : TListRulesetsResponse;
  605. Var
  606. _Q : String;
  607. begin
  608. _Q:='';
  609. AddToQuery(_Q,'pageSize',AQuery.pageSize);
  610. AddToQuery(_Q,'pageToken',AQuery.pageToken);
  611. Result:=List(_name,_Q);
  612. end;
  613. Function TProjectsRulesetsResource.Delete(_name: string) : TEmpty;
  614. Const
  615. _HTTPMethod = 'DELETE';
  616. _Path = 'v1/{+name}';
  617. _Methodid = 'firebaserules.projects.rulesets.delete';
  618. Var
  619. _P : String;
  620. begin
  621. _P:=SubstitutePath(_Path,['name',_name]);
  622. Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TEmpty) as TEmpty;
  623. end;
  624. { --------------------------------------------------------------------
  625. TProjectsReleasesResource
  626. --------------------------------------------------------------------}
  627. Class Function TProjectsReleasesResource.ResourceName : String;
  628. begin
  629. Result:='releases';
  630. end;
  631. Class Function TProjectsReleasesResource.DefaultAPI : TGoogleAPIClass;
  632. begin
  633. Result:=TfirebaserulesAPI;
  634. end;
  635. Function TProjectsReleasesResource.Update(_name: string; aRelease : TRelease) : TRelease;
  636. Const
  637. _HTTPMethod = 'PUT';
  638. _Path = 'v1/{+name}';
  639. _Methodid = 'firebaserules.projects.releases.update';
  640. Var
  641. _P : String;
  642. begin
  643. _P:=SubstitutePath(_Path,['name',_name]);
  644. Result:=ServiceCall(_HTTPMethod,_P,'',aRelease,TRelease) as TRelease;
  645. end;
  646. Function TProjectsReleasesResource.Create(_name: string; aRelease : TRelease) : TRelease;
  647. Const
  648. _HTTPMethod = 'POST';
  649. _Path = 'v1/{+name}/releases';
  650. _Methodid = 'firebaserules.projects.releases.create';
  651. Var
  652. _P : String;
  653. begin
  654. _P:=SubstitutePath(_Path,['name',_name]);
  655. Result:=ServiceCall(_HTTPMethod,_P,'',aRelease,TRelease) as TRelease;
  656. end;
  657. Function TProjectsReleasesResource.Get(_name: string) : TRelease;
  658. Const
  659. _HTTPMethod = 'GET';
  660. _Path = 'v1/{+name}';
  661. _Methodid = 'firebaserules.projects.releases.get';
  662. Var
  663. _P : String;
  664. begin
  665. _P:=SubstitutePath(_Path,['name',_name]);
  666. Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TRelease) as TRelease;
  667. end;
  668. Function TProjectsReleasesResource.List(_name: string; AQuery : string = '') : TListReleasesResponse;
  669. Const
  670. _HTTPMethod = 'GET';
  671. _Path = 'v1/{+name}/releases';
  672. _Methodid = 'firebaserules.projects.releases.list';
  673. Var
  674. _P : String;
  675. begin
  676. _P:=SubstitutePath(_Path,['name',_name]);
  677. Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TListReleasesResponse) as TListReleasesResponse;
  678. end;
  679. Function TProjectsReleasesResource.List(_name: string; AQuery : TProjectsReleaseslistOptions) : TListReleasesResponse;
  680. Var
  681. _Q : String;
  682. begin
  683. _Q:='';
  684. AddToQuery(_Q,'pageSize',AQuery.pageSize);
  685. AddToQuery(_Q,'filter',AQuery.filter);
  686. AddToQuery(_Q,'pageToken',AQuery.pageToken);
  687. Result:=List(_name,_Q);
  688. end;
  689. Function TProjectsReleasesResource.Delete(_name: string) : TEmpty;
  690. Const
  691. _HTTPMethod = 'DELETE';
  692. _Path = 'v1/{+name}';
  693. _Methodid = 'firebaserules.projects.releases.delete';
  694. Var
  695. _P : String;
  696. begin
  697. _P:=SubstitutePath(_Path,['name',_name]);
  698. Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TEmpty) as TEmpty;
  699. end;
  700. { --------------------------------------------------------------------
  701. TProjectsResource
  702. --------------------------------------------------------------------}
  703. Class Function TProjectsResource.ResourceName : String;
  704. begin
  705. Result:='projects';
  706. end;
  707. Class Function TProjectsResource.DefaultAPI : TGoogleAPIClass;
  708. begin
  709. Result:=TfirebaserulesAPI;
  710. end;
  711. Function TProjectsResource.Test(_name: string; aTestRulesetRequest : TTestRulesetRequest) : TTestRulesetResponse;
  712. Const
  713. _HTTPMethod = 'POST';
  714. _Path = 'v1/{+name}:test';
  715. _Methodid = 'firebaserules.projects.test';
  716. Var
  717. _P : String;
  718. begin
  719. _P:=SubstitutePath(_Path,['name',_name]);
  720. Result:=ServiceCall(_HTTPMethod,_P,'',aTestRulesetRequest,TTestRulesetResponse) as TTestRulesetResponse;
  721. end;
  722. Function TProjectsResource.GetRulesetsInstance : TProjectsRulesetsResource;
  723. begin
  724. if (FRulesetsInstance=Nil) then
  725. FRulesetsInstance:=CreateRulesetsResource;
  726. Result:=FRulesetsInstance;
  727. end;
  728. Function TProjectsResource.CreateRulesetsResource : TProjectsRulesetsResource;
  729. begin
  730. Result:=CreateRulesetsResource(Self);
  731. end;
  732. Function TProjectsResource.CreateRulesetsResource(AOwner : TComponent) : TProjectsRulesetsResource;
  733. begin
  734. Result:=TProjectsRulesetsResource.Create(AOwner);
  735. Result.API:=Self.API;
  736. end;
  737. Function TProjectsResource.GetReleasesInstance : TProjectsReleasesResource;
  738. begin
  739. if (FReleasesInstance=Nil) then
  740. FReleasesInstance:=CreateReleasesResource;
  741. Result:=FReleasesInstance;
  742. end;
  743. Function TProjectsResource.CreateReleasesResource : TProjectsReleasesResource;
  744. begin
  745. Result:=CreateReleasesResource(Self);
  746. end;
  747. Function TProjectsResource.CreateReleasesResource(AOwner : TComponent) : TProjectsReleasesResource;
  748. begin
  749. Result:=TProjectsReleasesResource.Create(AOwner);
  750. Result.API:=Self.API;
  751. end;
  752. { --------------------------------------------------------------------
  753. TFirebaserulesAPI
  754. --------------------------------------------------------------------}
  755. Class Function TFirebaserulesAPI.APIName : String;
  756. begin
  757. Result:='firebaserules';
  758. end;
  759. Class Function TFirebaserulesAPI.APIVersion : String;
  760. begin
  761. Result:='v1';
  762. end;
  763. Class Function TFirebaserulesAPI.APIRevision : String;
  764. begin
  765. Result:='20160517';
  766. end;
  767. Class Function TFirebaserulesAPI.APIID : String;
  768. begin
  769. Result:='firebaserules:v1';
  770. end;
  771. Class Function TFirebaserulesAPI.APITitle : String;
  772. begin
  773. Result:='Firebase Rules API';
  774. end;
  775. Class Function TFirebaserulesAPI.APIDescription : String;
  776. begin
  777. Result:='Creates and manages rules that determine when a Firebase Rules-enabled service should permit a request.';
  778. end;
  779. Class Function TFirebaserulesAPI.APIOwnerDomain : String;
  780. begin
  781. Result:='google.com';
  782. end;
  783. Class Function TFirebaserulesAPI.APIOwnerName : String;
  784. begin
  785. Result:='Google';
  786. end;
  787. Class Function TFirebaserulesAPI.APIIcon16 : String;
  788. begin
  789. Result:='http://www.google.com/images/icons/product/search-16.gif';
  790. end;
  791. Class Function TFirebaserulesAPI.APIIcon32 : String;
  792. begin
  793. Result:='http://www.google.com/images/icons/product/search-32.gif';
  794. end;
  795. Class Function TFirebaserulesAPI.APIdocumentationLink : String;
  796. begin
  797. Result:='https://firebase.google.com/docs/storage/security/start';
  798. end;
  799. Class Function TFirebaserulesAPI.APIrootUrl : string;
  800. begin
  801. Result:='https://firebaserules.googleapis.com/';
  802. end;
  803. Class Function TFirebaserulesAPI.APIbasePath : string;
  804. begin
  805. Result:='';
  806. end;
  807. Class Function TFirebaserulesAPI.APIbaseURL : String;
  808. begin
  809. Result:='https://firebaserules.googleapis.com/';
  810. end;
  811. Class Function TFirebaserulesAPI.APIProtocol : string;
  812. begin
  813. Result:='rest';
  814. end;
  815. Class Function TFirebaserulesAPI.APIservicePath : string;
  816. begin
  817. Result:='';
  818. end;
  819. Class Function TFirebaserulesAPI.APIbatchPath : String;
  820. begin
  821. Result:='batch';
  822. end;
  823. Class Function TFirebaserulesAPI.APIAuthScopes : TScopeInfoArray;
  824. begin
  825. SetLength(Result,1);
  826. Result[0].Name:='https://www.googleapis.com/auth/cloud-platform';
  827. Result[0].Description:='View and manage your data across Google Cloud Platform services';
  828. end;
  829. Class Function TFirebaserulesAPI.APINeedsAuth : Boolean;
  830. begin
  831. Result:=True;
  832. end;
  833. Class Procedure TFirebaserulesAPI.RegisterAPIResources;
  834. begin
  835. TRelease.RegisterObject;
  836. TSource.RegisterObject;
  837. TSourcePosition.RegisterObject;
  838. TTestRulesetResponse.RegisterObject;
  839. TRuleset.RegisterObject;
  840. TListReleasesResponse.RegisterObject;
  841. TListRulesetsResponse.RegisterObject;
  842. TEmpty.RegisterObject;
  843. TFile.RegisterObject;
  844. TTestRulesetRequest.RegisterObject;
  845. TIssue.RegisterObject;
  846. end;
  847. Function TFirebaserulesAPI.GetProjectsRulesetsInstance : TProjectsRulesetsResource;
  848. begin
  849. if (FProjectsRulesetsInstance=Nil) then
  850. FProjectsRulesetsInstance:=CreateProjectsRulesetsResource;
  851. Result:=FProjectsRulesetsInstance;
  852. end;
  853. Function TFirebaserulesAPI.CreateProjectsRulesetsResource : TProjectsRulesetsResource;
  854. begin
  855. Result:=CreateProjectsRulesetsResource(Self);
  856. end;
  857. Function TFirebaserulesAPI.CreateProjectsRulesetsResource(AOwner : TComponent) : TProjectsRulesetsResource;
  858. begin
  859. Result:=TProjectsRulesetsResource.Create(AOwner);
  860. Result.API:=Self.API;
  861. end;
  862. Function TFirebaserulesAPI.GetProjectsReleasesInstance : TProjectsReleasesResource;
  863. begin
  864. if (FProjectsReleasesInstance=Nil) then
  865. FProjectsReleasesInstance:=CreateProjectsReleasesResource;
  866. Result:=FProjectsReleasesInstance;
  867. end;
  868. Function TFirebaserulesAPI.CreateProjectsReleasesResource : TProjectsReleasesResource;
  869. begin
  870. Result:=CreateProjectsReleasesResource(Self);
  871. end;
  872. Function TFirebaserulesAPI.CreateProjectsReleasesResource(AOwner : TComponent) : TProjectsReleasesResource;
  873. begin
  874. Result:=TProjectsReleasesResource.Create(AOwner);
  875. Result.API:=Self.API;
  876. end;
  877. Function TFirebaserulesAPI.GetProjectsInstance : TProjectsResource;
  878. begin
  879. if (FProjectsInstance=Nil) then
  880. FProjectsInstance:=CreateProjectsResource;
  881. Result:=FProjectsInstance;
  882. end;
  883. Function TFirebaserulesAPI.CreateProjectsResource : TProjectsResource;
  884. begin
  885. Result:=CreateProjectsResource(Self);
  886. end;
  887. Function TFirebaserulesAPI.CreateProjectsResource(AOwner : TComponent) : TProjectsResource;
  888. begin
  889. Result:=TProjectsResource.Create(AOwner);
  890. Result.API:=Self.API;
  891. end;
  892. initialization
  893. TFirebaserulesAPI.RegisterAPI;
  894. end.