unit googlegmail; {$MODE objfpc} {$H+} interface uses sysutils, classes, googleservice, restbase, googlebase; type //Top-level schema types TBatchDeleteMessagesRequest = Class; TDraft = Class; THistory = Class; THistoryLabelAdded = Class; THistoryLabelRemoved = Class; THistoryMessageAdded = Class; THistoryMessageDeleted = Class; TLabel = Class; TListDraftsResponse = Class; TListHistoryResponse = Class; TListLabelsResponse = Class; TListMessagesResponse = Class; TListThreadsResponse = Class; TMessage = Class; TMessagePart = Class; TMessagePartBody = Class; TMessagePartHeader = Class; TModifyMessageRequest = Class; TModifyThreadRequest = Class; TProfile = Class; TThread = Class; TWatchRequest = Class; TWatchResponse = Class; TBatchDeleteMessagesRequestArray = Array of TBatchDeleteMessagesRequest; TDraftArray = Array of TDraft; THistoryArray = Array of THistory; THistoryLabelAddedArray = Array of THistoryLabelAdded; THistoryLabelRemovedArray = Array of THistoryLabelRemoved; THistoryMessageAddedArray = Array of THistoryMessageAdded; THistoryMessageDeletedArray = Array of THistoryMessageDeleted; TLabelArray = Array of TLabel; TListDraftsResponseArray = Array of TListDraftsResponse; TListHistoryResponseArray = Array of TListHistoryResponse; TListLabelsResponseArray = Array of TListLabelsResponse; TListMessagesResponseArray = Array of TListMessagesResponse; TListThreadsResponseArray = Array of TListThreadsResponse; TMessageArray = Array of TMessage; TMessagePartArray = Array of TMessagePart; TMessagePartBodyArray = Array of TMessagePartBody; TMessagePartHeaderArray = Array of TMessagePartHeader; TModifyMessageRequestArray = Array of TModifyMessageRequest; TModifyThreadRequestArray = Array of TModifyThreadRequest; TProfileArray = Array of TProfile; TThreadArray = Array of TThread; TWatchRequestArray = Array of TWatchRequest; TWatchResponseArray = Array of TWatchResponse; //Anonymous types, using auto-generated names THistoryTypelabelsAddedArray = Array of THistoryLabelAdded; THistoryTypelabelsRemovedArray = Array of THistoryLabelRemoved; THistoryTypemessagesArray = Array of TMessage; THistoryTypemessagesAddedArray = Array of THistoryMessageAdded; THistoryTypemessagesDeletedArray = Array of THistoryMessageDeleted; TListDraftsResponseTypedraftsArray = Array of TDraft; TListHistoryResponseTypehistoryArray = Array of THistory; TListLabelsResponseTypelabelsArray = Array of TLabel; TListMessagesResponseTypemessagesArray = Array of TMessage; TListThreadsResponseTypethreadsArray = Array of TThread; TMessagePartTypeheadersArray = Array of TMessagePartHeader; TMessagePartTypepartsArray = Array of TMessagePart; TThreadTypemessagesArray = Array of TMessage; { -------------------------------------------------------------------- TBatchDeleteMessagesRequest --------------------------------------------------------------------} TBatchDeleteMessagesRequest = Class(TGoogleBaseObject) Private Fids : TStringArray; Protected //Property setters Procedure Setids(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 ids : TStringArray Index 0 Read Fids Write Setids; end; TBatchDeleteMessagesRequestClass = Class of TBatchDeleteMessagesRequest; { -------------------------------------------------------------------- TDraft --------------------------------------------------------------------} TDraft = Class(TGoogleBaseObject) Private Fid : String; Fmessage : TMessage; Protected //Property setters Procedure Setid(AIndex : Integer; const AValue : String); virtual; Procedure Setmessage(AIndex : Integer; const AValue : TMessage); virtual; Public Published Property id : String Index 0 Read Fid Write Setid; Property message : TMessage Index 8 Read Fmessage Write Setmessage; end; TDraftClass = Class of TDraft; { -------------------------------------------------------------------- THistory --------------------------------------------------------------------} THistory = Class(TGoogleBaseObject) Private Fid : String; FlabelsAdded : THistoryTypelabelsAddedArray; FlabelsRemoved : THistoryTypelabelsRemovedArray; Fmessages : THistoryTypemessagesArray; FmessagesAdded : THistoryTypemessagesAddedArray; FmessagesDeleted : THistoryTypemessagesDeletedArray; Protected //Property setters Procedure Setid(AIndex : Integer; const AValue : String); virtual; Procedure SetlabelsAdded(AIndex : Integer; const AValue : THistoryTypelabelsAddedArray); virtual; Procedure SetlabelsRemoved(AIndex : Integer; const AValue : THistoryTypelabelsRemovedArray); virtual; Procedure Setmessages(AIndex : Integer; const AValue : THistoryTypemessagesArray); virtual; Procedure SetmessagesAdded(AIndex : Integer; const AValue : THistoryTypemessagesAddedArray); virtual; Procedure SetmessagesDeleted(AIndex : Integer; const AValue : THistoryTypemessagesDeletedArray); virtual; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure SetArrayLength(Const AName : String; ALength : Longint); override; {$ENDIF VER2_6} Public Published Property id : String Index 0 Read Fid Write Setid; Property labelsAdded : THistoryTypelabelsAddedArray Index 8 Read FlabelsAdded Write SetlabelsAdded; Property labelsRemoved : THistoryTypelabelsRemovedArray Index 16 Read FlabelsRemoved Write SetlabelsRemoved; Property messages : THistoryTypemessagesArray Index 24 Read Fmessages Write Setmessages; Property messagesAdded : THistoryTypemessagesAddedArray Index 32 Read FmessagesAdded Write SetmessagesAdded; Property messagesDeleted : THistoryTypemessagesDeletedArray Index 40 Read FmessagesDeleted Write SetmessagesDeleted; end; THistoryClass = Class of THistory; { -------------------------------------------------------------------- THistoryLabelAdded --------------------------------------------------------------------} THistoryLabelAdded = Class(TGoogleBaseObject) Private FlabelIds : TStringArray; Fmessage : TMessage; Protected //Property setters Procedure SetlabelIds(AIndex : Integer; const AValue : TStringArray); virtual; Procedure Setmessage(AIndex : Integer; const AValue : TMessage); virtual; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure SetArrayLength(Const AName : String; ALength : Longint); override; {$ENDIF VER2_6} Public Published Property labelIds : TStringArray Index 0 Read FlabelIds Write SetlabelIds; Property message : TMessage Index 8 Read Fmessage Write Setmessage; end; THistoryLabelAddedClass = Class of THistoryLabelAdded; { -------------------------------------------------------------------- THistoryLabelRemoved --------------------------------------------------------------------} THistoryLabelRemoved = Class(TGoogleBaseObject) Private FlabelIds : TStringArray; Fmessage : TMessage; Protected //Property setters Procedure SetlabelIds(AIndex : Integer; const AValue : TStringArray); virtual; Procedure Setmessage(AIndex : Integer; const AValue : TMessage); virtual; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure SetArrayLength(Const AName : String; ALength : Longint); override; {$ENDIF VER2_6} Public Published Property labelIds : TStringArray Index 0 Read FlabelIds Write SetlabelIds; Property message : TMessage Index 8 Read Fmessage Write Setmessage; end; THistoryLabelRemovedClass = Class of THistoryLabelRemoved; { -------------------------------------------------------------------- THistoryMessageAdded --------------------------------------------------------------------} THistoryMessageAdded = Class(TGoogleBaseObject) Private Fmessage : TMessage; Protected //Property setters Procedure Setmessage(AIndex : Integer; const AValue : TMessage); virtual; Public Published Property message : TMessage Index 0 Read Fmessage Write Setmessage; end; THistoryMessageAddedClass = Class of THistoryMessageAdded; { -------------------------------------------------------------------- THistoryMessageDeleted --------------------------------------------------------------------} THistoryMessageDeleted = Class(TGoogleBaseObject) Private Fmessage : TMessage; Protected //Property setters Procedure Setmessage(AIndex : Integer; const AValue : TMessage); virtual; Public Published Property message : TMessage Index 0 Read Fmessage Write Setmessage; end; THistoryMessageDeletedClass = Class of THistoryMessageDeleted; { -------------------------------------------------------------------- TLabel --------------------------------------------------------------------} TLabel = Class(TGoogleBaseObject) Private Fid : String; FlabelListVisibility : String; FmessageListVisibility : String; FmessagesTotal : integer; FmessagesUnread : integer; Fname : String; FthreadsTotal : integer; FthreadsUnread : integer; F_type : String; Protected Class Function ExportPropertyName(Const AName : String) : string; override; //Property setters Procedure Setid(AIndex : Integer; const AValue : String); virtual; Procedure SetlabelListVisibility(AIndex : Integer; const AValue : String); virtual; Procedure SetmessageListVisibility(AIndex : Integer; const AValue : String); virtual; Procedure SetmessagesTotal(AIndex : Integer; const AValue : integer); virtual; Procedure SetmessagesUnread(AIndex : Integer; const AValue : integer); virtual; Procedure Setname(AIndex : Integer; const AValue : String); virtual; Procedure SetthreadsTotal(AIndex : Integer; const AValue : integer); virtual; Procedure SetthreadsUnread(AIndex : Integer; const AValue : integer); virtual; Procedure Set_type(AIndex : Integer; const AValue : String); virtual; Public Published Property id : String Index 0 Read Fid Write Setid; Property labelListVisibility : String Index 8 Read FlabelListVisibility Write SetlabelListVisibility; Property messageListVisibility : String Index 16 Read FmessageListVisibility Write SetmessageListVisibility; Property messagesTotal : integer Index 24 Read FmessagesTotal Write SetmessagesTotal; Property messagesUnread : integer Index 32 Read FmessagesUnread Write SetmessagesUnread; Property name : String Index 40 Read Fname Write Setname; Property threadsTotal : integer Index 48 Read FthreadsTotal Write SetthreadsTotal; Property threadsUnread : integer Index 56 Read FthreadsUnread Write SetthreadsUnread; Property _type : String Index 64 Read F_type Write Set_type; end; TLabelClass = Class of TLabel; { -------------------------------------------------------------------- TListDraftsResponse --------------------------------------------------------------------} TListDraftsResponse = Class(TGoogleBaseObject) Private Fdrafts : TListDraftsResponseTypedraftsArray; FnextPageToken : String; FresultSizeEstimate : integer; Protected //Property setters Procedure Setdrafts(AIndex : Integer; const AValue : TListDraftsResponseTypedraftsArray); virtual; Procedure SetnextPageToken(AIndex : Integer; const AValue : String); virtual; Procedure SetresultSizeEstimate(AIndex : Integer; const AValue : integer); virtual; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure SetArrayLength(Const AName : String; ALength : Longint); override; {$ENDIF VER2_6} Public Published Property drafts : TListDraftsResponseTypedraftsArray Index 0 Read Fdrafts Write Setdrafts; Property nextPageToken : String Index 8 Read FnextPageToken Write SetnextPageToken; Property resultSizeEstimate : integer Index 16 Read FresultSizeEstimate Write SetresultSizeEstimate; end; TListDraftsResponseClass = Class of TListDraftsResponse; { -------------------------------------------------------------------- TListHistoryResponse --------------------------------------------------------------------} TListHistoryResponse = Class(TGoogleBaseObject) Private Fhistory : TListHistoryResponseTypehistoryArray; FhistoryId : String; FnextPageToken : String; Protected //Property setters Procedure Sethistory(AIndex : Integer; const AValue : TListHistoryResponseTypehistoryArray); virtual; Procedure SethistoryId(AIndex : Integer; const AValue : String); virtual; Procedure SetnextPageToken(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 history : TListHistoryResponseTypehistoryArray Index 0 Read Fhistory Write Sethistory; Property historyId : String Index 8 Read FhistoryId Write SethistoryId; Property nextPageToken : String Index 16 Read FnextPageToken Write SetnextPageToken; end; TListHistoryResponseClass = Class of TListHistoryResponse; { -------------------------------------------------------------------- TListLabelsResponse --------------------------------------------------------------------} TListLabelsResponse = Class(TGoogleBaseObject) Private Flabels : TListLabelsResponseTypelabelsArray; Protected //Property setters Procedure Setlabels(AIndex : Integer; const AValue : TListLabelsResponseTypelabelsArray); virtual; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure SetArrayLength(Const AName : String; ALength : Longint); override; {$ENDIF VER2_6} Public Published Property labels : TListLabelsResponseTypelabelsArray Index 0 Read Flabels Write Setlabels; end; TListLabelsResponseClass = Class of TListLabelsResponse; { -------------------------------------------------------------------- TListMessagesResponse --------------------------------------------------------------------} TListMessagesResponse = Class(TGoogleBaseObject) Private Fmessages : TListMessagesResponseTypemessagesArray; FnextPageToken : String; FresultSizeEstimate : integer; Protected //Property setters Procedure Setmessages(AIndex : Integer; const AValue : TListMessagesResponseTypemessagesArray); virtual; Procedure SetnextPageToken(AIndex : Integer; const AValue : String); virtual; Procedure SetresultSizeEstimate(AIndex : Integer; const AValue : integer); virtual; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure SetArrayLength(Const AName : String; ALength : Longint); override; {$ENDIF VER2_6} Public Published Property messages : TListMessagesResponseTypemessagesArray Index 0 Read Fmessages Write Setmessages; Property nextPageToken : String Index 8 Read FnextPageToken Write SetnextPageToken; Property resultSizeEstimate : integer Index 16 Read FresultSizeEstimate Write SetresultSizeEstimate; end; TListMessagesResponseClass = Class of TListMessagesResponse; { -------------------------------------------------------------------- TListThreadsResponse --------------------------------------------------------------------} TListThreadsResponse = Class(TGoogleBaseObject) Private FnextPageToken : String; FresultSizeEstimate : integer; Fthreads : TListThreadsResponseTypethreadsArray; Protected //Property setters Procedure SetnextPageToken(AIndex : Integer; const AValue : String); virtual; Procedure SetresultSizeEstimate(AIndex : Integer; const AValue : integer); virtual; Procedure Setthreads(AIndex : Integer; const AValue : TListThreadsResponseTypethreadsArray); virtual; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure SetArrayLength(Const AName : String; ALength : Longint); override; {$ENDIF VER2_6} Public Published Property nextPageToken : String Index 0 Read FnextPageToken Write SetnextPageToken; Property resultSizeEstimate : integer Index 8 Read FresultSizeEstimate Write SetresultSizeEstimate; Property threads : TListThreadsResponseTypethreadsArray Index 16 Read Fthreads Write Setthreads; end; TListThreadsResponseClass = Class of TListThreadsResponse; { -------------------------------------------------------------------- TMessage --------------------------------------------------------------------} TMessage = Class(TGoogleBaseObject) Private FhistoryId : String; Fid : String; FinternalDate : String; FlabelIds : TStringArray; Fpayload : TMessagePart; Fraw : String; FsizeEstimate : integer; Fsnippet : String; FthreadId : String; Protected //Property setters Procedure SethistoryId(AIndex : Integer; const AValue : String); virtual; Procedure Setid(AIndex : Integer; const AValue : String); virtual; Procedure SetinternalDate(AIndex : Integer; const AValue : String); virtual; Procedure SetlabelIds(AIndex : Integer; const AValue : TStringArray); virtual; Procedure Setpayload(AIndex : Integer; const AValue : TMessagePart); virtual; Procedure Setraw(AIndex : Integer; const AValue : String); virtual; Procedure SetsizeEstimate(AIndex : Integer; const AValue : integer); virtual; Procedure Setsnippet(AIndex : Integer; const AValue : String); virtual; Procedure SetthreadId(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 historyId : String Index 0 Read FhistoryId Write SethistoryId; Property id : String Index 8 Read Fid Write Setid; Property internalDate : String Index 16 Read FinternalDate Write SetinternalDate; Property labelIds : TStringArray Index 24 Read FlabelIds Write SetlabelIds; Property payload : TMessagePart Index 32 Read Fpayload Write Setpayload; Property raw : String Index 40 Read Fraw Write Setraw; Property sizeEstimate : integer Index 48 Read FsizeEstimate Write SetsizeEstimate; Property snippet : String Index 56 Read Fsnippet Write Setsnippet; Property threadId : String Index 64 Read FthreadId Write SetthreadId; end; TMessageClass = Class of TMessage; { -------------------------------------------------------------------- TMessagePart --------------------------------------------------------------------} TMessagePart = Class(TGoogleBaseObject) Private Fbody : TMessagePartBody; Ffilename : String; Fheaders : TMessagePartTypeheadersArray; FmimeType : String; FpartId : String; Fparts : TMessagePartTypepartsArray; Protected //Property setters Procedure Setbody(AIndex : Integer; const AValue : TMessagePartBody); virtual; Procedure Setfilename(AIndex : Integer; const AValue : String); virtual; Procedure Setheaders(AIndex : Integer; const AValue : TMessagePartTypeheadersArray); virtual; Procedure SetmimeType(AIndex : Integer; const AValue : String); virtual; Procedure SetpartId(AIndex : Integer; const AValue : String); virtual; Procedure Setparts(AIndex : Integer; const AValue : TMessagePartTypepartsArray); virtual; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure SetArrayLength(Const AName : String; ALength : Longint); override; {$ENDIF VER2_6} Public Published Property body : TMessagePartBody Index 0 Read Fbody Write Setbody; Property filename : String Index 8 Read Ffilename Write Setfilename; Property headers : TMessagePartTypeheadersArray Index 16 Read Fheaders Write Setheaders; Property mimeType : String Index 24 Read FmimeType Write SetmimeType; Property partId : String Index 32 Read FpartId Write SetpartId; Property parts : TMessagePartTypepartsArray Index 40 Read Fparts Write Setparts; end; TMessagePartClass = Class of TMessagePart; { -------------------------------------------------------------------- TMessagePartBody --------------------------------------------------------------------} TMessagePartBody = Class(TGoogleBaseObject) Private FattachmentId : String; Fdata : String; Fsize : integer; Protected //Property setters Procedure SetattachmentId(AIndex : Integer; const AValue : String); virtual; Procedure Setdata(AIndex : Integer; const AValue : String); virtual; Procedure Setsize(AIndex : Integer; const AValue : integer); virtual; Public Published Property attachmentId : String Index 0 Read FattachmentId Write SetattachmentId; Property data : String Index 8 Read Fdata Write Setdata; Property size : integer Index 16 Read Fsize Write Setsize; end; TMessagePartBodyClass = Class of TMessagePartBody; { -------------------------------------------------------------------- TMessagePartHeader --------------------------------------------------------------------} TMessagePartHeader = Class(TGoogleBaseObject) Private Fname : String; Fvalue : String; Protected //Property setters Procedure Setname(AIndex : Integer; const AValue : String); virtual; Procedure Setvalue(AIndex : Integer; const AValue : String); virtual; Public Published Property name : String Index 0 Read Fname Write Setname; Property value : String Index 8 Read Fvalue Write Setvalue; end; TMessagePartHeaderClass = Class of TMessagePartHeader; { -------------------------------------------------------------------- TModifyMessageRequest --------------------------------------------------------------------} TModifyMessageRequest = Class(TGoogleBaseObject) Private FaddLabelIds : TStringArray; FremoveLabelIds : TStringArray; Protected //Property setters Procedure SetaddLabelIds(AIndex : Integer; const AValue : TStringArray); virtual; Procedure SetremoveLabelIds(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 addLabelIds : TStringArray Index 0 Read FaddLabelIds Write SetaddLabelIds; Property removeLabelIds : TStringArray Index 8 Read FremoveLabelIds Write SetremoveLabelIds; end; TModifyMessageRequestClass = Class of TModifyMessageRequest; { -------------------------------------------------------------------- TModifyThreadRequest --------------------------------------------------------------------} TModifyThreadRequest = Class(TGoogleBaseObject) Private FaddLabelIds : TStringArray; FremoveLabelIds : TStringArray; Protected //Property setters Procedure SetaddLabelIds(AIndex : Integer; const AValue : TStringArray); virtual; Procedure SetremoveLabelIds(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 addLabelIds : TStringArray Index 0 Read FaddLabelIds Write SetaddLabelIds; Property removeLabelIds : TStringArray Index 8 Read FremoveLabelIds Write SetremoveLabelIds; end; TModifyThreadRequestClass = Class of TModifyThreadRequest; { -------------------------------------------------------------------- TProfile --------------------------------------------------------------------} TProfile = Class(TGoogleBaseObject) Private FemailAddress : String; FhistoryId : String; FmessagesTotal : integer; FthreadsTotal : integer; Protected //Property setters Procedure SetemailAddress(AIndex : Integer; const AValue : String); virtual; Procedure SethistoryId(AIndex : Integer; const AValue : String); virtual; Procedure SetmessagesTotal(AIndex : Integer; const AValue : integer); virtual; Procedure SetthreadsTotal(AIndex : Integer; const AValue : integer); virtual; Public Published Property emailAddress : String Index 0 Read FemailAddress Write SetemailAddress; Property historyId : String Index 8 Read FhistoryId Write SethistoryId; Property messagesTotal : integer Index 16 Read FmessagesTotal Write SetmessagesTotal; Property threadsTotal : integer Index 24 Read FthreadsTotal Write SetthreadsTotal; end; TProfileClass = Class of TProfile; { -------------------------------------------------------------------- TThread --------------------------------------------------------------------} TThread = Class(TGoogleBaseObject) Private FhistoryId : String; Fid : String; Fmessages : TThreadTypemessagesArray; Fsnippet : String; Protected //Property setters Procedure SethistoryId(AIndex : Integer; const AValue : String); virtual; Procedure Setid(AIndex : Integer; const AValue : String); virtual; Procedure Setmessages(AIndex : Integer; const AValue : TThreadTypemessagesArray); virtual; Procedure Setsnippet(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 historyId : String Index 0 Read FhistoryId Write SethistoryId; Property id : String Index 8 Read Fid Write Setid; Property messages : TThreadTypemessagesArray Index 16 Read Fmessages Write Setmessages; Property snippet : String Index 24 Read Fsnippet Write Setsnippet; end; TThreadClass = Class of TThread; { -------------------------------------------------------------------- TWatchRequest --------------------------------------------------------------------} TWatchRequest = Class(TGoogleBaseObject) Private FlabelFilterAction : String; FlabelIds : TStringArray; FtopicName : String; Protected //Property setters Procedure SetlabelFilterAction(AIndex : Integer; const AValue : String); virtual; Procedure SetlabelIds(AIndex : Integer; const AValue : TStringArray); virtual; Procedure SettopicName(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 labelFilterAction : String Index 0 Read FlabelFilterAction Write SetlabelFilterAction; Property labelIds : TStringArray Index 8 Read FlabelIds Write SetlabelIds; Property topicName : String Index 16 Read FtopicName Write SettopicName; end; TWatchRequestClass = Class of TWatchRequest; { -------------------------------------------------------------------- TWatchResponse --------------------------------------------------------------------} TWatchResponse = Class(TGoogleBaseObject) Private Fexpiration : String; FhistoryId : String; Protected //Property setters Procedure Setexpiration(AIndex : Integer; const AValue : String); virtual; Procedure SethistoryId(AIndex : Integer; const AValue : String); virtual; Public Published Property expiration : String Index 0 Read Fexpiration Write Setexpiration; Property historyId : String Index 8 Read FhistoryId Write SethistoryId; end; TWatchResponseClass = Class of TWatchResponse; { -------------------------------------------------------------------- TUsersDraftsResource --------------------------------------------------------------------} //Optional query Options for TUsersDraftsResource, method Get TUsersDraftsGetOptions = Record format : String; end; //Optional query Options for TUsersDraftsResource, method List TUsersDraftsListOptions = Record includeSpamTrash : boolean; maxResults : integer; pageToken : String; end; TUsersDraftsResource = Class(TGoogleResource) Public Class Function ResourceName : String; override; Class Function DefaultAPI : TGoogleAPIClass; override; Function Create(userId: string; aDraft : TDraft) : TDraft;overload; Procedure Delete(id: string; userId: string); Function Get(id: string; userId: string; AQuery : string = '') : TDraft; Function Get(id: string; userId: string; AQuery : TUsersDraftsgetOptions) : TDraft; Function List(userId: string; AQuery : string = '') : TListDraftsResponse; Function List(userId: string; AQuery : TUsersDraftslistOptions) : TListDraftsResponse; Function Send(userId: string; aDraft : TDraft) : TMessage; Function Update(id: string; userId: string; aDraft : TDraft) : TDraft; end; { -------------------------------------------------------------------- TUsersHistoryResource --------------------------------------------------------------------} //Optional query Options for TUsersHistoryResource, method List TUsersHistoryListOptions = Record labelId : String; maxResults : integer; pageToken : String; startHistoryId : String; end; TUsersHistoryResource = Class(TGoogleResource) Public Class Function ResourceName : String; override; Class Function DefaultAPI : TGoogleAPIClass; override; Function List(userId: string; AQuery : string = '') : TListHistoryResponse; Function List(userId: string; AQuery : TUsersHistorylistOptions) : TListHistoryResponse; end; { -------------------------------------------------------------------- TUsersLabelsResource --------------------------------------------------------------------} TUsersLabelsResource = Class(TGoogleResource) Public Class Function ResourceName : String; override; Class Function DefaultAPI : TGoogleAPIClass; override; Function Create(userId: string; aLabel : TLabel) : TLabel;overload; Procedure Delete(id: string; userId: string); Function Get(id: string; userId: string) : TLabel; Function List(userId: string) : TListLabelsResponse; Function Patch(id: string; userId: string; aLabel : TLabel) : TLabel; Function Update(id: string; userId: string; aLabel : TLabel) : TLabel; end; { -------------------------------------------------------------------- TUsersMessagesAttachmentsResource --------------------------------------------------------------------} TUsersMessagesAttachmentsResource = Class(TGoogleResource) Public Class Function ResourceName : String; override; Class Function DefaultAPI : TGoogleAPIClass; override; Function Get(id: string; messageId: string; userId: string) : TMessagePartBody; end; { -------------------------------------------------------------------- TUsersMessagesResource --------------------------------------------------------------------} //Optional query Options for TUsersMessagesResource, method Get TUsersMessagesGetOptions = Record format : String; metadataHeaders : String; end; //Optional query Options for TUsersMessagesResource, method Import TUsersMessagesImportOptions = Record deleted : boolean; internalDateSource : String; neverMarkSpam : boolean; processForCalendar : boolean; end; //Optional query Options for TUsersMessagesResource, method Insert TUsersMessagesInsertOptions = Record deleted : boolean; internalDateSource : String; end; //Optional query Options for TUsersMessagesResource, method List TUsersMessagesListOptions = Record includeSpamTrash : boolean; labelIds : String; maxResults : integer; pageToken : String; q : String; end; TUsersMessagesResource = Class(TGoogleResource) Private FAttachmentsInstance : TUsersMessagesAttachmentsResource; Function GetAttachmentsInstance : TUsersMessagesAttachmentsResource;virtual; Public Class Function ResourceName : String; override; Class Function DefaultAPI : TGoogleAPIClass; override; Procedure BatchDelete(userId: string; aBatchDeleteMessagesRequest : TBatchDeleteMessagesRequest); Procedure Delete(id: string; userId: string); Function Get(id: string; userId: string; AQuery : string = '') : TMessage; Function Get(id: string; userId: string; AQuery : TUsersMessagesgetOptions) : TMessage; Function Import(userId: string; aMessage : TMessage; AQuery : string = '') : TMessage; Function Import(userId: string; aMessage : TMessage; AQuery : TUsersMessagesimportOptions) : TMessage; Function Insert(userId: string; aMessage : TMessage; AQuery : string = '') : TMessage; Function Insert(userId: string; aMessage : TMessage; AQuery : TUsersMessagesinsertOptions) : TMessage; Function List(userId: string; AQuery : string = '') : TListMessagesResponse; Function List(userId: string; AQuery : TUsersMessageslistOptions) : TListMessagesResponse; Function Modify(id: string; userId: string; aModifyMessageRequest : TModifyMessageRequest) : TMessage; Function Send(userId: string; aMessage : TMessage) : TMessage; Function Trash(id: string; userId: string) : TMessage; Function Untrash(id: string; userId: string) : TMessage; Function CreateAttachmentsResource(AOwner : TComponent) : TUsersMessagesAttachmentsResource;virtual;overload; Function CreateAttachmentsResource : TUsersMessagesAttachmentsResource;virtual;overload; Property AttachmentsResource : TUsersMessagesAttachmentsResource Read GetAttachmentsInstance; end; { -------------------------------------------------------------------- TUsersThreadsResource --------------------------------------------------------------------} //Optional query Options for TUsersThreadsResource, method Get TUsersThreadsGetOptions = Record format : String; metadataHeaders : String; end; //Optional query Options for TUsersThreadsResource, method List TUsersThreadsListOptions = Record includeSpamTrash : boolean; labelIds : String; maxResults : integer; pageToken : String; q : String; end; TUsersThreadsResource = Class(TGoogleResource) Public Class Function ResourceName : String; override; Class Function DefaultAPI : TGoogleAPIClass; override; Procedure Delete(id: string; userId: string); Function Get(id: string; userId: string; AQuery : string = '') : TThread; Function Get(id: string; userId: string; AQuery : TUsersThreadsgetOptions) : TThread; Function List(userId: string; AQuery : string = '') : TListThreadsResponse; Function List(userId: string; AQuery : TUsersThreadslistOptions) : TListThreadsResponse; Function Modify(id: string; userId: string; aModifyThreadRequest : TModifyThreadRequest) : TThread; Function Trash(id: string; userId: string) : TThread; Function Untrash(id: string; userId: string) : TThread; end; { -------------------------------------------------------------------- TUsersResource --------------------------------------------------------------------} TUsersResource = Class(TGoogleResource) Private FDraftsInstance : TUsersDraftsResource; FHistoryInstance : TUsersHistoryResource; FLabelsInstance : TUsersLabelsResource; FMessagesAttachmentsInstance : TUsersMessagesAttachmentsResource; FMessagesInstance : TUsersMessagesResource; FThreadsInstance : TUsersThreadsResource; Function GetDraftsInstance : TUsersDraftsResource;virtual; Function GetHistoryInstance : TUsersHistoryResource;virtual; Function GetLabelsInstance : TUsersLabelsResource;virtual; Function GetMessagesAttachmentsInstance : TUsersMessagesAttachmentsResource;virtual; Function GetMessagesInstance : TUsersMessagesResource;virtual; Function GetThreadsInstance : TUsersThreadsResource;virtual; Public Class Function ResourceName : String; override; Class Function DefaultAPI : TGoogleAPIClass; override; Function GetProfile(userId: string) : TProfile; Procedure Stop(userId: string); Function Watch(userId: string; aWatchRequest : TWatchRequest) : TWatchResponse; Function CreateDraftsResource(AOwner : TComponent) : TUsersDraftsResource;virtual;overload; Function CreateDraftsResource : TUsersDraftsResource;virtual;overload; Function CreateHistoryResource(AOwner : TComponent) : TUsersHistoryResource;virtual;overload; Function CreateHistoryResource : TUsersHistoryResource;virtual;overload; Function CreateLabelsResource(AOwner : TComponent) : TUsersLabelsResource;virtual;overload; Function CreateLabelsResource : TUsersLabelsResource;virtual;overload; Function CreateMessagesAttachmentsResource(AOwner : TComponent) : TUsersMessagesAttachmentsResource;virtual;overload; Function CreateMessagesAttachmentsResource : TUsersMessagesAttachmentsResource;virtual;overload; Function CreateMessagesResource(AOwner : TComponent) : TUsersMessagesResource;virtual;overload; Function CreateMessagesResource : TUsersMessagesResource;virtual;overload; Function CreateThreadsResource(AOwner : TComponent) : TUsersThreadsResource;virtual;overload; Function CreateThreadsResource : TUsersThreadsResource;virtual;overload; Property DraftsResource : TUsersDraftsResource Read GetDraftsInstance; Property HistoryResource : TUsersHistoryResource Read GetHistoryInstance; Property LabelsResource : TUsersLabelsResource Read GetLabelsInstance; Property MessagesAttachmentsResource : TUsersMessagesAttachmentsResource Read GetMessagesAttachmentsInstance; Property MessagesResource : TUsersMessagesResource Read GetMessagesInstance; Property ThreadsResource : TUsersThreadsResource Read GetThreadsInstance; end; { -------------------------------------------------------------------- TGmailAPI --------------------------------------------------------------------} TGmailAPI = Class(TGoogleAPI) Private FUsersDraftsInstance : TUsersDraftsResource; FUsersHistoryInstance : TUsersHistoryResource; FUsersLabelsInstance : TUsersLabelsResource; FUsersMessagesAttachmentsInstance : TUsersMessagesAttachmentsResource; FUsersMessagesInstance : TUsersMessagesResource; FUsersThreadsInstance : TUsersThreadsResource; FUsersInstance : TUsersResource; Function GetUsersDraftsInstance : TUsersDraftsResource;virtual; Function GetUsersHistoryInstance : TUsersHistoryResource;virtual; Function GetUsersLabelsInstance : TUsersLabelsResource;virtual; Function GetUsersMessagesAttachmentsInstance : TUsersMessagesAttachmentsResource;virtual; Function GetUsersMessagesInstance : TUsersMessagesResource;virtual; Function GetUsersThreadsInstance : TUsersThreadsResource;virtual; Function GetUsersInstance : TUsersResource;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 CreateUsersDraftsResource(AOwner : TComponent) : TUsersDraftsResource;virtual;overload; Function CreateUsersDraftsResource : TUsersDraftsResource;virtual;overload; Function CreateUsersHistoryResource(AOwner : TComponent) : TUsersHistoryResource;virtual;overload; Function CreateUsersHistoryResource : TUsersHistoryResource;virtual;overload; Function CreateUsersLabelsResource(AOwner : TComponent) : TUsersLabelsResource;virtual;overload; Function CreateUsersLabelsResource : TUsersLabelsResource;virtual;overload; Function CreateUsersMessagesAttachmentsResource(AOwner : TComponent) : TUsersMessagesAttachmentsResource;virtual;overload; Function CreateUsersMessagesAttachmentsResource : TUsersMessagesAttachmentsResource;virtual;overload; Function CreateUsersMessagesResource(AOwner : TComponent) : TUsersMessagesResource;virtual;overload; Function CreateUsersMessagesResource : TUsersMessagesResource;virtual;overload; Function CreateUsersThreadsResource(AOwner : TComponent) : TUsersThreadsResource;virtual;overload; Function CreateUsersThreadsResource : TUsersThreadsResource;virtual;overload; Function CreateUsersResource(AOwner : TComponent) : TUsersResource;virtual;overload; Function CreateUsersResource : TUsersResource;virtual;overload; //Add default on-demand instances for resources Property UsersDraftsResource : TUsersDraftsResource Read GetUsersDraftsInstance; Property UsersHistoryResource : TUsersHistoryResource Read GetUsersHistoryInstance; Property UsersLabelsResource : TUsersLabelsResource Read GetUsersLabelsInstance; Property UsersMessagesAttachmentsResource : TUsersMessagesAttachmentsResource Read GetUsersMessagesAttachmentsInstance; Property UsersMessagesResource : TUsersMessagesResource Read GetUsersMessagesInstance; Property UsersThreadsResource : TUsersThreadsResource Read GetUsersThreadsInstance; Property UsersResource : TUsersResource Read GetUsersInstance; end; implementation { -------------------------------------------------------------------- TBatchDeleteMessagesRequest --------------------------------------------------------------------} Procedure TBatchDeleteMessagesRequest.Setids(AIndex : Integer; const AValue : TStringArray); begin If (Fids=AValue) then exit; Fids:=AValue; MarkPropertyChanged(AIndex); end; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure TBatchDeleteMessagesRequest.SetArrayLength(Const AName : String; ALength : Longint); begin Case AName of 'ids' : SetLength(Fids,ALength); else Inherited SetArrayLength(AName,ALength); end; end; {$ENDIF VER2_6} { -------------------------------------------------------------------- TDraft --------------------------------------------------------------------} Procedure TDraft.Setid(AIndex : Integer; const AValue : String); begin If (Fid=AValue) then exit; Fid:=AValue; MarkPropertyChanged(AIndex); end; Procedure TDraft.Setmessage(AIndex : Integer; const AValue : TMessage); begin If (Fmessage=AValue) then exit; Fmessage:=AValue; MarkPropertyChanged(AIndex); end; { -------------------------------------------------------------------- THistory --------------------------------------------------------------------} Procedure THistory.Setid(AIndex : Integer; const AValue : String); begin If (Fid=AValue) then exit; Fid:=AValue; MarkPropertyChanged(AIndex); end; Procedure THistory.SetlabelsAdded(AIndex : Integer; const AValue : THistoryTypelabelsAddedArray); begin If (FlabelsAdded=AValue) then exit; FlabelsAdded:=AValue; MarkPropertyChanged(AIndex); end; Procedure THistory.SetlabelsRemoved(AIndex : Integer; const AValue : THistoryTypelabelsRemovedArray); begin If (FlabelsRemoved=AValue) then exit; FlabelsRemoved:=AValue; MarkPropertyChanged(AIndex); end; Procedure THistory.Setmessages(AIndex : Integer; const AValue : THistoryTypemessagesArray); begin If (Fmessages=AValue) then exit; Fmessages:=AValue; MarkPropertyChanged(AIndex); end; Procedure THistory.SetmessagesAdded(AIndex : Integer; const AValue : THistoryTypemessagesAddedArray); begin If (FmessagesAdded=AValue) then exit; FmessagesAdded:=AValue; MarkPropertyChanged(AIndex); end; Procedure THistory.SetmessagesDeleted(AIndex : Integer; const AValue : THistoryTypemessagesDeletedArray); begin If (FmessagesDeleted=AValue) then exit; FmessagesDeleted:=AValue; MarkPropertyChanged(AIndex); end; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure THistory.SetArrayLength(Const AName : String; ALength : Longint); begin Case AName of 'labelsadded' : SetLength(FlabelsAdded,ALength); 'labelsremoved' : SetLength(FlabelsRemoved,ALength); 'messages' : SetLength(Fmessages,ALength); 'messagesadded' : SetLength(FmessagesAdded,ALength); 'messagesdeleted' : SetLength(FmessagesDeleted,ALength); else Inherited SetArrayLength(AName,ALength); end; end; {$ENDIF VER2_6} { -------------------------------------------------------------------- THistoryLabelAdded --------------------------------------------------------------------} Procedure THistoryLabelAdded.SetlabelIds(AIndex : Integer; const AValue : TStringArray); begin If (FlabelIds=AValue) then exit; FlabelIds:=AValue; MarkPropertyChanged(AIndex); end; Procedure THistoryLabelAdded.Setmessage(AIndex : Integer; const AValue : TMessage); begin If (Fmessage=AValue) then exit; Fmessage:=AValue; MarkPropertyChanged(AIndex); end; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure THistoryLabelAdded.SetArrayLength(Const AName : String; ALength : Longint); begin Case AName of 'labelids' : SetLength(FlabelIds,ALength); else Inherited SetArrayLength(AName,ALength); end; end; {$ENDIF VER2_6} { -------------------------------------------------------------------- THistoryLabelRemoved --------------------------------------------------------------------} Procedure THistoryLabelRemoved.SetlabelIds(AIndex : Integer; const AValue : TStringArray); begin If (FlabelIds=AValue) then exit; FlabelIds:=AValue; MarkPropertyChanged(AIndex); end; Procedure THistoryLabelRemoved.Setmessage(AIndex : Integer; const AValue : TMessage); begin If (Fmessage=AValue) then exit; Fmessage:=AValue; MarkPropertyChanged(AIndex); end; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure THistoryLabelRemoved.SetArrayLength(Const AName : String; ALength : Longint); begin Case AName of 'labelids' : SetLength(FlabelIds,ALength); else Inherited SetArrayLength(AName,ALength); end; end; {$ENDIF VER2_6} { -------------------------------------------------------------------- THistoryMessageAdded --------------------------------------------------------------------} Procedure THistoryMessageAdded.Setmessage(AIndex : Integer; const AValue : TMessage); begin If (Fmessage=AValue) then exit; Fmessage:=AValue; MarkPropertyChanged(AIndex); end; { -------------------------------------------------------------------- THistoryMessageDeleted --------------------------------------------------------------------} Procedure THistoryMessageDeleted.Setmessage(AIndex : Integer; const AValue : TMessage); begin If (Fmessage=AValue) then exit; Fmessage:=AValue; MarkPropertyChanged(AIndex); end; { -------------------------------------------------------------------- TLabel --------------------------------------------------------------------} Procedure TLabel.Setid(AIndex : Integer; const AValue : String); begin If (Fid=AValue) then exit; Fid:=AValue; MarkPropertyChanged(AIndex); end; Procedure TLabel.SetlabelListVisibility(AIndex : Integer; const AValue : String); begin If (FlabelListVisibility=AValue) then exit; FlabelListVisibility:=AValue; MarkPropertyChanged(AIndex); end; Procedure TLabel.SetmessageListVisibility(AIndex : Integer; const AValue : String); begin If (FmessageListVisibility=AValue) then exit; FmessageListVisibility:=AValue; MarkPropertyChanged(AIndex); end; Procedure TLabel.SetmessagesTotal(AIndex : Integer; const AValue : integer); begin If (FmessagesTotal=AValue) then exit; FmessagesTotal:=AValue; MarkPropertyChanged(AIndex); end; Procedure TLabel.SetmessagesUnread(AIndex : Integer; const AValue : integer); begin If (FmessagesUnread=AValue) then exit; FmessagesUnread:=AValue; MarkPropertyChanged(AIndex); end; Procedure TLabel.Setname(AIndex : Integer; const AValue : String); begin If (Fname=AValue) then exit; Fname:=AValue; MarkPropertyChanged(AIndex); end; Procedure TLabel.SetthreadsTotal(AIndex : Integer; const AValue : integer); begin If (FthreadsTotal=AValue) then exit; FthreadsTotal:=AValue; MarkPropertyChanged(AIndex); end; Procedure TLabel.SetthreadsUnread(AIndex : Integer; const AValue : integer); begin If (FthreadsUnread=AValue) then exit; FthreadsUnread:=AValue; MarkPropertyChanged(AIndex); end; Procedure TLabel.Set_type(AIndex : Integer; const AValue : String); begin If (F_type=AValue) then exit; F_type:=AValue; MarkPropertyChanged(AIndex); end; Class Function TLabel.ExportPropertyName(Const AName : String) :String; begin Case AName of '_type' : Result:='type'; else Result:=Inherited ExportPropertyName(AName); end; end; { -------------------------------------------------------------------- TListDraftsResponse --------------------------------------------------------------------} Procedure TListDraftsResponse.Setdrafts(AIndex : Integer; const AValue : TListDraftsResponseTypedraftsArray); begin If (Fdrafts=AValue) then exit; Fdrafts:=AValue; MarkPropertyChanged(AIndex); end; Procedure TListDraftsResponse.SetnextPageToken(AIndex : Integer; const AValue : String); begin If (FnextPageToken=AValue) then exit; FnextPageToken:=AValue; MarkPropertyChanged(AIndex); end; Procedure TListDraftsResponse.SetresultSizeEstimate(AIndex : Integer; const AValue : integer); begin If (FresultSizeEstimate=AValue) then exit; FresultSizeEstimate:=AValue; MarkPropertyChanged(AIndex); end; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure TListDraftsResponse.SetArrayLength(Const AName : String; ALength : Longint); begin Case AName of 'drafts' : SetLength(Fdrafts,ALength); else Inherited SetArrayLength(AName,ALength); end; end; {$ENDIF VER2_6} { -------------------------------------------------------------------- TListHistoryResponse --------------------------------------------------------------------} Procedure TListHistoryResponse.Sethistory(AIndex : Integer; const AValue : TListHistoryResponseTypehistoryArray); begin If (Fhistory=AValue) then exit; Fhistory:=AValue; MarkPropertyChanged(AIndex); end; Procedure TListHistoryResponse.SethistoryId(AIndex : Integer; const AValue : String); begin If (FhistoryId=AValue) then exit; FhistoryId:=AValue; MarkPropertyChanged(AIndex); end; Procedure TListHistoryResponse.SetnextPageToken(AIndex : Integer; const AValue : String); begin If (FnextPageToken=AValue) then exit; FnextPageToken:=AValue; MarkPropertyChanged(AIndex); end; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure TListHistoryResponse.SetArrayLength(Const AName : String; ALength : Longint); begin Case AName of 'history' : SetLength(Fhistory,ALength); else Inherited SetArrayLength(AName,ALength); end; end; {$ENDIF VER2_6} { -------------------------------------------------------------------- TListLabelsResponse --------------------------------------------------------------------} Procedure TListLabelsResponse.Setlabels(AIndex : Integer; const AValue : TListLabelsResponseTypelabelsArray); begin If (Flabels=AValue) then exit; Flabels:=AValue; MarkPropertyChanged(AIndex); end; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure TListLabelsResponse.SetArrayLength(Const AName : String; ALength : Longint); begin Case AName of 'labels' : SetLength(Flabels,ALength); else Inherited SetArrayLength(AName,ALength); end; end; {$ENDIF VER2_6} { -------------------------------------------------------------------- TListMessagesResponse --------------------------------------------------------------------} Procedure TListMessagesResponse.Setmessages(AIndex : Integer; const AValue : TListMessagesResponseTypemessagesArray); begin If (Fmessages=AValue) then exit; Fmessages:=AValue; MarkPropertyChanged(AIndex); end; Procedure TListMessagesResponse.SetnextPageToken(AIndex : Integer; const AValue : String); begin If (FnextPageToken=AValue) then exit; FnextPageToken:=AValue; MarkPropertyChanged(AIndex); end; Procedure TListMessagesResponse.SetresultSizeEstimate(AIndex : Integer; const AValue : integer); begin If (FresultSizeEstimate=AValue) then exit; FresultSizeEstimate:=AValue; MarkPropertyChanged(AIndex); end; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure TListMessagesResponse.SetArrayLength(Const AName : String; ALength : Longint); begin Case AName of 'messages' : SetLength(Fmessages,ALength); else Inherited SetArrayLength(AName,ALength); end; end; {$ENDIF VER2_6} { -------------------------------------------------------------------- TListThreadsResponse --------------------------------------------------------------------} Procedure TListThreadsResponse.SetnextPageToken(AIndex : Integer; const AValue : String); begin If (FnextPageToken=AValue) then exit; FnextPageToken:=AValue; MarkPropertyChanged(AIndex); end; Procedure TListThreadsResponse.SetresultSizeEstimate(AIndex : Integer; const AValue : integer); begin If (FresultSizeEstimate=AValue) then exit; FresultSizeEstimate:=AValue; MarkPropertyChanged(AIndex); end; Procedure TListThreadsResponse.Setthreads(AIndex : Integer; const AValue : TListThreadsResponseTypethreadsArray); begin If (Fthreads=AValue) then exit; Fthreads:=AValue; MarkPropertyChanged(AIndex); end; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure TListThreadsResponse.SetArrayLength(Const AName : String; ALength : Longint); begin Case AName of 'threads' : SetLength(Fthreads,ALength); else Inherited SetArrayLength(AName,ALength); end; end; {$ENDIF VER2_6} { -------------------------------------------------------------------- TMessage --------------------------------------------------------------------} Procedure TMessage.SethistoryId(AIndex : Integer; const AValue : String); begin If (FhistoryId=AValue) then exit; FhistoryId:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessage.Setid(AIndex : Integer; const AValue : String); begin If (Fid=AValue) then exit; Fid:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessage.SetinternalDate(AIndex : Integer; const AValue : String); begin If (FinternalDate=AValue) then exit; FinternalDate:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessage.SetlabelIds(AIndex : Integer; const AValue : TStringArray); begin If (FlabelIds=AValue) then exit; FlabelIds:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessage.Setpayload(AIndex : Integer; const AValue : TMessagePart); begin If (Fpayload=AValue) then exit; Fpayload:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessage.Setraw(AIndex : Integer; const AValue : String); begin If (Fraw=AValue) then exit; Fraw:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessage.SetsizeEstimate(AIndex : Integer; const AValue : integer); begin If (FsizeEstimate=AValue) then exit; FsizeEstimate:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessage.Setsnippet(AIndex : Integer; const AValue : String); begin If (Fsnippet=AValue) then exit; Fsnippet:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessage.SetthreadId(AIndex : Integer; const AValue : String); begin If (FthreadId=AValue) then exit; FthreadId:=AValue; MarkPropertyChanged(AIndex); end; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure TMessage.SetArrayLength(Const AName : String; ALength : Longint); begin Case AName of 'labelids' : SetLength(FlabelIds,ALength); else Inherited SetArrayLength(AName,ALength); end; end; {$ENDIF VER2_6} { -------------------------------------------------------------------- TMessagePart --------------------------------------------------------------------} Procedure TMessagePart.Setbody(AIndex : Integer; const AValue : TMessagePartBody); begin If (Fbody=AValue) then exit; Fbody:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessagePart.Setfilename(AIndex : Integer; const AValue : String); begin If (Ffilename=AValue) then exit; Ffilename:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessagePart.Setheaders(AIndex : Integer; const AValue : TMessagePartTypeheadersArray); begin If (Fheaders=AValue) then exit; Fheaders:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessagePart.SetmimeType(AIndex : Integer; const AValue : String); begin If (FmimeType=AValue) then exit; FmimeType:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessagePart.SetpartId(AIndex : Integer; const AValue : String); begin If (FpartId=AValue) then exit; FpartId:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessagePart.Setparts(AIndex : Integer; const AValue : TMessagePartTypepartsArray); begin If (Fparts=AValue) then exit; Fparts:=AValue; MarkPropertyChanged(AIndex); end; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure TMessagePart.SetArrayLength(Const AName : String; ALength : Longint); begin Case AName of 'headers' : SetLength(Fheaders,ALength); 'parts' : SetLength(Fparts,ALength); else Inherited SetArrayLength(AName,ALength); end; end; {$ENDIF VER2_6} { -------------------------------------------------------------------- TMessagePartBody --------------------------------------------------------------------} Procedure TMessagePartBody.SetattachmentId(AIndex : Integer; const AValue : String); begin If (FattachmentId=AValue) then exit; FattachmentId:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessagePartBody.Setdata(AIndex : Integer; const AValue : String); begin If (Fdata=AValue) then exit; Fdata:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessagePartBody.Setsize(AIndex : Integer; const AValue : integer); begin If (Fsize=AValue) then exit; Fsize:=AValue; MarkPropertyChanged(AIndex); end; { -------------------------------------------------------------------- TMessagePartHeader --------------------------------------------------------------------} Procedure TMessagePartHeader.Setname(AIndex : Integer; const AValue : String); begin If (Fname=AValue) then exit; Fname:=AValue; MarkPropertyChanged(AIndex); end; Procedure TMessagePartHeader.Setvalue(AIndex : Integer; const AValue : String); begin If (Fvalue=AValue) then exit; Fvalue:=AValue; MarkPropertyChanged(AIndex); end; { -------------------------------------------------------------------- TModifyMessageRequest --------------------------------------------------------------------} Procedure TModifyMessageRequest.SetaddLabelIds(AIndex : Integer; const AValue : TStringArray); begin If (FaddLabelIds=AValue) then exit; FaddLabelIds:=AValue; MarkPropertyChanged(AIndex); end; Procedure TModifyMessageRequest.SetremoveLabelIds(AIndex : Integer; const AValue : TStringArray); begin If (FremoveLabelIds=AValue) then exit; FremoveLabelIds:=AValue; MarkPropertyChanged(AIndex); end; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure TModifyMessageRequest.SetArrayLength(Const AName : String; ALength : Longint); begin Case AName of 'addlabelids' : SetLength(FaddLabelIds,ALength); 'removelabelids' : SetLength(FremoveLabelIds,ALength); else Inherited SetArrayLength(AName,ALength); end; end; {$ENDIF VER2_6} { -------------------------------------------------------------------- TModifyThreadRequest --------------------------------------------------------------------} Procedure TModifyThreadRequest.SetaddLabelIds(AIndex : Integer; const AValue : TStringArray); begin If (FaddLabelIds=AValue) then exit; FaddLabelIds:=AValue; MarkPropertyChanged(AIndex); end; Procedure TModifyThreadRequest.SetremoveLabelIds(AIndex : Integer; const AValue : TStringArray); begin If (FremoveLabelIds=AValue) then exit; FremoveLabelIds:=AValue; MarkPropertyChanged(AIndex); end; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure TModifyThreadRequest.SetArrayLength(Const AName : String; ALength : Longint); begin Case AName of 'addlabelids' : SetLength(FaddLabelIds,ALength); 'removelabelids' : SetLength(FremoveLabelIds,ALength); else Inherited SetArrayLength(AName,ALength); end; end; {$ENDIF VER2_6} { -------------------------------------------------------------------- TProfile --------------------------------------------------------------------} Procedure TProfile.SetemailAddress(AIndex : Integer; const AValue : String); begin If (FemailAddress=AValue) then exit; FemailAddress:=AValue; MarkPropertyChanged(AIndex); end; Procedure TProfile.SethistoryId(AIndex : Integer; const AValue : String); begin If (FhistoryId=AValue) then exit; FhistoryId:=AValue; MarkPropertyChanged(AIndex); end; Procedure TProfile.SetmessagesTotal(AIndex : Integer; const AValue : integer); begin If (FmessagesTotal=AValue) then exit; FmessagesTotal:=AValue; MarkPropertyChanged(AIndex); end; Procedure TProfile.SetthreadsTotal(AIndex : Integer; const AValue : integer); begin If (FthreadsTotal=AValue) then exit; FthreadsTotal:=AValue; MarkPropertyChanged(AIndex); end; { -------------------------------------------------------------------- TThread --------------------------------------------------------------------} Procedure TThread.SethistoryId(AIndex : Integer; const AValue : String); begin If (FhistoryId=AValue) then exit; FhistoryId:=AValue; MarkPropertyChanged(AIndex); end; Procedure TThread.Setid(AIndex : Integer; const AValue : String); begin If (Fid=AValue) then exit; Fid:=AValue; MarkPropertyChanged(AIndex); end; Procedure TThread.Setmessages(AIndex : Integer; const AValue : TThreadTypemessagesArray); begin If (Fmessages=AValue) then exit; Fmessages:=AValue; MarkPropertyChanged(AIndex); end; Procedure TThread.Setsnippet(AIndex : Integer; const AValue : String); begin If (Fsnippet=AValue) then exit; Fsnippet:=AValue; MarkPropertyChanged(AIndex); end; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure TThread.SetArrayLength(Const AName : String; ALength : Longint); begin Case AName of 'messages' : SetLength(Fmessages,ALength); else Inherited SetArrayLength(AName,ALength); end; end; {$ENDIF VER2_6} { -------------------------------------------------------------------- TWatchRequest --------------------------------------------------------------------} Procedure TWatchRequest.SetlabelFilterAction(AIndex : Integer; const AValue : String); begin If (FlabelFilterAction=AValue) then exit; FlabelFilterAction:=AValue; MarkPropertyChanged(AIndex); end; Procedure TWatchRequest.SetlabelIds(AIndex : Integer; const AValue : TStringArray); begin If (FlabelIds=AValue) then exit; FlabelIds:=AValue; MarkPropertyChanged(AIndex); end; Procedure TWatchRequest.SettopicName(AIndex : Integer; const AValue : String); begin If (FtopicName=AValue) then exit; FtopicName:=AValue; MarkPropertyChanged(AIndex); end; //2.6.4. bug workaround {$IFDEF VER2_6} Procedure TWatchRequest.SetArrayLength(Const AName : String; ALength : Longint); begin Case AName of 'labelids' : SetLength(FlabelIds,ALength); else Inherited SetArrayLength(AName,ALength); end; end; {$ENDIF VER2_6} { -------------------------------------------------------------------- TWatchResponse --------------------------------------------------------------------} Procedure TWatchResponse.Setexpiration(AIndex : Integer; const AValue : String); begin If (Fexpiration=AValue) then exit; Fexpiration:=AValue; MarkPropertyChanged(AIndex); end; Procedure TWatchResponse.SethistoryId(AIndex : Integer; const AValue : String); begin If (FhistoryId=AValue) then exit; FhistoryId:=AValue; MarkPropertyChanged(AIndex); end; { -------------------------------------------------------------------- TUsersDraftsResource --------------------------------------------------------------------} Class Function TUsersDraftsResource.ResourceName : String; begin Result:='drafts'; end; Class Function TUsersDraftsResource.DefaultAPI : TGoogleAPIClass; begin Result:=TgmailAPI; end; Function TUsersDraftsResource.Create(userId: string; aDraft : TDraft) : TDraft; Const _HTTPMethod = 'POST'; _Path = '{userId}/drafts'; _Methodid = 'gmail.users.drafts.create'; Var _P : String; begin _P:=SubstitutePath(_Path,['userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',aDraft,TDraft) as TDraft; end; Procedure TUsersDraftsResource.Delete(id: string; userId: string); Const _HTTPMethod = 'DELETE'; _Path = '{userId}/drafts/{id}'; _Methodid = 'gmail.users.drafts.delete'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); ServiceCall(_HTTPMethod,_P,'',Nil,Nil); end; Function TUsersDraftsResource.Get(id: string; userId: string; AQuery : string = '') : TDraft; Const _HTTPMethod = 'GET'; _Path = '{userId}/drafts/{id}'; _Methodid = 'gmail.users.drafts.get'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TDraft) as TDraft; end; Function TUsersDraftsResource.Get(id: string; userId: string; AQuery : TUsersDraftsgetOptions) : TDraft; Var _Q : String; begin _Q:=''; AddToQuery(_Q,'format',AQuery.format); Result:=Get(id,userId,_Q); end; Function TUsersDraftsResource.List(userId: string; AQuery : string = '') : TListDraftsResponse; Const _HTTPMethod = 'GET'; _Path = '{userId}/drafts'; _Methodid = 'gmail.users.drafts.list'; Var _P : String; begin _P:=SubstitutePath(_Path,['userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TListDraftsResponse) as TListDraftsResponse; end; Function TUsersDraftsResource.List(userId: string; AQuery : TUsersDraftslistOptions) : TListDraftsResponse; Var _Q : String; begin _Q:=''; AddToQuery(_Q,'includeSpamTrash',AQuery.includeSpamTrash); AddToQuery(_Q,'maxResults',AQuery.maxResults); AddToQuery(_Q,'pageToken',AQuery.pageToken); Result:=List(userId,_Q); end; Function TUsersDraftsResource.Send(userId: string; aDraft : TDraft) : TMessage; Const _HTTPMethod = 'POST'; _Path = '{userId}/drafts/send'; _Methodid = 'gmail.users.drafts.send'; Var _P : String; begin _P:=SubstitutePath(_Path,['userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',aDraft,TMessage) as TMessage; end; Function TUsersDraftsResource.Update(id: string; userId: string; aDraft : TDraft) : TDraft; Const _HTTPMethod = 'PUT'; _Path = '{userId}/drafts/{id}'; _Methodid = 'gmail.users.drafts.update'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',aDraft,TDraft) as TDraft; end; { -------------------------------------------------------------------- TUsersHistoryResource --------------------------------------------------------------------} Class Function TUsersHistoryResource.ResourceName : String; begin Result:='history'; end; Class Function TUsersHistoryResource.DefaultAPI : TGoogleAPIClass; begin Result:=TgmailAPI; end; Function TUsersHistoryResource.List(userId: string; AQuery : string = '') : TListHistoryResponse; Const _HTTPMethod = 'GET'; _Path = '{userId}/history'; _Methodid = 'gmail.users.history.list'; Var _P : String; begin _P:=SubstitutePath(_Path,['userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TListHistoryResponse) as TListHistoryResponse; end; Function TUsersHistoryResource.List(userId: string; AQuery : TUsersHistorylistOptions) : TListHistoryResponse; Var _Q : String; begin _Q:=''; AddToQuery(_Q,'labelId',AQuery.labelId); AddToQuery(_Q,'maxResults',AQuery.maxResults); AddToQuery(_Q,'pageToken',AQuery.pageToken); AddToQuery(_Q,'startHistoryId',AQuery.startHistoryId); Result:=List(userId,_Q); end; { -------------------------------------------------------------------- TUsersLabelsResource --------------------------------------------------------------------} Class Function TUsersLabelsResource.ResourceName : String; begin Result:='labels'; end; Class Function TUsersLabelsResource.DefaultAPI : TGoogleAPIClass; begin Result:=TgmailAPI; end; Function TUsersLabelsResource.Create(userId: string; aLabel : TLabel) : TLabel; Const _HTTPMethod = 'POST'; _Path = '{userId}/labels'; _Methodid = 'gmail.users.labels.create'; Var _P : String; begin _P:=SubstitutePath(_Path,['userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',aLabel,TLabel) as TLabel; end; Procedure TUsersLabelsResource.Delete(id: string; userId: string); Const _HTTPMethod = 'DELETE'; _Path = '{userId}/labels/{id}'; _Methodid = 'gmail.users.labels.delete'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); ServiceCall(_HTTPMethod,_P,'',Nil,Nil); end; Function TUsersLabelsResource.Get(id: string; userId: string) : TLabel; Const _HTTPMethod = 'GET'; _Path = '{userId}/labels/{id}'; _Methodid = 'gmail.users.labels.get'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TLabel) as TLabel; end; Function TUsersLabelsResource.List(userId: string) : TListLabelsResponse; Const _HTTPMethod = 'GET'; _Path = '{userId}/labels'; _Methodid = 'gmail.users.labels.list'; Var _P : String; begin _P:=SubstitutePath(_Path,['userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TListLabelsResponse) as TListLabelsResponse; end; Function TUsersLabelsResource.Patch(id: string; userId: string; aLabel : TLabel) : TLabel; Const _HTTPMethod = 'PATCH'; _Path = '{userId}/labels/{id}'; _Methodid = 'gmail.users.labels.patch'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',aLabel,TLabel) as TLabel; end; Function TUsersLabelsResource.Update(id: string; userId: string; aLabel : TLabel) : TLabel; Const _HTTPMethod = 'PUT'; _Path = '{userId}/labels/{id}'; _Methodid = 'gmail.users.labels.update'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',aLabel,TLabel) as TLabel; end; { -------------------------------------------------------------------- TUsersMessagesAttachmentsResource --------------------------------------------------------------------} Class Function TUsersMessagesAttachmentsResource.ResourceName : String; begin Result:='attachments'; end; Class Function TUsersMessagesAttachmentsResource.DefaultAPI : TGoogleAPIClass; begin Result:=TgmailAPI; end; Function TUsersMessagesAttachmentsResource.Get(id: string; messageId: string; userId: string) : TMessagePartBody; Const _HTTPMethod = 'GET'; _Path = '{userId}/messages/{messageId}/attachments/{id}'; _Methodid = 'gmail.users.messages.attachments.get'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'messageId',messageId,'userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TMessagePartBody) as TMessagePartBody; end; { -------------------------------------------------------------------- TUsersMessagesResource --------------------------------------------------------------------} Class Function TUsersMessagesResource.ResourceName : String; begin Result:='messages'; end; Class Function TUsersMessagesResource.DefaultAPI : TGoogleAPIClass; begin Result:=TgmailAPI; end; Procedure TUsersMessagesResource.BatchDelete(userId: string; aBatchDeleteMessagesRequest : TBatchDeleteMessagesRequest); Const _HTTPMethod = 'POST'; _Path = '{userId}/messages/batchDelete'; _Methodid = 'gmail.users.messages.batchDelete'; Var _P : String; begin _P:=SubstitutePath(_Path,['userId',userId]); ServiceCall(_HTTPMethod,_P,'',aBatchDeleteMessagesRequest,Nil); end; Procedure TUsersMessagesResource.Delete(id: string; userId: string); Const _HTTPMethod = 'DELETE'; _Path = '{userId}/messages/{id}'; _Methodid = 'gmail.users.messages.delete'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); ServiceCall(_HTTPMethod,_P,'',Nil,Nil); end; Function TUsersMessagesResource.Get(id: string; userId: string; AQuery : string = '') : TMessage; Const _HTTPMethod = 'GET'; _Path = '{userId}/messages/{id}'; _Methodid = 'gmail.users.messages.get'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TMessage) as TMessage; end; Function TUsersMessagesResource.Get(id: string; userId: string; AQuery : TUsersMessagesgetOptions) : TMessage; Var _Q : String; begin _Q:=''; AddToQuery(_Q,'format',AQuery.format); AddToQuery(_Q,'metadataHeaders',AQuery.metadataHeaders); Result:=Get(id,userId,_Q); end; Function TUsersMessagesResource.Import(userId: string; aMessage : TMessage; AQuery : string = '') : TMessage; Const _HTTPMethod = 'POST'; _Path = '{userId}/messages/import'; _Methodid = 'gmail.users.messages.import'; Var _P : String; begin _P:=SubstitutePath(_Path,['userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,AQuery,aMessage,TMessage) as TMessage; end; Function TUsersMessagesResource.Import(userId: string; aMessage : TMessage; AQuery : TUsersMessagesimportOptions) : TMessage; Var _Q : String; begin _Q:=''; AddToQuery(_Q,'deleted',AQuery.deleted); AddToQuery(_Q,'internalDateSource',AQuery.internalDateSource); AddToQuery(_Q,'neverMarkSpam',AQuery.neverMarkSpam); AddToQuery(_Q,'processForCalendar',AQuery.processForCalendar); Result:=Import(userId,aMessage,_Q); end; Function TUsersMessagesResource.Insert(userId: string; aMessage : TMessage; AQuery : string = '') : TMessage; Const _HTTPMethod = 'POST'; _Path = '{userId}/messages'; _Methodid = 'gmail.users.messages.insert'; Var _P : String; begin _P:=SubstitutePath(_Path,['userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,AQuery,aMessage,TMessage) as TMessage; end; Function TUsersMessagesResource.Insert(userId: string; aMessage : TMessage; AQuery : TUsersMessagesinsertOptions) : TMessage; Var _Q : String; begin _Q:=''; AddToQuery(_Q,'deleted',AQuery.deleted); AddToQuery(_Q,'internalDateSource',AQuery.internalDateSource); Result:=Insert(userId,aMessage,_Q); end; Function TUsersMessagesResource.List(userId: string; AQuery : string = '') : TListMessagesResponse; Const _HTTPMethod = 'GET'; _Path = '{userId}/messages'; _Methodid = 'gmail.users.messages.list'; Var _P : String; begin _P:=SubstitutePath(_Path,['userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TListMessagesResponse) as TListMessagesResponse; end; Function TUsersMessagesResource.List(userId: string; AQuery : TUsersMessageslistOptions) : TListMessagesResponse; Var _Q : String; begin _Q:=''; AddToQuery(_Q,'includeSpamTrash',AQuery.includeSpamTrash); AddToQuery(_Q,'labelIds',AQuery.labelIds); AddToQuery(_Q,'maxResults',AQuery.maxResults); AddToQuery(_Q,'pageToken',AQuery.pageToken); AddToQuery(_Q,'q',AQuery.q); Result:=List(userId,_Q); end; Function TUsersMessagesResource.Modify(id: string; userId: string; aModifyMessageRequest : TModifyMessageRequest) : TMessage; Const _HTTPMethod = 'POST'; _Path = '{userId}/messages/{id}/modify'; _Methodid = 'gmail.users.messages.modify'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',aModifyMessageRequest,TMessage) as TMessage; end; Function TUsersMessagesResource.Send(userId: string; aMessage : TMessage) : TMessage; Const _HTTPMethod = 'POST'; _Path = '{userId}/messages/send'; _Methodid = 'gmail.users.messages.send'; Var _P : String; begin _P:=SubstitutePath(_Path,['userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',aMessage,TMessage) as TMessage; end; Function TUsersMessagesResource.Trash(id: string; userId: string) : TMessage; Const _HTTPMethod = 'POST'; _Path = '{userId}/messages/{id}/trash'; _Methodid = 'gmail.users.messages.trash'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TMessage) as TMessage; end; Function TUsersMessagesResource.Untrash(id: string; userId: string) : TMessage; Const _HTTPMethod = 'POST'; _Path = '{userId}/messages/{id}/untrash'; _Methodid = 'gmail.users.messages.untrash'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TMessage) as TMessage; end; Function TUsersMessagesResource.GetAttachmentsInstance : TUsersMessagesAttachmentsResource; begin if (FAttachmentsInstance=Nil) then FAttachmentsInstance:=CreateAttachmentsResource; Result:=FAttachmentsInstance; end; Function TUsersMessagesResource.CreateAttachmentsResource : TUsersMessagesAttachmentsResource; begin Result:=CreateAttachmentsResource(Self); end; Function TUsersMessagesResource.CreateAttachmentsResource(AOwner : TComponent) : TUsersMessagesAttachmentsResource; begin Result:=TUsersMessagesAttachmentsResource.Create(AOwner); Result.API:=Self.API; end; { -------------------------------------------------------------------- TUsersThreadsResource --------------------------------------------------------------------} Class Function TUsersThreadsResource.ResourceName : String; begin Result:='threads'; end; Class Function TUsersThreadsResource.DefaultAPI : TGoogleAPIClass; begin Result:=TgmailAPI; end; Procedure TUsersThreadsResource.Delete(id: string; userId: string); Const _HTTPMethod = 'DELETE'; _Path = '{userId}/threads/{id}'; _Methodid = 'gmail.users.threads.delete'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); ServiceCall(_HTTPMethod,_P,'',Nil,Nil); end; Function TUsersThreadsResource.Get(id: string; userId: string; AQuery : string = '') : TThread; Const _HTTPMethod = 'GET'; _Path = '{userId}/threads/{id}'; _Methodid = 'gmail.users.threads.get'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TThread) as TThread; end; Function TUsersThreadsResource.Get(id: string; userId: string; AQuery : TUsersThreadsgetOptions) : TThread; Var _Q : String; begin _Q:=''; AddToQuery(_Q,'format',AQuery.format); AddToQuery(_Q,'metadataHeaders',AQuery.metadataHeaders); Result:=Get(id,userId,_Q); end; Function TUsersThreadsResource.List(userId: string; AQuery : string = '') : TListThreadsResponse; Const _HTTPMethod = 'GET'; _Path = '{userId}/threads'; _Methodid = 'gmail.users.threads.list'; Var _P : String; begin _P:=SubstitutePath(_Path,['userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TListThreadsResponse) as TListThreadsResponse; end; Function TUsersThreadsResource.List(userId: string; AQuery : TUsersThreadslistOptions) : TListThreadsResponse; Var _Q : String; begin _Q:=''; AddToQuery(_Q,'includeSpamTrash',AQuery.includeSpamTrash); AddToQuery(_Q,'labelIds',AQuery.labelIds); AddToQuery(_Q,'maxResults',AQuery.maxResults); AddToQuery(_Q,'pageToken',AQuery.pageToken); AddToQuery(_Q,'q',AQuery.q); Result:=List(userId,_Q); end; Function TUsersThreadsResource.Modify(id: string; userId: string; aModifyThreadRequest : TModifyThreadRequest) : TThread; Const _HTTPMethod = 'POST'; _Path = '{userId}/threads/{id}/modify'; _Methodid = 'gmail.users.threads.modify'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',aModifyThreadRequest,TThread) as TThread; end; Function TUsersThreadsResource.Trash(id: string; userId: string) : TThread; Const _HTTPMethod = 'POST'; _Path = '{userId}/threads/{id}/trash'; _Methodid = 'gmail.users.threads.trash'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TThread) as TThread; end; Function TUsersThreadsResource.Untrash(id: string; userId: string) : TThread; Const _HTTPMethod = 'POST'; _Path = '{userId}/threads/{id}/untrash'; _Methodid = 'gmail.users.threads.untrash'; Var _P : String; begin _P:=SubstitutePath(_Path,['id',id,'userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TThread) as TThread; end; { -------------------------------------------------------------------- TUsersResource --------------------------------------------------------------------} Class Function TUsersResource.ResourceName : String; begin Result:='users'; end; Class Function TUsersResource.DefaultAPI : TGoogleAPIClass; begin Result:=TgmailAPI; end; Function TUsersResource.GetProfile(userId: string) : TProfile; Const _HTTPMethod = 'GET'; _Path = '{userId}/profile'; _Methodid = 'gmail.users.getProfile'; Var _P : String; begin _P:=SubstitutePath(_Path,['userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TProfile) as TProfile; end; Procedure TUsersResource.Stop(userId: string); Const _HTTPMethod = 'POST'; _Path = '{userId}/stop'; _Methodid = 'gmail.users.stop'; Var _P : String; begin _P:=SubstitutePath(_Path,['userId',userId]); ServiceCall(_HTTPMethod,_P,'',Nil,Nil); end; Function TUsersResource.Watch(userId: string; aWatchRequest : TWatchRequest) : TWatchResponse; Const _HTTPMethod = 'POST'; _Path = '{userId}/watch'; _Methodid = 'gmail.users.watch'; Var _P : String; begin _P:=SubstitutePath(_Path,['userId',userId]); Result:=ServiceCall(_HTTPMethod,_P,'',aWatchRequest,TWatchResponse) as TWatchResponse; end; Function TUsersResource.GetDraftsInstance : TUsersDraftsResource; begin if (FDraftsInstance=Nil) then FDraftsInstance:=CreateDraftsResource; Result:=FDraftsInstance; end; Function TUsersResource.CreateDraftsResource : TUsersDraftsResource; begin Result:=CreateDraftsResource(Self); end; Function TUsersResource.CreateDraftsResource(AOwner : TComponent) : TUsersDraftsResource; begin Result:=TUsersDraftsResource.Create(AOwner); Result.API:=Self.API; end; Function TUsersResource.GetHistoryInstance : TUsersHistoryResource; begin if (FHistoryInstance=Nil) then FHistoryInstance:=CreateHistoryResource; Result:=FHistoryInstance; end; Function TUsersResource.CreateHistoryResource : TUsersHistoryResource; begin Result:=CreateHistoryResource(Self); end; Function TUsersResource.CreateHistoryResource(AOwner : TComponent) : TUsersHistoryResource; begin Result:=TUsersHistoryResource.Create(AOwner); Result.API:=Self.API; end; Function TUsersResource.GetLabelsInstance : TUsersLabelsResource; begin if (FLabelsInstance=Nil) then FLabelsInstance:=CreateLabelsResource; Result:=FLabelsInstance; end; Function TUsersResource.CreateLabelsResource : TUsersLabelsResource; begin Result:=CreateLabelsResource(Self); end; Function TUsersResource.CreateLabelsResource(AOwner : TComponent) : TUsersLabelsResource; begin Result:=TUsersLabelsResource.Create(AOwner); Result.API:=Self.API; end; Function TUsersResource.GetMessagesAttachmentsInstance : TUsersMessagesAttachmentsResource; begin if (FMessagesAttachmentsInstance=Nil) then FMessagesAttachmentsInstance:=CreateMessagesAttachmentsResource; Result:=FMessagesAttachmentsInstance; end; Function TUsersResource.CreateMessagesAttachmentsResource : TUsersMessagesAttachmentsResource; begin Result:=CreateMessagesAttachmentsResource(Self); end; Function TUsersResource.CreateMessagesAttachmentsResource(AOwner : TComponent) : TUsersMessagesAttachmentsResource; begin Result:=TUsersMessagesAttachmentsResource.Create(AOwner); Result.API:=Self.API; end; Function TUsersResource.GetMessagesInstance : TUsersMessagesResource; begin if (FMessagesInstance=Nil) then FMessagesInstance:=CreateMessagesResource; Result:=FMessagesInstance; end; Function TUsersResource.CreateMessagesResource : TUsersMessagesResource; begin Result:=CreateMessagesResource(Self); end; Function TUsersResource.CreateMessagesResource(AOwner : TComponent) : TUsersMessagesResource; begin Result:=TUsersMessagesResource.Create(AOwner); Result.API:=Self.API; end; Function TUsersResource.GetThreadsInstance : TUsersThreadsResource; begin if (FThreadsInstance=Nil) then FThreadsInstance:=CreateThreadsResource; Result:=FThreadsInstance; end; Function TUsersResource.CreateThreadsResource : TUsersThreadsResource; begin Result:=CreateThreadsResource(Self); end; Function TUsersResource.CreateThreadsResource(AOwner : TComponent) : TUsersThreadsResource; begin Result:=TUsersThreadsResource.Create(AOwner); Result.API:=Self.API; end; { -------------------------------------------------------------------- TGmailAPI --------------------------------------------------------------------} Class Function TGmailAPI.APIName : String; begin Result:='gmail'; end; Class Function TGmailAPI.APIVersion : String; begin Result:='v1'; end; Class Function TGmailAPI.APIRevision : String; begin Result:='20160316'; end; Class Function TGmailAPI.APIID : String; begin Result:='gmail:v1'; end; Class Function TGmailAPI.APITitle : String; begin Result:='Gmail API'; end; Class Function TGmailAPI.APIDescription : String; begin Result:='Access Gmail mailboxes including sending user email.'; end; Class Function TGmailAPI.APIOwnerDomain : String; begin Result:='google.com'; end; Class Function TGmailAPI.APIOwnerName : String; begin Result:='Google'; end; Class Function TGmailAPI.APIIcon16 : String; begin Result:='https://www.google.com/images/icons/product/googlemail-16.png'; end; Class Function TGmailAPI.APIIcon32 : String; begin Result:='https://www.google.com/images/icons/product/googlemail-32.png'; end; Class Function TGmailAPI.APIdocumentationLink : String; begin Result:='https://developers.google.com/gmail/api/'; end; Class Function TGmailAPI.APIrootUrl : string; begin Result:='https://www.googleapis.com/'; end; Class Function TGmailAPI.APIbasePath : string; begin Result:='/gmail/v1/users/'; end; Class Function TGmailAPI.APIbaseURL : String; begin Result:='https://www.googleapis.com/gmail/v1/users/'; end; Class Function TGmailAPI.APIProtocol : string; begin Result:='rest'; end; Class Function TGmailAPI.APIservicePath : string; begin Result:='gmail/v1/users/'; end; Class Function TGmailAPI.APIbatchPath : String; begin Result:='batch'; end; Class Function TGmailAPI.APIAuthScopes : TScopeInfoArray; begin SetLength(Result,7); Result[0].Name:='https://mail.google.com/'; Result[0].Description:='View and manage your mail'; Result[1].Name:='https://www.googleapis.com/auth/gmail.compose'; Result[1].Description:='Manage drafts and send emails'; Result[2].Name:='https://www.googleapis.com/auth/gmail.insert'; Result[2].Description:='Insert mail into your mailbox'; Result[3].Name:='https://www.googleapis.com/auth/gmail.labels'; Result[3].Description:='Manage mailbox labels'; Result[4].Name:='https://www.googleapis.com/auth/gmail.modify'; Result[4].Description:='View and modify but not delete your email'; Result[5].Name:='https://www.googleapis.com/auth/gmail.readonly'; Result[5].Description:='View your emails messages and settings'; Result[6].Name:='https://www.googleapis.com/auth/gmail.send'; Result[6].Description:='Send email on your behalf'; end; Class Function TGmailAPI.APINeedsAuth : Boolean; begin Result:=True; end; Class Procedure TGmailAPI.RegisterAPIResources; begin TBatchDeleteMessagesRequest.RegisterObject; TDraft.RegisterObject; THistory.RegisterObject; THistoryLabelAdded.RegisterObject; THistoryLabelRemoved.RegisterObject; THistoryMessageAdded.RegisterObject; THistoryMessageDeleted.RegisterObject; TLabel.RegisterObject; TListDraftsResponse.RegisterObject; TListHistoryResponse.RegisterObject; TListLabelsResponse.RegisterObject; TListMessagesResponse.RegisterObject; TListThreadsResponse.RegisterObject; TMessage.RegisterObject; TMessagePart.RegisterObject; TMessagePartBody.RegisterObject; TMessagePartHeader.RegisterObject; TModifyMessageRequest.RegisterObject; TModifyThreadRequest.RegisterObject; TProfile.RegisterObject; TThread.RegisterObject; TWatchRequest.RegisterObject; TWatchResponse.RegisterObject; end; Function TGmailAPI.GetUsersDraftsInstance : TUsersDraftsResource; begin if (FUsersDraftsInstance=Nil) then FUsersDraftsInstance:=CreateUsersDraftsResource; Result:=FUsersDraftsInstance; end; Function TGmailAPI.CreateUsersDraftsResource : TUsersDraftsResource; begin Result:=CreateUsersDraftsResource(Self); end; Function TGmailAPI.CreateUsersDraftsResource(AOwner : TComponent) : TUsersDraftsResource; begin Result:=TUsersDraftsResource.Create(AOwner); Result.API:=Self.API; end; Function TGmailAPI.GetUsersHistoryInstance : TUsersHistoryResource; begin if (FUsersHistoryInstance=Nil) then FUsersHistoryInstance:=CreateUsersHistoryResource; Result:=FUsersHistoryInstance; end; Function TGmailAPI.CreateUsersHistoryResource : TUsersHistoryResource; begin Result:=CreateUsersHistoryResource(Self); end; Function TGmailAPI.CreateUsersHistoryResource(AOwner : TComponent) : TUsersHistoryResource; begin Result:=TUsersHistoryResource.Create(AOwner); Result.API:=Self.API; end; Function TGmailAPI.GetUsersLabelsInstance : TUsersLabelsResource; begin if (FUsersLabelsInstance=Nil) then FUsersLabelsInstance:=CreateUsersLabelsResource; Result:=FUsersLabelsInstance; end; Function TGmailAPI.CreateUsersLabelsResource : TUsersLabelsResource; begin Result:=CreateUsersLabelsResource(Self); end; Function TGmailAPI.CreateUsersLabelsResource(AOwner : TComponent) : TUsersLabelsResource; begin Result:=TUsersLabelsResource.Create(AOwner); Result.API:=Self.API; end; Function TGmailAPI.GetUsersMessagesAttachmentsInstance : TUsersMessagesAttachmentsResource; begin if (FUsersMessagesAttachmentsInstance=Nil) then FUsersMessagesAttachmentsInstance:=CreateUsersMessagesAttachmentsResource; Result:=FUsersMessagesAttachmentsInstance; end; Function TGmailAPI.CreateUsersMessagesAttachmentsResource : TUsersMessagesAttachmentsResource; begin Result:=CreateUsersMessagesAttachmentsResource(Self); end; Function TGmailAPI.CreateUsersMessagesAttachmentsResource(AOwner : TComponent) : TUsersMessagesAttachmentsResource; begin Result:=TUsersMessagesAttachmentsResource.Create(AOwner); Result.API:=Self.API; end; Function TGmailAPI.GetUsersMessagesInstance : TUsersMessagesResource; begin if (FUsersMessagesInstance=Nil) then FUsersMessagesInstance:=CreateUsersMessagesResource; Result:=FUsersMessagesInstance; end; Function TGmailAPI.CreateUsersMessagesResource : TUsersMessagesResource; begin Result:=CreateUsersMessagesResource(Self); end; Function TGmailAPI.CreateUsersMessagesResource(AOwner : TComponent) : TUsersMessagesResource; begin Result:=TUsersMessagesResource.Create(AOwner); Result.API:=Self.API; end; Function TGmailAPI.GetUsersThreadsInstance : TUsersThreadsResource; begin if (FUsersThreadsInstance=Nil) then FUsersThreadsInstance:=CreateUsersThreadsResource; Result:=FUsersThreadsInstance; end; Function TGmailAPI.CreateUsersThreadsResource : TUsersThreadsResource; begin Result:=CreateUsersThreadsResource(Self); end; Function TGmailAPI.CreateUsersThreadsResource(AOwner : TComponent) : TUsersThreadsResource; begin Result:=TUsersThreadsResource.Create(AOwner); Result.API:=Self.API; end; Function TGmailAPI.GetUsersInstance : TUsersResource; begin if (FUsersInstance=Nil) then FUsersInstance:=CreateUsersResource; Result:=FUsersInstance; end; Function TGmailAPI.CreateUsersResource : TUsersResource; begin Result:=CreateUsersResource(Self); end; Function TGmailAPI.CreateUsersResource(AOwner : TComponent) : TUsersResource; begin Result:=TUsersResource.Create(AOwner); Result.API:=Self.API; end; initialization TGmailAPI.RegisterAPI; end.