diff options
Diffstat (limited to 'packages/googleapi/src/googlesafebrowsing.pp')
-rw-r--r-- | packages/googleapi/src/googlesafebrowsing.pp | 2011 |
1 files changed, 2011 insertions, 0 deletions
diff --git a/packages/googleapi/src/googlesafebrowsing.pp b/packages/googleapi/src/googlesafebrowsing.pp new file mode 100644 index 0000000000..7b50761dbf --- /dev/null +++ b/packages/googleapi/src/googlesafebrowsing.pp @@ -0,0 +1,2011 @@ +unit googlesafebrowsing; +{$MODE objfpc} +{$H+} + +interface + +uses sysutils, classes, googleservice, restbase, googlebase; + +type + + //Top-level schema types + TFindThreatMatchesRequest = Class; + TClientInfo = Class; + TThreatInfo = Class; + TThreatEntry = Class; + TFindThreatMatchesResponse = Class; + TThreatMatch = Class; + TThreatEntryMetadata = Class; + TMetadataEntry = Class; + TFetchThreatListUpdatesRequest = Class; + TListUpdateRequest = Class; + TConstraints = Class; + TFetchThreatListUpdatesResponse = Class; + TListUpdateResponse = Class; + TThreatEntrySet = Class; + TRawHashes = Class; + TRawIndices = Class; + TRiceDeltaEncoding = Class; + TChecksum = Class; + TFindFullHashesRequest = Class; + TFindFullHashesResponse = Class; + TListThreatListsResponse = Class; + TThreatListDescriptor = Class; + TFindThreatMatchesRequestArray = Array of TFindThreatMatchesRequest; + TClientInfoArray = Array of TClientInfo; + TThreatInfoArray = Array of TThreatInfo; + TThreatEntryArray = Array of TThreatEntry; + TFindThreatMatchesResponseArray = Array of TFindThreatMatchesResponse; + TThreatMatchArray = Array of TThreatMatch; + TThreatEntryMetadataArray = Array of TThreatEntryMetadata; + TMetadataEntryArray = Array of TMetadataEntry; + TFetchThreatListUpdatesRequestArray = Array of TFetchThreatListUpdatesRequest; + TListUpdateRequestArray = Array of TListUpdateRequest; + TConstraintsArray = Array of TConstraints; + TFetchThreatListUpdatesResponseArray = Array of TFetchThreatListUpdatesResponse; + TListUpdateResponseArray = Array of TListUpdateResponse; + TThreatEntrySetArray = Array of TThreatEntrySet; + TRawHashesArray = Array of TRawHashes; + TRawIndicesArray = Array of TRawIndices; + TRiceDeltaEncodingArray = Array of TRiceDeltaEncoding; + TChecksumArray = Array of TChecksum; + TFindFullHashesRequestArray = Array of TFindFullHashesRequest; + TFindFullHashesResponseArray = Array of TFindFullHashesResponse; + TListThreatListsResponseArray = Array of TListThreatListsResponse; + TThreatListDescriptorArray = Array of TThreatListDescriptor; + //Anonymous types, using auto-generated names + TThreatInfoTypethreatEntriesArray = Array of TThreatEntry; + TFindThreatMatchesResponseTypematchesArray = Array of TThreatMatch; + TThreatEntryMetadataTypeentriesArray = Array of TMetadataEntry; + TFetchThreatListUpdatesRequestTypelistUpdateRequestsArray = Array of TListUpdateRequest; + TFetchThreatListUpdatesResponseTypelistUpdateResponsesArray = Array of TListUpdateResponse; + TListUpdateResponseTypeadditionsArray = Array of TThreatEntrySet; + TListUpdateResponseTyperemovalsArray = Array of TThreatEntrySet; + TFindFullHashesResponseTypematchesArray = Array of TThreatMatch; + TListThreatListsResponseTypethreatListsArray = Array of TThreatListDescriptor; + + { -------------------------------------------------------------------- + TFindThreatMatchesRequest + --------------------------------------------------------------------} + + TFindThreatMatchesRequest = Class(TGoogleBaseObject) + Private + Fclient : TClientInfo; + FthreatInfo : TThreatInfo; + Protected + //Property setters + Procedure Setclient(AIndex : Integer; const AValue : TClientInfo); virtual; + Procedure SetthreatInfo(AIndex : Integer; const AValue : TThreatInfo); virtual; + Public + Published + Property client : TClientInfo Index 0 Read Fclient Write Setclient; + Property threatInfo : TThreatInfo Index 8 Read FthreatInfo Write SetthreatInfo; + end; + TFindThreatMatchesRequestClass = Class of TFindThreatMatchesRequest; + + { -------------------------------------------------------------------- + TClientInfo + --------------------------------------------------------------------} + + TClientInfo = Class(TGoogleBaseObject) + Private + FclientId : String; + FclientVersion : String; + Protected + //Property setters + Procedure SetclientId(AIndex : Integer; const AValue : String); virtual; + Procedure SetclientVersion(AIndex : Integer; const AValue : String); virtual; + Public + Published + Property clientId : String Index 0 Read FclientId Write SetclientId; + Property clientVersion : String Index 8 Read FclientVersion Write SetclientVersion; + end; + TClientInfoClass = Class of TClientInfo; + + { -------------------------------------------------------------------- + TThreatInfo + --------------------------------------------------------------------} + + TThreatInfo = Class(TGoogleBaseObject) + Private + FthreatTypes : TStringArray; + FplatformTypes : TStringArray; + FthreatEntryTypes : TStringArray; + FthreatEntries : TThreatInfoTypethreatEntriesArray; + Protected + //Property setters + Procedure SetthreatTypes(AIndex : Integer; const AValue : TStringArray); virtual; + Procedure SetplatformTypes(AIndex : Integer; const AValue : TStringArray); virtual; + Procedure SetthreatEntryTypes(AIndex : Integer; const AValue : TStringArray); virtual; + Procedure SetthreatEntries(AIndex : Integer; const AValue : TThreatInfoTypethreatEntriesArray); virtual; + //2.6.4. bug workaround + {$IFDEF VER2_6} + Procedure SetArrayLength(Const AName : String; ALength : Longint); override; + {$ENDIF VER2_6} + Public + Published + Property threatTypes : TStringArray Index 0 Read FthreatTypes Write SetthreatTypes; + Property platformTypes : TStringArray Index 8 Read FplatformTypes Write SetplatformTypes; + Property threatEntryTypes : TStringArray Index 16 Read FthreatEntryTypes Write SetthreatEntryTypes; + Property threatEntries : TThreatInfoTypethreatEntriesArray Index 24 Read FthreatEntries Write SetthreatEntries; + end; + TThreatInfoClass = Class of TThreatInfo; + + { -------------------------------------------------------------------- + TThreatEntry + --------------------------------------------------------------------} + + TThreatEntry = Class(TGoogleBaseObject) + Private + Fhash : String; + Furl : String; + Fdigest : String; + Protected + //Property setters + Procedure Sethash(AIndex : Integer; const AValue : String); virtual; + Procedure Seturl(AIndex : Integer; const AValue : String); virtual; + Procedure Setdigest(AIndex : Integer; const AValue : String); virtual; + Public + Published + Property hash : String Index 0 Read Fhash Write Sethash; + Property url : String Index 8 Read Furl Write Seturl; + Property digest : String Index 16 Read Fdigest Write Setdigest; + end; + TThreatEntryClass = Class of TThreatEntry; + + { -------------------------------------------------------------------- + TFindThreatMatchesResponse + --------------------------------------------------------------------} + + TFindThreatMatchesResponse = Class(TGoogleBaseObject) + Private + Fmatches : TFindThreatMatchesResponseTypematchesArray; + Protected + //Property setters + Procedure Setmatches(AIndex : Integer; const AValue : TFindThreatMatchesResponseTypematchesArray); virtual; + //2.6.4. bug workaround + {$IFDEF VER2_6} + Procedure SetArrayLength(Const AName : String; ALength : Longint); override; + {$ENDIF VER2_6} + Public + Published + Property matches : TFindThreatMatchesResponseTypematchesArray Index 0 Read Fmatches Write Setmatches; + end; + TFindThreatMatchesResponseClass = Class of TFindThreatMatchesResponse; + + { -------------------------------------------------------------------- + TThreatMatch + --------------------------------------------------------------------} + + TThreatMatch = Class(TGoogleBaseObject) + Private + FthreatType : String; + FplatformType : String; + FthreatEntryType : String; + Fthreat : TThreatEntry; + FthreatEntryMetadata : TThreatEntryMetadata; + FcacheDuration : String; + Protected + //Property setters + Procedure SetthreatType(AIndex : Integer; const AValue : String); virtual; + Procedure SetplatformType(AIndex : Integer; const AValue : String); virtual; + Procedure SetthreatEntryType(AIndex : Integer; const AValue : String); virtual; + Procedure Setthreat(AIndex : Integer; const AValue : TThreatEntry); virtual; + Procedure SetthreatEntryMetadata(AIndex : Integer; const AValue : TThreatEntryMetadata); virtual; + Procedure SetcacheDuration(AIndex : Integer; const AValue : String); virtual; + Public + Published + Property threatType : String Index 0 Read FthreatType Write SetthreatType; + Property platformType : String Index 8 Read FplatformType Write SetplatformType; + Property threatEntryType : String Index 16 Read FthreatEntryType Write SetthreatEntryType; + Property threat : TThreatEntry Index 24 Read Fthreat Write Setthreat; + Property threatEntryMetadata : TThreatEntryMetadata Index 32 Read FthreatEntryMetadata Write SetthreatEntryMetadata; + Property cacheDuration : String Index 40 Read FcacheDuration Write SetcacheDuration; + end; + TThreatMatchClass = Class of TThreatMatch; + + { -------------------------------------------------------------------- + TThreatEntryMetadata + --------------------------------------------------------------------} + + TThreatEntryMetadata = Class(TGoogleBaseObject) + Private + Fentries : TThreatEntryMetadataTypeentriesArray; + Protected + //Property setters + Procedure Setentries(AIndex : Integer; const AValue : TThreatEntryMetadataTypeentriesArray); virtual; + //2.6.4. bug workaround + {$IFDEF VER2_6} + Procedure SetArrayLength(Const AName : String; ALength : Longint); override; + {$ENDIF VER2_6} + Public + Published + Property entries : TThreatEntryMetadataTypeentriesArray Index 0 Read Fentries Write Setentries; + end; + TThreatEntryMetadataClass = Class of TThreatEntryMetadata; + + { -------------------------------------------------------------------- + TMetadataEntry + --------------------------------------------------------------------} + + TMetadataEntry = Class(TGoogleBaseObject) + Private + Fkey : String; + Fvalue : String; + Protected + //Property setters + Procedure Setkey(AIndex : Integer; const AValue : String); virtual; + Procedure Setvalue(AIndex : Integer; const AValue : String); virtual; + Public + Published + Property key : String Index 0 Read Fkey Write Setkey; + Property value : String Index 8 Read Fvalue Write Setvalue; + end; + TMetadataEntryClass = Class of TMetadataEntry; + + { -------------------------------------------------------------------- + TFetchThreatListUpdatesRequest + --------------------------------------------------------------------} + + TFetchThreatListUpdatesRequest = Class(TGoogleBaseObject) + Private + Fclient : TClientInfo; + FlistUpdateRequests : TFetchThreatListUpdatesRequestTypelistUpdateRequestsArray; + Protected + //Property setters + Procedure Setclient(AIndex : Integer; const AValue : TClientInfo); virtual; + Procedure SetlistUpdateRequests(AIndex : Integer; const AValue : TFetchThreatListUpdatesRequestTypelistUpdateRequestsArray); virtual; + //2.6.4. bug workaround + {$IFDEF VER2_6} + Procedure SetArrayLength(Const AName : String; ALength : Longint); override; + {$ENDIF VER2_6} + Public + Published + Property client : TClientInfo Index 0 Read Fclient Write Setclient; + Property listUpdateRequests : TFetchThreatListUpdatesRequestTypelistUpdateRequestsArray Index 8 Read FlistUpdateRequests Write SetlistUpdateRequests; + end; + TFetchThreatListUpdatesRequestClass = Class of TFetchThreatListUpdatesRequest; + + { -------------------------------------------------------------------- + TListUpdateRequest + --------------------------------------------------------------------} + + TListUpdateRequest = Class(TGoogleBaseObject) + Private + FthreatType : String; + FplatformType : String; + FthreatEntryType : String; + Fstate : String; + Fconstraints : TConstraints; + Protected + //Property setters + Procedure SetthreatType(AIndex : Integer; const AValue : String); virtual; + Procedure SetplatformType(AIndex : Integer; const AValue : String); virtual; + Procedure SetthreatEntryType(AIndex : Integer; const AValue : String); virtual; + Procedure Setstate(AIndex : Integer; const AValue : String); virtual; + Procedure Setconstraints(AIndex : Integer; const AValue : TConstraints); virtual; + Public + Published + Property threatType : String Index 0 Read FthreatType Write SetthreatType; + Property platformType : String Index 8 Read FplatformType Write SetplatformType; + Property threatEntryType : String Index 16 Read FthreatEntryType Write SetthreatEntryType; + Property state : String Index 24 Read Fstate Write Setstate; + Property constraints : TConstraints Index 32 Read Fconstraints Write Setconstraints; + end; + TListUpdateRequestClass = Class of TListUpdateRequest; + + { -------------------------------------------------------------------- + TConstraints + --------------------------------------------------------------------} + + TConstraints = Class(TGoogleBaseObject) + Private + FmaxUpdateEntries : integer; + FmaxDatabaseEntries : integer; + Fregion : String; + FsupportedCompressions : TStringArray; + Protected + //Property setters + Procedure SetmaxUpdateEntries(AIndex : Integer; const AValue : integer); virtual; + Procedure SetmaxDatabaseEntries(AIndex : Integer; const AValue : integer); virtual; + Procedure Setregion(AIndex : Integer; const AValue : String); virtual; + Procedure SetsupportedCompressions(AIndex : Integer; const AValue : TStringArray); virtual; + //2.6.4. bug workaround + {$IFDEF VER2_6} + Procedure SetArrayLength(Const AName : String; ALength : Longint); override; + {$ENDIF VER2_6} + Public + Published + Property maxUpdateEntries : integer Index 0 Read FmaxUpdateEntries Write SetmaxUpdateEntries; + Property maxDatabaseEntries : integer Index 8 Read FmaxDatabaseEntries Write SetmaxDatabaseEntries; + Property region : String Index 16 Read Fregion Write Setregion; + Property supportedCompressions : TStringArray Index 24 Read FsupportedCompressions Write SetsupportedCompressions; + end; + TConstraintsClass = Class of TConstraints; + + { -------------------------------------------------------------------- + TFetchThreatListUpdatesResponse + --------------------------------------------------------------------} + + TFetchThreatListUpdatesResponse = Class(TGoogleBaseObject) + Private + FlistUpdateResponses : TFetchThreatListUpdatesResponseTypelistUpdateResponsesArray; + FminimumWaitDuration : String; + Protected + //Property setters + Procedure SetlistUpdateResponses(AIndex : Integer; const AValue : TFetchThreatListUpdatesResponseTypelistUpdateResponsesArray); virtual; + Procedure SetminimumWaitDuration(AIndex : Integer; const AValue : String); virtual; + //2.6.4. bug workaround + {$IFDEF VER2_6} + Procedure SetArrayLength(Const AName : String; ALength : Longint); override; + {$ENDIF VER2_6} + Public + Published + Property listUpdateResponses : TFetchThreatListUpdatesResponseTypelistUpdateResponsesArray Index 0 Read FlistUpdateResponses Write SetlistUpdateResponses; + Property minimumWaitDuration : String Index 8 Read FminimumWaitDuration Write SetminimumWaitDuration; + end; + TFetchThreatListUpdatesResponseClass = Class of TFetchThreatListUpdatesResponse; + + { -------------------------------------------------------------------- + TListUpdateResponse + --------------------------------------------------------------------} + + TListUpdateResponse = Class(TGoogleBaseObject) + Private + FthreatType : String; + FthreatEntryType : String; + FplatformType : String; + FresponseType : String; + Fadditions : TListUpdateResponseTypeadditionsArray; + Fremovals : TListUpdateResponseTyperemovalsArray; + FnewClientState : String; + Fchecksum : TChecksum; + Protected + //Property setters + Procedure SetthreatType(AIndex : Integer; const AValue : String); virtual; + Procedure SetthreatEntryType(AIndex : Integer; const AValue : String); virtual; + Procedure SetplatformType(AIndex : Integer; const AValue : String); virtual; + Procedure SetresponseType(AIndex : Integer; const AValue : String); virtual; + Procedure Setadditions(AIndex : Integer; const AValue : TListUpdateResponseTypeadditionsArray); virtual; + Procedure Setremovals(AIndex : Integer; const AValue : TListUpdateResponseTyperemovalsArray); virtual; + Procedure SetnewClientState(AIndex : Integer; const AValue : String); virtual; + Procedure Setchecksum(AIndex : Integer; const AValue : TChecksum); virtual; + //2.6.4. bug workaround + {$IFDEF VER2_6} + Procedure SetArrayLength(Const AName : String; ALength : Longint); override; + {$ENDIF VER2_6} + Public + Published + Property threatType : String Index 0 Read FthreatType Write SetthreatType; + Property threatEntryType : String Index 8 Read FthreatEntryType Write SetthreatEntryType; + Property platformType : String Index 16 Read FplatformType Write SetplatformType; + Property responseType : String Index 24 Read FresponseType Write SetresponseType; + Property additions : TListUpdateResponseTypeadditionsArray Index 32 Read Fadditions Write Setadditions; + Property removals : TListUpdateResponseTyperemovalsArray Index 40 Read Fremovals Write Setremovals; + Property newClientState : String Index 48 Read FnewClientState Write SetnewClientState; + Property checksum : TChecksum Index 56 Read Fchecksum Write Setchecksum; + end; + TListUpdateResponseClass = Class of TListUpdateResponse; + + { -------------------------------------------------------------------- + TThreatEntrySet + --------------------------------------------------------------------} + + TThreatEntrySet = Class(TGoogleBaseObject) + Private + FcompressionType : String; + FrawHashes : TRawHashes; + FrawIndices : TRawIndices; + FriceHashes : TRiceDeltaEncoding; + FriceIndices : TRiceDeltaEncoding; + Protected + //Property setters + Procedure SetcompressionType(AIndex : Integer; const AValue : String); virtual; + Procedure SetrawHashes(AIndex : Integer; const AValue : TRawHashes); virtual; + Procedure SetrawIndices(AIndex : Integer; const AValue : TRawIndices); virtual; + Procedure SetriceHashes(AIndex : Integer; const AValue : TRiceDeltaEncoding); virtual; + Procedure SetriceIndices(AIndex : Integer; const AValue : TRiceDeltaEncoding); virtual; + Public + Published + Property compressionType : String Index 0 Read FcompressionType Write SetcompressionType; + Property rawHashes : TRawHashes Index 8 Read FrawHashes Write SetrawHashes; + Property rawIndices : TRawIndices Index 16 Read FrawIndices Write SetrawIndices; + Property riceHashes : TRiceDeltaEncoding Index 24 Read FriceHashes Write SetriceHashes; + Property riceIndices : TRiceDeltaEncoding Index 32 Read FriceIndices Write SetriceIndices; + end; + TThreatEntrySetClass = Class of TThreatEntrySet; + + { -------------------------------------------------------------------- + TRawHashes + --------------------------------------------------------------------} + + TRawHashes = Class(TGoogleBaseObject) + Private + FprefixSize : integer; + FrawHashes : String; + Protected + //Property setters + Procedure SetprefixSize(AIndex : Integer; const AValue : integer); virtual; + Procedure SetrawHashes(AIndex : Integer; const AValue : String); virtual; + Public + Published + Property prefixSize : integer Index 0 Read FprefixSize Write SetprefixSize; + Property rawHashes : String Index 8 Read FrawHashes Write SetrawHashes; + end; + TRawHashesClass = Class of TRawHashes; + + { -------------------------------------------------------------------- + TRawIndices + --------------------------------------------------------------------} + + TRawIndices = Class(TGoogleBaseObject) + Private + Findices : TintegerArray; + Protected + //Property setters + Procedure Setindices(AIndex : Integer; const AValue : TintegerArray); virtual; + //2.6.4. bug workaround + {$IFDEF VER2_6} + Procedure SetArrayLength(Const AName : String; ALength : Longint); override; + {$ENDIF VER2_6} + Public + Published + Property indices : TintegerArray Index 0 Read Findices Write Setindices; + end; + TRawIndicesClass = Class of TRawIndices; + + { -------------------------------------------------------------------- + TRiceDeltaEncoding + --------------------------------------------------------------------} + + TRiceDeltaEncoding = Class(TGoogleBaseObject) + Private + FfirstValue : String; + FriceParameter : integer; + FnumEntries : integer; + FencodedData : String; + Protected + //Property setters + Procedure SetfirstValue(AIndex : Integer; const AValue : String); virtual; + Procedure SetriceParameter(AIndex : Integer; const AValue : integer); virtual; + Procedure SetnumEntries(AIndex : Integer; const AValue : integer); virtual; + Procedure SetencodedData(AIndex : Integer; const AValue : String); virtual; + Public + Published + Property firstValue : String Index 0 Read FfirstValue Write SetfirstValue; + Property riceParameter : integer Index 8 Read FriceParameter Write SetriceParameter; + Property numEntries : integer Index 16 Read FnumEntries Write SetnumEntries; + Property encodedData : String Index 24 Read FencodedData Write SetencodedData; + end; + TRiceDeltaEncodingClass = Class of TRiceDeltaEncoding; + + { -------------------------------------------------------------------- + TChecksum + --------------------------------------------------------------------} + + TChecksum = Class(TGoogleBaseObject) + Private + Fsha256 : String; + Protected + //Property setters + Procedure Setsha256(AIndex : Integer; const AValue : String); virtual; + Public + Published + Property sha256 : String Index 0 Read Fsha256 Write Setsha256; + end; + TChecksumClass = Class of TChecksum; + + { -------------------------------------------------------------------- + TFindFullHashesRequest + --------------------------------------------------------------------} + + TFindFullHashesRequest = Class(TGoogleBaseObject) + Private + Fclient : TClientInfo; + FclientStates : TStringArray; + FthreatInfo : TThreatInfo; + Protected + //Property setters + Procedure Setclient(AIndex : Integer; const AValue : TClientInfo); virtual; + Procedure SetclientStates(AIndex : Integer; const AValue : TStringArray); virtual; + Procedure SetthreatInfo(AIndex : Integer; const AValue : TThreatInfo); virtual; + //2.6.4. bug workaround + {$IFDEF VER2_6} + Procedure SetArrayLength(Const AName : String; ALength : Longint); override; + {$ENDIF VER2_6} + Public + Published + Property client : TClientInfo Index 0 Read Fclient Write Setclient; + Property clientStates : TStringArray Index 8 Read FclientStates Write SetclientStates; + Property threatInfo : TThreatInfo Index 16 Read FthreatInfo Write SetthreatInfo; + end; + TFindFullHashesRequestClass = Class of TFindFullHashesRequest; + + { -------------------------------------------------------------------- + TFindFullHashesResponse + --------------------------------------------------------------------} + + TFindFullHashesResponse = Class(TGoogleBaseObject) + Private + Fmatches : TFindFullHashesResponseTypematchesArray; + FminimumWaitDuration : String; + FnegativeCacheDuration : String; + Protected + //Property setters + Procedure Setmatches(AIndex : Integer; const AValue : TFindFullHashesResponseTypematchesArray); virtual; + Procedure SetminimumWaitDuration(AIndex : Integer; const AValue : String); virtual; + Procedure SetnegativeCacheDuration(AIndex : Integer; const AValue : String); virtual; + //2.6.4. bug workaround + {$IFDEF VER2_6} + Procedure SetArrayLength(Const AName : String; ALength : Longint); override; + {$ENDIF VER2_6} + Public + Published + Property matches : TFindFullHashesResponseTypematchesArray Index 0 Read Fmatches Write Setmatches; + Property minimumWaitDuration : String Index 8 Read FminimumWaitDuration Write SetminimumWaitDuration; + Property negativeCacheDuration : String Index 16 Read FnegativeCacheDuration Write SetnegativeCacheDuration; + end; + TFindFullHashesResponseClass = Class of TFindFullHashesResponse; + + { -------------------------------------------------------------------- + TListThreatListsResponse + --------------------------------------------------------------------} + + TListThreatListsResponse = Class(TGoogleBaseObject) + Private + FthreatLists : TListThreatListsResponseTypethreatListsArray; + Protected + //Property setters + Procedure SetthreatLists(AIndex : Integer; const AValue : TListThreatListsResponseTypethreatListsArray); virtual; + //2.6.4. bug workaround + {$IFDEF VER2_6} + Procedure SetArrayLength(Const AName : String; ALength : Longint); override; + {$ENDIF VER2_6} + Public + Published + Property threatLists : TListThreatListsResponseTypethreatListsArray Index 0 Read FthreatLists Write SetthreatLists; + end; + TListThreatListsResponseClass = Class of TListThreatListsResponse; + + { -------------------------------------------------------------------- + TThreatListDescriptor + --------------------------------------------------------------------} + + TThreatListDescriptor = Class(TGoogleBaseObject) + Private + FthreatType : String; + FplatformType : String; + FthreatEntryType : String; + Protected + //Property setters + Procedure SetthreatType(AIndex : Integer; const AValue : String); virtual; + Procedure SetplatformType(AIndex : Integer; const AValue : String); virtual; + Procedure SetthreatEntryType(AIndex : Integer; const AValue : String); virtual; + Public + Published + Property threatType : String Index 0 Read FthreatType Write SetthreatType; + Property platformType : String Index 8 Read FplatformType Write SetplatformType; + Property threatEntryType : String Index 16 Read FthreatEntryType Write SetthreatEntryType; + end; + TThreatListDescriptorClass = Class of TThreatListDescriptor; + + { -------------------------------------------------------------------- + TThreatMatchesResource + --------------------------------------------------------------------} + + TThreatMatchesResource = Class(TGoogleResource) + Public + Class Function ResourceName : String; override; + Class Function DefaultAPI : TGoogleAPIClass; override; + Function Find(aFindThreatMatchesRequest : TFindThreatMatchesRequest) : TFindThreatMatchesResponse; + end; + + + { -------------------------------------------------------------------- + TThreatListUpdatesResource + --------------------------------------------------------------------} + + TThreatListUpdatesResource = Class(TGoogleResource) + Public + Class Function ResourceName : String; override; + Class Function DefaultAPI : TGoogleAPIClass; override; + Function Fetch(aFetchThreatListUpdatesRequest : TFetchThreatListUpdatesRequest) : TFetchThreatListUpdatesResponse; + end; + + + { -------------------------------------------------------------------- + TFullHashesResource + --------------------------------------------------------------------} + + TFullHashesResource = Class(TGoogleResource) + Public + Class Function ResourceName : String; override; + Class Function DefaultAPI : TGoogleAPIClass; override; + Function Find(aFindFullHashesRequest : TFindFullHashesRequest) : TFindFullHashesResponse; + end; + + + { -------------------------------------------------------------------- + TThreatListsResource + --------------------------------------------------------------------} + + TThreatListsResource = Class(TGoogleResource) + Public + Class Function ResourceName : String; override; + Class Function DefaultAPI : TGoogleAPIClass; override; + Function List : TListThreatListsResponse; + end; + + + { -------------------------------------------------------------------- + TSafebrowsingAPI + --------------------------------------------------------------------} + + TSafebrowsingAPI = Class(TGoogleAPI) + Private + FThreatMatchesInstance : TThreatMatchesResource; + FThreatListUpdatesInstance : TThreatListUpdatesResource; + FFullHashesInstance : TFullHashesResource; + FThreatListsInstance : TThreatListsResource; + Function GetThreatMatchesInstance : TThreatMatchesResource;virtual; + Function GetThreatListUpdatesInstance : TThreatListUpdatesResource;virtual; + Function GetFullHashesInstance : TFullHashesResource;virtual; + Function GetThreatListsInstance : TThreatListsResource;virtual; + Public + //Override class functions with API info + Class Function APIName : String; override; + Class Function APIVersion : String; override; + Class Function APIRevision : String; override; + Class Function APIID : String; override; + Class Function APITitle : String; override; + Class Function APIDescription : String; override; + Class Function APIOwnerDomain : String; override; + Class Function APIOwnerName : String; override; + Class Function APIIcon16 : String; override; + Class Function APIIcon32 : String; override; + Class Function APIdocumentationLink : String; override; + Class Function APIrootUrl : string; override; + Class Function APIbasePath : string;override; + Class Function APIbaseURL : String;override; + Class Function APIProtocol : string;override; + Class Function APIservicePath : string;override; + Class Function APIbatchPath : String;override; + Class Function APIAuthScopes : TScopeInfoArray;override; + Class Function APINeedsAuth : Boolean;override; + Class Procedure RegisterAPIResources; override; + //Add create function for resources + Function CreateThreatMatchesResource(AOwner : TComponent) : TThreatMatchesResource;virtual;overload; + Function CreateThreatMatchesResource : TThreatMatchesResource;virtual;overload; + Function CreateThreatListUpdatesResource(AOwner : TComponent) : TThreatListUpdatesResource;virtual;overload; + Function CreateThreatListUpdatesResource : TThreatListUpdatesResource;virtual;overload; + Function CreateFullHashesResource(AOwner : TComponent) : TFullHashesResource;virtual;overload; + Function CreateFullHashesResource : TFullHashesResource;virtual;overload; + Function CreateThreatListsResource(AOwner : TComponent) : TThreatListsResource;virtual;overload; + Function CreateThreatListsResource : TThreatListsResource;virtual;overload; + //Add default on-demand instances for resources + Property ThreatMatchesResource : TThreatMatchesResource Read GetThreatMatchesInstance; + Property ThreatListUpdatesResource : TThreatListUpdatesResource Read GetThreatListUpdatesInstance; + Property FullHashesResource : TFullHashesResource Read GetFullHashesInstance; + Property ThreatListsResource : TThreatListsResource Read GetThreatListsInstance; + end; + +implementation + + +{ -------------------------------------------------------------------- + TFindThreatMatchesRequest + --------------------------------------------------------------------} + + +Procedure TFindThreatMatchesRequest.Setclient(AIndex : Integer; const AValue : TClientInfo); + +begin + If (Fclient=AValue) then exit; + Fclient:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TFindThreatMatchesRequest.SetthreatInfo(AIndex : Integer; const AValue : TThreatInfo); + +begin + If (FthreatInfo=AValue) then exit; + FthreatInfo:=AValue; + MarkPropertyChanged(AIndex); +end; + + + + + +{ -------------------------------------------------------------------- + TClientInfo + --------------------------------------------------------------------} + + +Procedure TClientInfo.SetclientId(AIndex : Integer; const AValue : String); + +begin + If (FclientId=AValue) then exit; + FclientId:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TClientInfo.SetclientVersion(AIndex : Integer; const AValue : String); + +begin + If (FclientVersion=AValue) then exit; + FclientVersion:=AValue; + MarkPropertyChanged(AIndex); +end; + + + + + +{ -------------------------------------------------------------------- + TThreatInfo + --------------------------------------------------------------------} + + +Procedure TThreatInfo.SetthreatTypes(AIndex : Integer; const AValue : TStringArray); + +begin + If (FthreatTypes=AValue) then exit; + FthreatTypes:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatInfo.SetplatformTypes(AIndex : Integer; const AValue : TStringArray); + +begin + If (FplatformTypes=AValue) then exit; + FplatformTypes:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatInfo.SetthreatEntryTypes(AIndex : Integer; const AValue : TStringArray); + +begin + If (FthreatEntryTypes=AValue) then exit; + FthreatEntryTypes:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatInfo.SetthreatEntries(AIndex : Integer; const AValue : TThreatInfoTypethreatEntriesArray); + +begin + If (FthreatEntries=AValue) then exit; + FthreatEntries:=AValue; + MarkPropertyChanged(AIndex); +end; + + +//2.6.4. bug workaround +{$IFDEF VER2_6} +Procedure TThreatInfo.SetArrayLength(Const AName : String; ALength : Longint); + +begin + Case AName of + 'threattypes' : SetLength(FthreatTypes,ALength); + 'platformtypes' : SetLength(FplatformTypes,ALength); + 'threatentrytypes' : SetLength(FthreatEntryTypes,ALength); + 'threatentries' : SetLength(FthreatEntries,ALength); + else + Inherited SetArrayLength(AName,ALength); + end; +end; +{$ENDIF VER2_6} + + + + +{ -------------------------------------------------------------------- + TThreatEntry + --------------------------------------------------------------------} + + +Procedure TThreatEntry.Sethash(AIndex : Integer; const AValue : String); + +begin + If (Fhash=AValue) then exit; + Fhash:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatEntry.Seturl(AIndex : Integer; const AValue : String); + +begin + If (Furl=AValue) then exit; + Furl:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatEntry.Setdigest(AIndex : Integer; const AValue : String); + +begin + If (Fdigest=AValue) then exit; + Fdigest:=AValue; + MarkPropertyChanged(AIndex); +end; + + + + + +{ -------------------------------------------------------------------- + TFindThreatMatchesResponse + --------------------------------------------------------------------} + + +Procedure TFindThreatMatchesResponse.Setmatches(AIndex : Integer; const AValue : TFindThreatMatchesResponseTypematchesArray); + +begin + If (Fmatches=AValue) then exit; + Fmatches:=AValue; + MarkPropertyChanged(AIndex); +end; + + +//2.6.4. bug workaround +{$IFDEF VER2_6} +Procedure TFindThreatMatchesResponse.SetArrayLength(Const AName : String; ALength : Longint); + +begin + Case AName of + 'matches' : SetLength(Fmatches,ALength); + else + Inherited SetArrayLength(AName,ALength); + end; +end; +{$ENDIF VER2_6} + + + + +{ -------------------------------------------------------------------- + TThreatMatch + --------------------------------------------------------------------} + + +Procedure TThreatMatch.SetthreatType(AIndex : Integer; const AValue : String); + +begin + If (FthreatType=AValue) then exit; + FthreatType:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatMatch.SetplatformType(AIndex : Integer; const AValue : String); + +begin + If (FplatformType=AValue) then exit; + FplatformType:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatMatch.SetthreatEntryType(AIndex : Integer; const AValue : String); + +begin + If (FthreatEntryType=AValue) then exit; + FthreatEntryType:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatMatch.Setthreat(AIndex : Integer; const AValue : TThreatEntry); + +begin + If (Fthreat=AValue) then exit; + Fthreat:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatMatch.SetthreatEntryMetadata(AIndex : Integer; const AValue : TThreatEntryMetadata); + +begin + If (FthreatEntryMetadata=AValue) then exit; + FthreatEntryMetadata:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatMatch.SetcacheDuration(AIndex : Integer; const AValue : String); + +begin + If (FcacheDuration=AValue) then exit; + FcacheDuration:=AValue; + MarkPropertyChanged(AIndex); +end; + + + + + +{ -------------------------------------------------------------------- + TThreatEntryMetadata + --------------------------------------------------------------------} + + +Procedure TThreatEntryMetadata.Setentries(AIndex : Integer; const AValue : TThreatEntryMetadataTypeentriesArray); + +begin + If (Fentries=AValue) then exit; + Fentries:=AValue; + MarkPropertyChanged(AIndex); +end; + + +//2.6.4. bug workaround +{$IFDEF VER2_6} +Procedure TThreatEntryMetadata.SetArrayLength(Const AName : String; ALength : Longint); + +begin + Case AName of + 'entries' : SetLength(Fentries,ALength); + else + Inherited SetArrayLength(AName,ALength); + end; +end; +{$ENDIF VER2_6} + + + + +{ -------------------------------------------------------------------- + TMetadataEntry + --------------------------------------------------------------------} + + +Procedure TMetadataEntry.Setkey(AIndex : Integer; const AValue : String); + +begin + If (Fkey=AValue) then exit; + Fkey:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TMetadataEntry.Setvalue(AIndex : Integer; const AValue : String); + +begin + If (Fvalue=AValue) then exit; + Fvalue:=AValue; + MarkPropertyChanged(AIndex); +end; + + + + + +{ -------------------------------------------------------------------- + TFetchThreatListUpdatesRequest + --------------------------------------------------------------------} + + +Procedure TFetchThreatListUpdatesRequest.Setclient(AIndex : Integer; const AValue : TClientInfo); + +begin + If (Fclient=AValue) then exit; + Fclient:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TFetchThreatListUpdatesRequest.SetlistUpdateRequests(AIndex : Integer; const AValue : TFetchThreatListUpdatesRequestTypelistUpdateRequestsArray); + +begin + If (FlistUpdateRequests=AValue) then exit; + FlistUpdateRequests:=AValue; + MarkPropertyChanged(AIndex); +end; + + +//2.6.4. bug workaround +{$IFDEF VER2_6} +Procedure TFetchThreatListUpdatesRequest.SetArrayLength(Const AName : String; ALength : Longint); + +begin + Case AName of + 'listupdaterequests' : SetLength(FlistUpdateRequests,ALength); + else + Inherited SetArrayLength(AName,ALength); + end; +end; +{$ENDIF VER2_6} + + + + +{ -------------------------------------------------------------------- + TListUpdateRequest + --------------------------------------------------------------------} + + +Procedure TListUpdateRequest.SetthreatType(AIndex : Integer; const AValue : String); + +begin + If (FthreatType=AValue) then exit; + FthreatType:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TListUpdateRequest.SetplatformType(AIndex : Integer; const AValue : String); + +begin + If (FplatformType=AValue) then exit; + FplatformType:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TListUpdateRequest.SetthreatEntryType(AIndex : Integer; const AValue : String); + +begin + If (FthreatEntryType=AValue) then exit; + FthreatEntryType:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TListUpdateRequest.Setstate(AIndex : Integer; const AValue : String); + +begin + If (Fstate=AValue) then exit; + Fstate:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TListUpdateRequest.Setconstraints(AIndex : Integer; const AValue : TConstraints); + +begin + If (Fconstraints=AValue) then exit; + Fconstraints:=AValue; + MarkPropertyChanged(AIndex); +end; + + + + + +{ -------------------------------------------------------------------- + TConstraints + --------------------------------------------------------------------} + + +Procedure TConstraints.SetmaxUpdateEntries(AIndex : Integer; const AValue : integer); + +begin + If (FmaxUpdateEntries=AValue) then exit; + FmaxUpdateEntries:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TConstraints.SetmaxDatabaseEntries(AIndex : Integer; const AValue : integer); + +begin + If (FmaxDatabaseEntries=AValue) then exit; + FmaxDatabaseEntries:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TConstraints.Setregion(AIndex : Integer; const AValue : String); + +begin + If (Fregion=AValue) then exit; + Fregion:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TConstraints.SetsupportedCompressions(AIndex : Integer; const AValue : TStringArray); + +begin + If (FsupportedCompressions=AValue) then exit; + FsupportedCompressions:=AValue; + MarkPropertyChanged(AIndex); +end; + + +//2.6.4. bug workaround +{$IFDEF VER2_6} +Procedure TConstraints.SetArrayLength(Const AName : String; ALength : Longint); + +begin + Case AName of + 'supportedcompressions' : SetLength(FsupportedCompressions,ALength); + else + Inherited SetArrayLength(AName,ALength); + end; +end; +{$ENDIF VER2_6} + + + + +{ -------------------------------------------------------------------- + TFetchThreatListUpdatesResponse + --------------------------------------------------------------------} + + +Procedure TFetchThreatListUpdatesResponse.SetlistUpdateResponses(AIndex : Integer; const AValue : TFetchThreatListUpdatesResponseTypelistUpdateResponsesArray); + +begin + If (FlistUpdateResponses=AValue) then exit; + FlistUpdateResponses:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TFetchThreatListUpdatesResponse.SetminimumWaitDuration(AIndex : Integer; const AValue : String); + +begin + If (FminimumWaitDuration=AValue) then exit; + FminimumWaitDuration:=AValue; + MarkPropertyChanged(AIndex); +end; + + +//2.6.4. bug workaround +{$IFDEF VER2_6} +Procedure TFetchThreatListUpdatesResponse.SetArrayLength(Const AName : String; ALength : Longint); + +begin + Case AName of + 'listupdateresponses' : SetLength(FlistUpdateResponses,ALength); + else + Inherited SetArrayLength(AName,ALength); + end; +end; +{$ENDIF VER2_6} + + + + +{ -------------------------------------------------------------------- + TListUpdateResponse + --------------------------------------------------------------------} + + +Procedure TListUpdateResponse.SetthreatType(AIndex : Integer; const AValue : String); + +begin + If (FthreatType=AValue) then exit; + FthreatType:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TListUpdateResponse.SetthreatEntryType(AIndex : Integer; const AValue : String); + +begin + If (FthreatEntryType=AValue) then exit; + FthreatEntryType:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TListUpdateResponse.SetplatformType(AIndex : Integer; const AValue : String); + +begin + If (FplatformType=AValue) then exit; + FplatformType:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TListUpdateResponse.SetresponseType(AIndex : Integer; const AValue : String); + +begin + If (FresponseType=AValue) then exit; + FresponseType:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TListUpdateResponse.Setadditions(AIndex : Integer; const AValue : TListUpdateResponseTypeadditionsArray); + +begin + If (Fadditions=AValue) then exit; + Fadditions:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TListUpdateResponse.Setremovals(AIndex : Integer; const AValue : TListUpdateResponseTyperemovalsArray); + +begin + If (Fremovals=AValue) then exit; + Fremovals:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TListUpdateResponse.SetnewClientState(AIndex : Integer; const AValue : String); + +begin + If (FnewClientState=AValue) then exit; + FnewClientState:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TListUpdateResponse.Setchecksum(AIndex : Integer; const AValue : TChecksum); + +begin + If (Fchecksum=AValue) then exit; + Fchecksum:=AValue; + MarkPropertyChanged(AIndex); +end; + + +//2.6.4. bug workaround +{$IFDEF VER2_6} +Procedure TListUpdateResponse.SetArrayLength(Const AName : String; ALength : Longint); + +begin + Case AName of + 'additions' : SetLength(Fadditions,ALength); + 'removals' : SetLength(Fremovals,ALength); + else + Inherited SetArrayLength(AName,ALength); + end; +end; +{$ENDIF VER2_6} + + + + +{ -------------------------------------------------------------------- + TThreatEntrySet + --------------------------------------------------------------------} + + +Procedure TThreatEntrySet.SetcompressionType(AIndex : Integer; const AValue : String); + +begin + If (FcompressionType=AValue) then exit; + FcompressionType:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatEntrySet.SetrawHashes(AIndex : Integer; const AValue : TRawHashes); + +begin + If (FrawHashes=AValue) then exit; + FrawHashes:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatEntrySet.SetrawIndices(AIndex : Integer; const AValue : TRawIndices); + +begin + If (FrawIndices=AValue) then exit; + FrawIndices:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatEntrySet.SetriceHashes(AIndex : Integer; const AValue : TRiceDeltaEncoding); + +begin + If (FriceHashes=AValue) then exit; + FriceHashes:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatEntrySet.SetriceIndices(AIndex : Integer; const AValue : TRiceDeltaEncoding); + +begin + If (FriceIndices=AValue) then exit; + FriceIndices:=AValue; + MarkPropertyChanged(AIndex); +end; + + + + + +{ -------------------------------------------------------------------- + TRawHashes + --------------------------------------------------------------------} + + +Procedure TRawHashes.SetprefixSize(AIndex : Integer; const AValue : integer); + +begin + If (FprefixSize=AValue) then exit; + FprefixSize:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TRawHashes.SetrawHashes(AIndex : Integer; const AValue : String); + +begin + If (FrawHashes=AValue) then exit; + FrawHashes:=AValue; + MarkPropertyChanged(AIndex); +end; + + + + + +{ -------------------------------------------------------------------- + TRawIndices + --------------------------------------------------------------------} + + +Procedure TRawIndices.Setindices(AIndex : Integer; const AValue : TintegerArray); + +begin + If (Findices=AValue) then exit; + Findices:=AValue; + MarkPropertyChanged(AIndex); +end; + + +//2.6.4. bug workaround +{$IFDEF VER2_6} +Procedure TRawIndices.SetArrayLength(Const AName : String; ALength : Longint); + +begin + Case AName of + 'indices' : SetLength(Findices,ALength); + else + Inherited SetArrayLength(AName,ALength); + end; +end; +{$ENDIF VER2_6} + + + + +{ -------------------------------------------------------------------- + TRiceDeltaEncoding + --------------------------------------------------------------------} + + +Procedure TRiceDeltaEncoding.SetfirstValue(AIndex : Integer; const AValue : String); + +begin + If (FfirstValue=AValue) then exit; + FfirstValue:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TRiceDeltaEncoding.SetriceParameter(AIndex : Integer; const AValue : integer); + +begin + If (FriceParameter=AValue) then exit; + FriceParameter:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TRiceDeltaEncoding.SetnumEntries(AIndex : Integer; const AValue : integer); + +begin + If (FnumEntries=AValue) then exit; + FnumEntries:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TRiceDeltaEncoding.SetencodedData(AIndex : Integer; const AValue : String); + +begin + If (FencodedData=AValue) then exit; + FencodedData:=AValue; + MarkPropertyChanged(AIndex); +end; + + + + + +{ -------------------------------------------------------------------- + TChecksum + --------------------------------------------------------------------} + + +Procedure TChecksum.Setsha256(AIndex : Integer; const AValue : String); + +begin + If (Fsha256=AValue) then exit; + Fsha256:=AValue; + MarkPropertyChanged(AIndex); +end; + + + + + +{ -------------------------------------------------------------------- + TFindFullHashesRequest + --------------------------------------------------------------------} + + +Procedure TFindFullHashesRequest.Setclient(AIndex : Integer; const AValue : TClientInfo); + +begin + If (Fclient=AValue) then exit; + Fclient:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TFindFullHashesRequest.SetclientStates(AIndex : Integer; const AValue : TStringArray); + +begin + If (FclientStates=AValue) then exit; + FclientStates:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TFindFullHashesRequest.SetthreatInfo(AIndex : Integer; const AValue : TThreatInfo); + +begin + If (FthreatInfo=AValue) then exit; + FthreatInfo:=AValue; + MarkPropertyChanged(AIndex); +end; + + +//2.6.4. bug workaround +{$IFDEF VER2_6} +Procedure TFindFullHashesRequest.SetArrayLength(Const AName : String; ALength : Longint); + +begin + Case AName of + 'clientstates' : SetLength(FclientStates,ALength); + else + Inherited SetArrayLength(AName,ALength); + end; +end; +{$ENDIF VER2_6} + + + + +{ -------------------------------------------------------------------- + TFindFullHashesResponse + --------------------------------------------------------------------} + + +Procedure TFindFullHashesResponse.Setmatches(AIndex : Integer; const AValue : TFindFullHashesResponseTypematchesArray); + +begin + If (Fmatches=AValue) then exit; + Fmatches:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TFindFullHashesResponse.SetminimumWaitDuration(AIndex : Integer; const AValue : String); + +begin + If (FminimumWaitDuration=AValue) then exit; + FminimumWaitDuration:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TFindFullHashesResponse.SetnegativeCacheDuration(AIndex : Integer; const AValue : String); + +begin + If (FnegativeCacheDuration=AValue) then exit; + FnegativeCacheDuration:=AValue; + MarkPropertyChanged(AIndex); +end; + + +//2.6.4. bug workaround +{$IFDEF VER2_6} +Procedure TFindFullHashesResponse.SetArrayLength(Const AName : String; ALength : Longint); + +begin + Case AName of + 'matches' : SetLength(Fmatches,ALength); + else + Inherited SetArrayLength(AName,ALength); + end; +end; +{$ENDIF VER2_6} + + + + +{ -------------------------------------------------------------------- + TListThreatListsResponse + --------------------------------------------------------------------} + + +Procedure TListThreatListsResponse.SetthreatLists(AIndex : Integer; const AValue : TListThreatListsResponseTypethreatListsArray); + +begin + If (FthreatLists=AValue) then exit; + FthreatLists:=AValue; + MarkPropertyChanged(AIndex); +end; + + +//2.6.4. bug workaround +{$IFDEF VER2_6} +Procedure TListThreatListsResponse.SetArrayLength(Const AName : String; ALength : Longint); + +begin + Case AName of + 'threatlists' : SetLength(FthreatLists,ALength); + else + Inherited SetArrayLength(AName,ALength); + end; +end; +{$ENDIF VER2_6} + + + + +{ -------------------------------------------------------------------- + TThreatListDescriptor + --------------------------------------------------------------------} + + +Procedure TThreatListDescriptor.SetthreatType(AIndex : Integer; const AValue : String); + +begin + If (FthreatType=AValue) then exit; + FthreatType:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatListDescriptor.SetplatformType(AIndex : Integer; const AValue : String); + +begin + If (FplatformType=AValue) then exit; + FplatformType:=AValue; + MarkPropertyChanged(AIndex); +end; + + + +Procedure TThreatListDescriptor.SetthreatEntryType(AIndex : Integer; const AValue : String); + +begin + If (FthreatEntryType=AValue) then exit; + FthreatEntryType:=AValue; + MarkPropertyChanged(AIndex); +end; + + + + + +{ -------------------------------------------------------------------- + TThreatMatchesResource + --------------------------------------------------------------------} + + +Class Function TThreatMatchesResource.ResourceName : String; + +begin + Result:='threatMatches'; +end; + +Class Function TThreatMatchesResource.DefaultAPI : TGoogleAPIClass; + +begin + Result:=TsafebrowsingAPI; +end; + +Function TThreatMatchesResource.Find(aFindThreatMatchesRequest : TFindThreatMatchesRequest) : TFindThreatMatchesResponse; + +Const + _HTTPMethod = 'POST'; + _Path = 'v4/threatMatches:find'; + _Methodid = 'safebrowsing.threatMatches.find'; + +begin + Result:=ServiceCall(_HTTPMethod,_Path,'',aFindThreatMatchesRequest,TFindThreatMatchesResponse) as TFindThreatMatchesResponse; +end; + + + +{ -------------------------------------------------------------------- + TThreatListUpdatesResource + --------------------------------------------------------------------} + + +Class Function TThreatListUpdatesResource.ResourceName : String; + +begin + Result:='threatListUpdates'; +end; + +Class Function TThreatListUpdatesResource.DefaultAPI : TGoogleAPIClass; + +begin + Result:=TsafebrowsingAPI; +end; + +Function TThreatListUpdatesResource.Fetch(aFetchThreatListUpdatesRequest : TFetchThreatListUpdatesRequest) : TFetchThreatListUpdatesResponse; + +Const + _HTTPMethod = 'POST'; + _Path = 'v4/threatListUpdates:fetch'; + _Methodid = 'safebrowsing.threatListUpdates.fetch'; + +begin + Result:=ServiceCall(_HTTPMethod,_Path,'',aFetchThreatListUpdatesRequest,TFetchThreatListUpdatesResponse) as TFetchThreatListUpdatesResponse; +end; + + + +{ -------------------------------------------------------------------- + TFullHashesResource + --------------------------------------------------------------------} + + +Class Function TFullHashesResource.ResourceName : String; + +begin + Result:='fullHashes'; +end; + +Class Function TFullHashesResource.DefaultAPI : TGoogleAPIClass; + +begin + Result:=TsafebrowsingAPI; +end; + +Function TFullHashesResource.Find(aFindFullHashesRequest : TFindFullHashesRequest) : TFindFullHashesResponse; + +Const + _HTTPMethod = 'POST'; + _Path = 'v4/fullHashes:find'; + _Methodid = 'safebrowsing.fullHashes.find'; + +begin + Result:=ServiceCall(_HTTPMethod,_Path,'',aFindFullHashesRequest,TFindFullHashesResponse) as TFindFullHashesResponse; +end; + + + +{ -------------------------------------------------------------------- + TThreatListsResource + --------------------------------------------------------------------} + + +Class Function TThreatListsResource.ResourceName : String; + +begin + Result:='threatLists'; +end; + +Class Function TThreatListsResource.DefaultAPI : TGoogleAPIClass; + +begin + Result:=TsafebrowsingAPI; +end; + +Function TThreatListsResource.List : TListThreatListsResponse; + +Const + _HTTPMethod = 'GET'; + _Path = 'v4/threatLists'; + _Methodid = 'safebrowsing.threatLists.list'; + +begin + Result:=ServiceCall(_HTTPMethod,_Path,'',Nil,TListThreatListsResponse) as TListThreatListsResponse; +end; + + + +{ -------------------------------------------------------------------- + TSafebrowsingAPI + --------------------------------------------------------------------} + +Class Function TSafebrowsingAPI.APIName : String; + +begin + Result:='safebrowsing'; +end; + +Class Function TSafebrowsingAPI.APIVersion : String; + +begin + Result:='v4'; +end; + +Class Function TSafebrowsingAPI.APIRevision : String; + +begin + Result:='20160520'; +end; + +Class Function TSafebrowsingAPI.APIID : String; + +begin + Result:='safebrowsing:v4'; +end; + +Class Function TSafebrowsingAPI.APITitle : String; + +begin + Result:='Safe Browsing APIs'; +end; + +Class Function TSafebrowsingAPI.APIDescription : String; + +begin + Result:='Enables client applications to check web resources (most commonly URLs) against Google-generated lists of unsafe web resources.'; +end; + +Class Function TSafebrowsingAPI.APIOwnerDomain : String; + +begin + Result:='google.com'; +end; + +Class Function TSafebrowsingAPI.APIOwnerName : String; + +begin + Result:='Google'; +end; + +Class Function TSafebrowsingAPI.APIIcon16 : String; + +begin + Result:='http://www.google.com/images/icons/product/search-16.gif'; +end; + +Class Function TSafebrowsingAPI.APIIcon32 : String; + +begin + Result:='http://www.google.com/images/icons/product/search-32.gif'; +end; + +Class Function TSafebrowsingAPI.APIdocumentationLink : String; + +begin + Result:='https://developers.google.com/safe-browsing/'; +end; + +Class Function TSafebrowsingAPI.APIrootUrl : string; + +begin + Result:='https://safebrowsing.googleapis.com/'; +end; + +Class Function TSafebrowsingAPI.APIbasePath : string; + +begin + Result:=''; +end; + +Class Function TSafebrowsingAPI.APIbaseURL : String; + +begin + Result:='https://safebrowsing.googleapis.com/'; +end; + +Class Function TSafebrowsingAPI.APIProtocol : string; + +begin + Result:='rest'; +end; + +Class Function TSafebrowsingAPI.APIservicePath : string; + +begin + Result:=''; +end; + +Class Function TSafebrowsingAPI.APIbatchPath : String; + +begin + Result:='batch'; +end; + +Class Function TSafebrowsingAPI.APIAuthScopes : TScopeInfoArray; + +begin + SetLength(Result,0); + +end; + +Class Function TSafebrowsingAPI.APINeedsAuth : Boolean; + +begin + Result:=False; +end; + +Class Procedure TSafebrowsingAPI.RegisterAPIResources; + +begin + TFindThreatMatchesRequest.RegisterObject; + TClientInfo.RegisterObject; + TThreatInfo.RegisterObject; + TThreatEntry.RegisterObject; + TFindThreatMatchesResponse.RegisterObject; + TThreatMatch.RegisterObject; + TThreatEntryMetadata.RegisterObject; + TMetadataEntry.RegisterObject; + TFetchThreatListUpdatesRequest.RegisterObject; + TListUpdateRequest.RegisterObject; + TConstraints.RegisterObject; + TFetchThreatListUpdatesResponse.RegisterObject; + TListUpdateResponse.RegisterObject; + TThreatEntrySet.RegisterObject; + TRawHashes.RegisterObject; + TRawIndices.RegisterObject; + TRiceDeltaEncoding.RegisterObject; + TChecksum.RegisterObject; + TFindFullHashesRequest.RegisterObject; + TFindFullHashesResponse.RegisterObject; + TListThreatListsResponse.RegisterObject; + TThreatListDescriptor.RegisterObject; +end; + + +Function TSafebrowsingAPI.GetThreatMatchesInstance : TThreatMatchesResource; + +begin + if (FThreatMatchesInstance=Nil) then + FThreatMatchesInstance:=CreateThreatMatchesResource; + Result:=FThreatMatchesInstance; +end; + +Function TSafebrowsingAPI.CreateThreatMatchesResource : TThreatMatchesResource; + +begin + Result:=CreateThreatMatchesResource(Self); +end; + + +Function TSafebrowsingAPI.CreateThreatMatchesResource(AOwner : TComponent) : TThreatMatchesResource; + +begin + Result:=TThreatMatchesResource.Create(AOwner); + Result.API:=Self.API; +end; + + + +Function TSafebrowsingAPI.GetThreatListUpdatesInstance : TThreatListUpdatesResource; + +begin + if (FThreatListUpdatesInstance=Nil) then + FThreatListUpdatesInstance:=CreateThreatListUpdatesResource; + Result:=FThreatListUpdatesInstance; +end; + +Function TSafebrowsingAPI.CreateThreatListUpdatesResource : TThreatListUpdatesResource; + +begin + Result:=CreateThreatListUpdatesResource(Self); +end; + + +Function TSafebrowsingAPI.CreateThreatListUpdatesResource(AOwner : TComponent) : TThreatListUpdatesResource; + +begin + Result:=TThreatListUpdatesResource.Create(AOwner); + Result.API:=Self.API; +end; + + + +Function TSafebrowsingAPI.GetFullHashesInstance : TFullHashesResource; + +begin + if (FFullHashesInstance=Nil) then + FFullHashesInstance:=CreateFullHashesResource; + Result:=FFullHashesInstance; +end; + +Function TSafebrowsingAPI.CreateFullHashesResource : TFullHashesResource; + +begin + Result:=CreateFullHashesResource(Self); +end; + + +Function TSafebrowsingAPI.CreateFullHashesResource(AOwner : TComponent) : TFullHashesResource; + +begin + Result:=TFullHashesResource.Create(AOwner); + Result.API:=Self.API; +end; + + + +Function TSafebrowsingAPI.GetThreatListsInstance : TThreatListsResource; + +begin + if (FThreatListsInstance=Nil) then + FThreatListsInstance:=CreateThreatListsResource; + Result:=FThreatListsInstance; +end; + +Function TSafebrowsingAPI.CreateThreatListsResource : TThreatListsResource; + +begin + Result:=CreateThreatListsResource(Self); +end; + + +Function TSafebrowsingAPI.CreateThreatListsResource(AOwner : TComponent) : TThreatListsResource; + +begin + Result:=TThreatListsResource.Create(AOwner); + Result.API:=Self.API; +end; + + + +initialization + TSafebrowsingAPI.RegisterAPI; +end. |