summaryrefslogtreecommitdiff
path: root/packages/googleapi/src/googleyoutubeanalytics.pp
diff options
context:
space:
mode:
Diffstat (limited to 'packages/googleapi/src/googleyoutubeanalytics.pp')
-rw-r--r--packages/googleapi/src/googleyoutubeanalytics.pp1943
1 files changed, 1943 insertions, 0 deletions
diff --git a/packages/googleapi/src/googleyoutubeanalytics.pp b/packages/googleapi/src/googleyoutubeanalytics.pp
new file mode 100644
index 0000000000..5c5d8f5cfd
--- /dev/null
+++ b/packages/googleapi/src/googleyoutubeanalytics.pp
@@ -0,0 +1,1943 @@
+unit googleyoutubeAnalytics;
+{$MODE objfpc}
+{$H+}
+
+interface
+
+uses sysutils, classes, googleservice, restbase, googlebase;
+
+type
+
+ //Top-level schema types
+ TBatchReport = Class;
+ TBatchReportDefinition = Class;
+ TBatchReportDefinitionList = Class;
+ TBatchReportList = Class;
+ TGroup = Class;
+ TGroupItem = Class;
+ TGroupItemListResponse = Class;
+ TGroupListResponse = Class;
+ TResultTable = Class;
+ TBatchReportArray = Array of TBatchReport;
+ TBatchReportDefinitionArray = Array of TBatchReportDefinition;
+ TBatchReportDefinitionListArray = Array of TBatchReportDefinitionList;
+ TBatchReportListArray = Array of TBatchReportList;
+ TGroupArray = Array of TGroup;
+ TGroupItemArray = Array of TGroupItem;
+ TGroupItemListResponseArray = Array of TGroupItemListResponse;
+ TGroupListResponseArray = Array of TGroupListResponse;
+ TResultTableArray = Array of TResultTable;
+ //Anonymous types, using auto-generated names
+ TBatchReportTypeoutputsItem = Class;
+ TBatchReportTypetimeSpan = Class;
+ TGroupTypecontentDetails = Class;
+ TGroupTypesnippet = Class;
+ TGroupItemTyperesource = Class;
+ TResultTableTypecolumnHeadersItem = Class;
+ TBatchReportTypeoutputsArray = Array of TBatchReportTypeoutputsItem;
+ TBatchReportDefinitionListTypeitemsArray = Array of TBatchReportDefinition;
+ TBatchReportListTypeitemsArray = Array of TBatchReport;
+ TGroupItemListResponseTypeitemsArray = Array of TGroupItem;
+ TGroupListResponseTypeitemsArray = Array of TGroup;
+ TResultTableTypecolumnHeadersArray = Array of TResultTableTypecolumnHeadersItem;
+ TResultTableTyperowsArray = Array of TTJSONSchemaArray;
+
+ { --------------------------------------------------------------------
+ TBatchReportTypeoutputsItem
+ --------------------------------------------------------------------}
+
+ TBatchReportTypeoutputsItem = Class(TGoogleBaseObject)
+ Private
+ FdownloadUrl : String;
+ Fformat : String;
+ F_type : String;
+ Protected
+ Class Function ExportPropertyName(Const AName : String) : string; override;
+ //Property setters
+ Procedure SetdownloadUrl(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setformat(AIndex : Integer; const AValue : String); virtual;
+ Procedure Set_type(AIndex : Integer; const AValue : String); virtual;
+ Public
+ Published
+ Property downloadUrl : String Index 0 Read FdownloadUrl Write SetdownloadUrl;
+ Property format : String Index 8 Read Fformat Write Setformat;
+ Property _type : String Index 16 Read F_type Write Set_type;
+ end;
+ TBatchReportTypeoutputsItemClass = Class of TBatchReportTypeoutputsItem;
+
+ { --------------------------------------------------------------------
+ TBatchReportTypetimeSpan
+ --------------------------------------------------------------------}
+
+ TBatchReportTypetimeSpan = Class(TGoogleBaseObject)
+ Private
+ FendTime : TDatetime;
+ FstartTime : TDatetime;
+ Protected
+ //Property setters
+ Procedure SetendTime(AIndex : Integer; const AValue : TDatetime); virtual;
+ Procedure SetstartTime(AIndex : Integer; const AValue : TDatetime); virtual;
+ Public
+ Published
+ Property endTime : TDatetime Index 0 Read FendTime Write SetendTime;
+ Property startTime : TDatetime Index 8 Read FstartTime Write SetstartTime;
+ end;
+ TBatchReportTypetimeSpanClass = Class of TBatchReportTypetimeSpan;
+
+ { --------------------------------------------------------------------
+ TBatchReport
+ --------------------------------------------------------------------}
+
+ TBatchReport = Class(TGoogleBaseObject)
+ Private
+ Fid : String;
+ Fkind : String;
+ Foutputs : TBatchReportTypeoutputsArray;
+ FreportId : String;
+ FtimeSpan : TBatchReportTypetimeSpan;
+ FtimeUpdated : TDatetime;
+ Protected
+ //Property setters
+ Procedure Setid(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setoutputs(AIndex : Integer; const AValue : TBatchReportTypeoutputsArray); virtual;
+ Procedure SetreportId(AIndex : Integer; const AValue : String); virtual;
+ Procedure SettimeSpan(AIndex : Integer; const AValue : TBatchReportTypetimeSpan); virtual;
+ Procedure SettimeUpdated(AIndex : Integer; const AValue : TDatetime); 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 kind : String Index 8 Read Fkind Write Setkind;
+ Property outputs : TBatchReportTypeoutputsArray Index 16 Read Foutputs Write Setoutputs;
+ Property reportId : String Index 24 Read FreportId Write SetreportId;
+ Property timeSpan : TBatchReportTypetimeSpan Index 32 Read FtimeSpan Write SettimeSpan;
+ Property timeUpdated : TDatetime Index 40 Read FtimeUpdated Write SettimeUpdated;
+ end;
+ TBatchReportClass = Class of TBatchReport;
+
+ { --------------------------------------------------------------------
+ TBatchReportDefinition
+ --------------------------------------------------------------------}
+
+ TBatchReportDefinition = Class(TGoogleBaseObject)
+ Private
+ Fid : String;
+ Fkind : String;
+ Fname : String;
+ Fstatus : String;
+ F_type : String;
+ Protected
+ Class Function ExportPropertyName(Const AName : String) : string; override;
+ //Property setters
+ Procedure Setid(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setname(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setstatus(AIndex : Integer; const AValue : String); virtual;
+ Procedure Set_type(AIndex : Integer; const AValue : String); virtual;
+ Public
+ Published
+ Property id : String Index 0 Read Fid Write Setid;
+ Property kind : String Index 8 Read Fkind Write Setkind;
+ Property name : String Index 16 Read Fname Write Setname;
+ Property status : String Index 24 Read Fstatus Write Setstatus;
+ Property _type : String Index 32 Read F_type Write Set_type;
+ end;
+ TBatchReportDefinitionClass = Class of TBatchReportDefinition;
+
+ { --------------------------------------------------------------------
+ TBatchReportDefinitionList
+ --------------------------------------------------------------------}
+
+ TBatchReportDefinitionList = Class(TGoogleBaseObject)
+ Private
+ Fitems : TBatchReportDefinitionListTypeitemsArray;
+ Fkind : String;
+ Protected
+ //Property setters
+ Procedure Setitems(AIndex : Integer; const AValue : TBatchReportDefinitionListTypeitemsArray); virtual;
+ Procedure Setkind(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 items : TBatchReportDefinitionListTypeitemsArray Index 0 Read Fitems Write Setitems;
+ Property kind : String Index 8 Read Fkind Write Setkind;
+ end;
+ TBatchReportDefinitionListClass = Class of TBatchReportDefinitionList;
+
+ { --------------------------------------------------------------------
+ TBatchReportList
+ --------------------------------------------------------------------}
+
+ TBatchReportList = Class(TGoogleBaseObject)
+ Private
+ Fitems : TBatchReportListTypeitemsArray;
+ Fkind : String;
+ Protected
+ //Property setters
+ Procedure Setitems(AIndex : Integer; const AValue : TBatchReportListTypeitemsArray); virtual;
+ Procedure Setkind(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 items : TBatchReportListTypeitemsArray Index 0 Read Fitems Write Setitems;
+ Property kind : String Index 8 Read Fkind Write Setkind;
+ end;
+ TBatchReportListClass = Class of TBatchReportList;
+
+ { --------------------------------------------------------------------
+ TGroupTypecontentDetails
+ --------------------------------------------------------------------}
+
+ TGroupTypecontentDetails = Class(TGoogleBaseObject)
+ Private
+ FitemCount : String;
+ FitemType : String;
+ Protected
+ //Property setters
+ Procedure SetitemCount(AIndex : Integer; const AValue : String); virtual;
+ Procedure SetitemType(AIndex : Integer; const AValue : String); virtual;
+ Public
+ Published
+ Property itemCount : String Index 0 Read FitemCount Write SetitemCount;
+ Property itemType : String Index 8 Read FitemType Write SetitemType;
+ end;
+ TGroupTypecontentDetailsClass = Class of TGroupTypecontentDetails;
+
+ { --------------------------------------------------------------------
+ TGroupTypesnippet
+ --------------------------------------------------------------------}
+
+ TGroupTypesnippet = Class(TGoogleBaseObject)
+ Private
+ FpublishedAt : TDatetime;
+ Ftitle : String;
+ Protected
+ //Property setters
+ Procedure SetpublishedAt(AIndex : Integer; const AValue : TDatetime); virtual;
+ Procedure Settitle(AIndex : Integer; const AValue : String); virtual;
+ Public
+ Published
+ Property publishedAt : TDatetime Index 0 Read FpublishedAt Write SetpublishedAt;
+ Property title : String Index 8 Read Ftitle Write Settitle;
+ end;
+ TGroupTypesnippetClass = Class of TGroupTypesnippet;
+
+ { --------------------------------------------------------------------
+ TGroup
+ --------------------------------------------------------------------}
+
+ TGroup = Class(TGoogleBaseObject)
+ Private
+ FcontentDetails : TGroupTypecontentDetails;
+ Fetag : String;
+ Fid : String;
+ Fkind : String;
+ Fsnippet : TGroupTypesnippet;
+ Protected
+ //Property setters
+ Procedure SetcontentDetails(AIndex : Integer; const AValue : TGroupTypecontentDetails); virtual;
+ Procedure Setetag(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setid(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setsnippet(AIndex : Integer; const AValue : TGroupTypesnippet); virtual;
+ Public
+ Published
+ Property contentDetails : TGroupTypecontentDetails Index 0 Read FcontentDetails Write SetcontentDetails;
+ Property etag : String Index 8 Read Fetag Write Setetag;
+ Property id : String Index 16 Read Fid Write Setid;
+ Property kind : String Index 24 Read Fkind Write Setkind;
+ Property snippet : TGroupTypesnippet Index 32 Read Fsnippet Write Setsnippet;
+ end;
+ TGroupClass = Class of TGroup;
+
+ { --------------------------------------------------------------------
+ TGroupItemTyperesource
+ --------------------------------------------------------------------}
+
+ TGroupItemTyperesource = Class(TGoogleBaseObject)
+ Private
+ Fid : String;
+ Fkind : String;
+ Protected
+ //Property setters
+ Procedure Setid(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
+ Public
+ Published
+ Property id : String Index 0 Read Fid Write Setid;
+ Property kind : String Index 8 Read Fkind Write Setkind;
+ end;
+ TGroupItemTyperesourceClass = Class of TGroupItemTyperesource;
+
+ { --------------------------------------------------------------------
+ TGroupItem
+ --------------------------------------------------------------------}
+
+ TGroupItem = Class(TGoogleBaseObject)
+ Private
+ Fetag : String;
+ FgroupId : String;
+ Fid : String;
+ Fkind : String;
+ Fresource : TGroupItemTyperesource;
+ Protected
+ //Property setters
+ Procedure Setetag(AIndex : Integer; const AValue : String); virtual;
+ Procedure SetgroupId(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setid(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setresource(AIndex : Integer; const AValue : TGroupItemTyperesource); virtual;
+ Public
+ Published
+ Property etag : String Index 0 Read Fetag Write Setetag;
+ Property groupId : String Index 8 Read FgroupId Write SetgroupId;
+ Property id : String Index 16 Read Fid Write Setid;
+ Property kind : String Index 24 Read Fkind Write Setkind;
+ Property resource : TGroupItemTyperesource Index 32 Read Fresource Write Setresource;
+ end;
+ TGroupItemClass = Class of TGroupItem;
+
+ { --------------------------------------------------------------------
+ TGroupItemListResponse
+ --------------------------------------------------------------------}
+
+ TGroupItemListResponse = Class(TGoogleBaseObject)
+ Private
+ Fetag : String;
+ Fitems : TGroupItemListResponseTypeitemsArray;
+ Fkind : String;
+ Protected
+ //Property setters
+ Procedure Setetag(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setitems(AIndex : Integer; const AValue : TGroupItemListResponseTypeitemsArray); virtual;
+ Procedure Setkind(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 etag : String Index 0 Read Fetag Write Setetag;
+ Property items : TGroupItemListResponseTypeitemsArray Index 8 Read Fitems Write Setitems;
+ Property kind : String Index 16 Read Fkind Write Setkind;
+ end;
+ TGroupItemListResponseClass = Class of TGroupItemListResponse;
+
+ { --------------------------------------------------------------------
+ TGroupListResponse
+ --------------------------------------------------------------------}
+
+ TGroupListResponse = Class(TGoogleBaseObject)
+ Private
+ Fetag : String;
+ Fitems : TGroupListResponseTypeitemsArray;
+ Fkind : String;
+ FnextPageToken : String;
+ Protected
+ //Property setters
+ Procedure Setetag(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setitems(AIndex : Integer; const AValue : TGroupListResponseTypeitemsArray); virtual;
+ Procedure Setkind(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 etag : String Index 0 Read Fetag Write Setetag;
+ Property items : TGroupListResponseTypeitemsArray Index 8 Read Fitems Write Setitems;
+ Property kind : String Index 16 Read Fkind Write Setkind;
+ Property nextPageToken : String Index 24 Read FnextPageToken Write SetnextPageToken;
+ end;
+ TGroupListResponseClass = Class of TGroupListResponse;
+
+ { --------------------------------------------------------------------
+ TResultTableTypecolumnHeadersItem
+ --------------------------------------------------------------------}
+
+ TResultTableTypecolumnHeadersItem = Class(TGoogleBaseObject)
+ Private
+ FcolumnType : String;
+ FdataType : String;
+ Fname : String;
+ Protected
+ //Property setters
+ Procedure SetcolumnType(AIndex : Integer; const AValue : String); virtual;
+ Procedure SetdataType(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setname(AIndex : Integer; const AValue : String); virtual;
+ Public
+ Published
+ Property columnType : String Index 0 Read FcolumnType Write SetcolumnType;
+ Property dataType : String Index 8 Read FdataType Write SetdataType;
+ Property name : String Index 16 Read Fname Write Setname;
+ end;
+ TResultTableTypecolumnHeadersItemClass = Class of TResultTableTypecolumnHeadersItem;
+
+ { --------------------------------------------------------------------
+ TResultTable
+ --------------------------------------------------------------------}
+
+ TResultTable = Class(TGoogleBaseObject)
+ Private
+ FcolumnHeaders : TResultTableTypecolumnHeadersArray;
+ Fkind : String;
+ Frows : TResultTableTyperowsArray;
+ Protected
+ //Property setters
+ Procedure SetcolumnHeaders(AIndex : Integer; const AValue : TResultTableTypecolumnHeadersArray); virtual;
+ Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setrows(AIndex : Integer; const AValue : TResultTableTyperowsArray); virtual;
+ //2.6.4. bug workaround
+ {$IFDEF VER2_6}
+ Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
+ {$ENDIF VER2_6}
+ Public
+ Published
+ Property columnHeaders : TResultTableTypecolumnHeadersArray Index 0 Read FcolumnHeaders Write SetcolumnHeaders;
+ Property kind : String Index 8 Read Fkind Write Setkind;
+ Property rows : TResultTableTyperowsArray Index 16 Read Frows Write Setrows;
+ end;
+ TResultTableClass = Class of TResultTable;
+
+ { --------------------------------------------------------------------
+ TBatchReportDefinitionsResource
+ --------------------------------------------------------------------}
+
+
+ //Optional query Options for TBatchReportDefinitionsResource, method List
+
+ TBatchReportDefinitionsListOptions = Record
+ onBehalfOfContentOwner : String;
+ end;
+
+ TBatchReportDefinitionsResource = Class(TGoogleResource)
+ Public
+ Class Function ResourceName : String; override;
+ Class Function DefaultAPI : TGoogleAPIClass; override;
+ Function List(AQuery : string = '') : TBatchReportDefinitionList;
+ Function List(AQuery : TBatchReportDefinitionslistOptions) : TBatchReportDefinitionList;
+ end;
+
+
+ { --------------------------------------------------------------------
+ TBatchReportsResource
+ --------------------------------------------------------------------}
+
+
+ //Optional query Options for TBatchReportsResource, method List
+
+ TBatchReportsListOptions = Record
+ batchReportDefinitionId : String;
+ onBehalfOfContentOwner : String;
+ end;
+
+ TBatchReportsResource = Class(TGoogleResource)
+ Public
+ Class Function ResourceName : String; override;
+ Class Function DefaultAPI : TGoogleAPIClass; override;
+ Function List(AQuery : string = '') : TBatchReportList;
+ Function List(AQuery : TBatchReportslistOptions) : TBatchReportList;
+ end;
+
+
+ { --------------------------------------------------------------------
+ TGroupItemsResource
+ --------------------------------------------------------------------}
+
+
+ //Optional query Options for TGroupItemsResource, method Delete
+
+ TGroupItemsDeleteOptions = Record
+ id : String;
+ onBehalfOfContentOwner : String;
+ end;
+
+
+ //Optional query Options for TGroupItemsResource, method Insert
+
+ TGroupItemsInsertOptions = Record
+ onBehalfOfContentOwner : String;
+ end;
+
+
+ //Optional query Options for TGroupItemsResource, method List
+
+ TGroupItemsListOptions = Record
+ groupId : String;
+ onBehalfOfContentOwner : String;
+ end;
+
+ TGroupItemsResource = Class(TGoogleResource)
+ Public
+ Class Function ResourceName : String; override;
+ Class Function DefaultAPI : TGoogleAPIClass; override;
+ Procedure Delete(AQuery : string = '');
+ Procedure Delete(AQuery : TGroupItemsdeleteOptions);
+ Function Insert(aGroupItem : TGroupItem; AQuery : string = '') : TGroupItem;
+ Function Insert(aGroupItem : TGroupItem; AQuery : TGroupItemsinsertOptions) : TGroupItem;
+ Function List(AQuery : string = '') : TGroupItemListResponse;
+ Function List(AQuery : TGroupItemslistOptions) : TGroupItemListResponse;
+ end;
+
+
+ { --------------------------------------------------------------------
+ TGroupsResource
+ --------------------------------------------------------------------}
+
+
+ //Optional query Options for TGroupsResource, method Delete
+
+ TGroupsDeleteOptions = Record
+ id : String;
+ onBehalfOfContentOwner : String;
+ end;
+
+
+ //Optional query Options for TGroupsResource, method Insert
+
+ TGroupsInsertOptions = Record
+ onBehalfOfContentOwner : String;
+ end;
+
+
+ //Optional query Options for TGroupsResource, method List
+
+ TGroupsListOptions = Record
+ id : String;
+ mine : boolean;
+ onBehalfOfContentOwner : String;
+ pageToken : String;
+ end;
+
+
+ //Optional query Options for TGroupsResource, method Update
+
+ TGroupsUpdateOptions = Record
+ onBehalfOfContentOwner : String;
+ end;
+
+ TGroupsResource = Class(TGoogleResource)
+ Public
+ Class Function ResourceName : String; override;
+ Class Function DefaultAPI : TGoogleAPIClass; override;
+ Procedure Delete(AQuery : string = '');
+ Procedure Delete(AQuery : TGroupsdeleteOptions);
+ Function Insert(aGroup : TGroup; AQuery : string = '') : TGroup;
+ Function Insert(aGroup : TGroup; AQuery : TGroupsinsertOptions) : TGroup;
+ Function List(AQuery : string = '') : TGroupListResponse;
+ Function List(AQuery : TGroupslistOptions) : TGroupListResponse;
+ Function Update(aGroup : TGroup; AQuery : string = '') : TGroup;
+ Function Update(aGroup : TGroup; AQuery : TGroupsupdateOptions) : TGroup;
+ end;
+
+
+ { --------------------------------------------------------------------
+ TReportsResource
+ --------------------------------------------------------------------}
+
+
+ //Optional query Options for TReportsResource, method Query
+
+ TReportsQueryOptions = Record
+ currency : String;
+ dimensions : String;
+ enddate : String;
+ filters : String;
+ ids : String;
+ maxresults : integer;
+ metrics : String;
+ sort : String;
+ startdate : String;
+ startindex : integer;
+ end;
+
+ TReportsResource = Class(TGoogleResource)
+ Public
+ Class Function ResourceName : String; override;
+ Class Function DefaultAPI : TGoogleAPIClass; override;
+ Function Query(AQuery : string = '') : TResultTable;
+ Function Query(AQuery : TReportsqueryOptions) : TResultTable;
+ end;
+
+
+ { --------------------------------------------------------------------
+ TYoutubeAnalyticsAPI
+ --------------------------------------------------------------------}
+
+ TYoutubeAnalyticsAPI = Class(TGoogleAPI)
+ Private
+ FBatchReportDefinitionsInstance : TBatchReportDefinitionsResource;
+ FBatchReportsInstance : TBatchReportsResource;
+ FGroupItemsInstance : TGroupItemsResource;
+ FGroupsInstance : TGroupsResource;
+ FReportsInstance : TReportsResource;
+ Function GetBatchReportDefinitionsInstance : TBatchReportDefinitionsResource;virtual;
+ Function GetBatchReportsInstance : TBatchReportsResource;virtual;
+ Function GetGroupItemsInstance : TGroupItemsResource;virtual;
+ Function GetGroupsInstance : TGroupsResource;virtual;
+ Function GetReportsInstance : TReportsResource;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 CreateBatchReportDefinitionsResource(AOwner : TComponent) : TBatchReportDefinitionsResource;virtual;overload;
+ Function CreateBatchReportDefinitionsResource : TBatchReportDefinitionsResource;virtual;overload;
+ Function CreateBatchReportsResource(AOwner : TComponent) : TBatchReportsResource;virtual;overload;
+ Function CreateBatchReportsResource : TBatchReportsResource;virtual;overload;
+ Function CreateGroupItemsResource(AOwner : TComponent) : TGroupItemsResource;virtual;overload;
+ Function CreateGroupItemsResource : TGroupItemsResource;virtual;overload;
+ Function CreateGroupsResource(AOwner : TComponent) : TGroupsResource;virtual;overload;
+ Function CreateGroupsResource : TGroupsResource;virtual;overload;
+ Function CreateReportsResource(AOwner : TComponent) : TReportsResource;virtual;overload;
+ Function CreateReportsResource : TReportsResource;virtual;overload;
+ //Add default on-demand instances for resources
+ Property BatchReportDefinitionsResource : TBatchReportDefinitionsResource Read GetBatchReportDefinitionsInstance;
+ Property BatchReportsResource : TBatchReportsResource Read GetBatchReportsInstance;
+ Property GroupItemsResource : TGroupItemsResource Read GetGroupItemsInstance;
+ Property GroupsResource : TGroupsResource Read GetGroupsInstance;
+ Property ReportsResource : TReportsResource Read GetReportsInstance;
+ end;
+
+implementation
+
+
+{ --------------------------------------------------------------------
+ TBatchReportTypeoutputsItem
+ --------------------------------------------------------------------}
+
+
+Procedure TBatchReportTypeoutputsItem.SetdownloadUrl(AIndex : Integer; const AValue : String);
+
+begin
+ If (FdownloadUrl=AValue) then exit;
+ FdownloadUrl:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBatchReportTypeoutputsItem.Setformat(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fformat=AValue) then exit;
+ Fformat:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBatchReportTypeoutputsItem.Set_type(AIndex : Integer; const AValue : String);
+
+begin
+ If (F_type=AValue) then exit;
+ F_type:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Class Function TBatchReportTypeoutputsItem.ExportPropertyName(Const AName : String) :String;
+
+begin
+ Case AName of
+ '_type' : Result:='type';
+ else
+ Result:=Inherited ExportPropertyName(AName);
+ end;
+end;
+
+
+
+
+{ --------------------------------------------------------------------
+ TBatchReportTypetimeSpan
+ --------------------------------------------------------------------}
+
+
+Procedure TBatchReportTypetimeSpan.SetendTime(AIndex : Integer; const AValue : TDatetime);
+
+begin
+ If (FendTime=AValue) then exit;
+ FendTime:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBatchReportTypetimeSpan.SetstartTime(AIndex : Integer; const AValue : TDatetime);
+
+begin
+ If (FstartTime=AValue) then exit;
+ FstartTime:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+
+
+{ --------------------------------------------------------------------
+ TBatchReport
+ --------------------------------------------------------------------}
+
+
+Procedure TBatchReport.Setid(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fid=AValue) then exit;
+ Fid:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBatchReport.Setkind(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fkind=AValue) then exit;
+ Fkind:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBatchReport.Setoutputs(AIndex : Integer; const AValue : TBatchReportTypeoutputsArray);
+
+begin
+ If (Foutputs=AValue) then exit;
+ Foutputs:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBatchReport.SetreportId(AIndex : Integer; const AValue : String);
+
+begin
+ If (FreportId=AValue) then exit;
+ FreportId:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBatchReport.SettimeSpan(AIndex : Integer; const AValue : TBatchReportTypetimeSpan);
+
+begin
+ If (FtimeSpan=AValue) then exit;
+ FtimeSpan:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBatchReport.SettimeUpdated(AIndex : Integer; const AValue : TDatetime);
+
+begin
+ If (FtimeUpdated=AValue) then exit;
+ FtimeUpdated:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+//2.6.4. bug workaround
+{$IFDEF VER2_6}
+Procedure TBatchReport.SetArrayLength(Const AName : String; ALength : Longint);
+
+begin
+ Case AName of
+ 'outputs' : SetLength(Foutputs,ALength);
+ else
+ Inherited SetArrayLength(AName,ALength);
+ end;
+end;
+{$ENDIF VER2_6}
+
+
+
+
+{ --------------------------------------------------------------------
+ TBatchReportDefinition
+ --------------------------------------------------------------------}
+
+
+Procedure TBatchReportDefinition.Setid(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fid=AValue) then exit;
+ Fid:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBatchReportDefinition.Setkind(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fkind=AValue) then exit;
+ Fkind:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBatchReportDefinition.Setname(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fname=AValue) then exit;
+ Fname:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBatchReportDefinition.Setstatus(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fstatus=AValue) then exit;
+ Fstatus:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBatchReportDefinition.Set_type(AIndex : Integer; const AValue : String);
+
+begin
+ If (F_type=AValue) then exit;
+ F_type:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Class Function TBatchReportDefinition.ExportPropertyName(Const AName : String) :String;
+
+begin
+ Case AName of
+ '_type' : Result:='type';
+ else
+ Result:=Inherited ExportPropertyName(AName);
+ end;
+end;
+
+
+
+
+{ --------------------------------------------------------------------
+ TBatchReportDefinitionList
+ --------------------------------------------------------------------}
+
+
+Procedure TBatchReportDefinitionList.Setitems(AIndex : Integer; const AValue : TBatchReportDefinitionListTypeitemsArray);
+
+begin
+ If (Fitems=AValue) then exit;
+ Fitems:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBatchReportDefinitionList.Setkind(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fkind=AValue) then exit;
+ Fkind:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+//2.6.4. bug workaround
+{$IFDEF VER2_6}
+Procedure TBatchReportDefinitionList.SetArrayLength(Const AName : String; ALength : Longint);
+
+begin
+ Case AName of
+ 'items' : SetLength(Fitems,ALength);
+ else
+ Inherited SetArrayLength(AName,ALength);
+ end;
+end;
+{$ENDIF VER2_6}
+
+
+
+
+{ --------------------------------------------------------------------
+ TBatchReportList
+ --------------------------------------------------------------------}
+
+
+Procedure TBatchReportList.Setitems(AIndex : Integer; const AValue : TBatchReportListTypeitemsArray);
+
+begin
+ If (Fitems=AValue) then exit;
+ Fitems:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBatchReportList.Setkind(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fkind=AValue) then exit;
+ Fkind:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+//2.6.4. bug workaround
+{$IFDEF VER2_6}
+Procedure TBatchReportList.SetArrayLength(Const AName : String; ALength : Longint);
+
+begin
+ Case AName of
+ 'items' : SetLength(Fitems,ALength);
+ else
+ Inherited SetArrayLength(AName,ALength);
+ end;
+end;
+{$ENDIF VER2_6}
+
+
+
+
+{ --------------------------------------------------------------------
+ TGroupTypecontentDetails
+ --------------------------------------------------------------------}
+
+
+Procedure TGroupTypecontentDetails.SetitemCount(AIndex : Integer; const AValue : String);
+
+begin
+ If (FitemCount=AValue) then exit;
+ FitemCount:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroupTypecontentDetails.SetitemType(AIndex : Integer; const AValue : String);
+
+begin
+ If (FitemType=AValue) then exit;
+ FitemType:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+
+
+{ --------------------------------------------------------------------
+ TGroupTypesnippet
+ --------------------------------------------------------------------}
+
+
+Procedure TGroupTypesnippet.SetpublishedAt(AIndex : Integer; const AValue : TDatetime);
+
+begin
+ If (FpublishedAt=AValue) then exit;
+ FpublishedAt:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroupTypesnippet.Settitle(AIndex : Integer; const AValue : String);
+
+begin
+ If (Ftitle=AValue) then exit;
+ Ftitle:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+
+
+{ --------------------------------------------------------------------
+ TGroup
+ --------------------------------------------------------------------}
+
+
+Procedure TGroup.SetcontentDetails(AIndex : Integer; const AValue : TGroupTypecontentDetails);
+
+begin
+ If (FcontentDetails=AValue) then exit;
+ FcontentDetails:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroup.Setetag(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fetag=AValue) then exit;
+ Fetag:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroup.Setid(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fid=AValue) then exit;
+ Fid:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroup.Setkind(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fkind=AValue) then exit;
+ Fkind:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroup.Setsnippet(AIndex : Integer; const AValue : TGroupTypesnippet);
+
+begin
+ If (Fsnippet=AValue) then exit;
+ Fsnippet:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+
+
+{ --------------------------------------------------------------------
+ TGroupItemTyperesource
+ --------------------------------------------------------------------}
+
+
+Procedure TGroupItemTyperesource.Setid(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fid=AValue) then exit;
+ Fid:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroupItemTyperesource.Setkind(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fkind=AValue) then exit;
+ Fkind:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+
+
+{ --------------------------------------------------------------------
+ TGroupItem
+ --------------------------------------------------------------------}
+
+
+Procedure TGroupItem.Setetag(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fetag=AValue) then exit;
+ Fetag:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroupItem.SetgroupId(AIndex : Integer; const AValue : String);
+
+begin
+ If (FgroupId=AValue) then exit;
+ FgroupId:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroupItem.Setid(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fid=AValue) then exit;
+ Fid:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroupItem.Setkind(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fkind=AValue) then exit;
+ Fkind:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroupItem.Setresource(AIndex : Integer; const AValue : TGroupItemTyperesource);
+
+begin
+ If (Fresource=AValue) then exit;
+ Fresource:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+
+
+{ --------------------------------------------------------------------
+ TGroupItemListResponse
+ --------------------------------------------------------------------}
+
+
+Procedure TGroupItemListResponse.Setetag(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fetag=AValue) then exit;
+ Fetag:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroupItemListResponse.Setitems(AIndex : Integer; const AValue : TGroupItemListResponseTypeitemsArray);
+
+begin
+ If (Fitems=AValue) then exit;
+ Fitems:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroupItemListResponse.Setkind(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fkind=AValue) then exit;
+ Fkind:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+//2.6.4. bug workaround
+{$IFDEF VER2_6}
+Procedure TGroupItemListResponse.SetArrayLength(Const AName : String; ALength : Longint);
+
+begin
+ Case AName of
+ 'items' : SetLength(Fitems,ALength);
+ else
+ Inherited SetArrayLength(AName,ALength);
+ end;
+end;
+{$ENDIF VER2_6}
+
+
+
+
+{ --------------------------------------------------------------------
+ TGroupListResponse
+ --------------------------------------------------------------------}
+
+
+Procedure TGroupListResponse.Setetag(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fetag=AValue) then exit;
+ Fetag:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroupListResponse.Setitems(AIndex : Integer; const AValue : TGroupListResponseTypeitemsArray);
+
+begin
+ If (Fitems=AValue) then exit;
+ Fitems:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroupListResponse.Setkind(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fkind=AValue) then exit;
+ Fkind:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TGroupListResponse.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 TGroupListResponse.SetArrayLength(Const AName : String; ALength : Longint);
+
+begin
+ Case AName of
+ 'items' : SetLength(Fitems,ALength);
+ else
+ Inherited SetArrayLength(AName,ALength);
+ end;
+end;
+{$ENDIF VER2_6}
+
+
+
+
+{ --------------------------------------------------------------------
+ TResultTableTypecolumnHeadersItem
+ --------------------------------------------------------------------}
+
+
+Procedure TResultTableTypecolumnHeadersItem.SetcolumnType(AIndex : Integer; const AValue : String);
+
+begin
+ If (FcolumnType=AValue) then exit;
+ FcolumnType:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TResultTableTypecolumnHeadersItem.SetdataType(AIndex : Integer; const AValue : String);
+
+begin
+ If (FdataType=AValue) then exit;
+ FdataType:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TResultTableTypecolumnHeadersItem.Setname(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fname=AValue) then exit;
+ Fname:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+
+
+{ --------------------------------------------------------------------
+ TResultTable
+ --------------------------------------------------------------------}
+
+
+Procedure TResultTable.SetcolumnHeaders(AIndex : Integer; const AValue : TResultTableTypecolumnHeadersArray);
+
+begin
+ If (FcolumnHeaders=AValue) then exit;
+ FcolumnHeaders:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TResultTable.Setkind(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fkind=AValue) then exit;
+ Fkind:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TResultTable.Setrows(AIndex : Integer; const AValue : TResultTableTyperowsArray);
+
+begin
+ If (Frows=AValue) then exit;
+ Frows:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+//2.6.4. bug workaround
+{$IFDEF VER2_6}
+Procedure TResultTable.SetArrayLength(Const AName : String; ALength : Longint);
+
+begin
+ Case AName of
+ 'columnheaders' : SetLength(FcolumnHeaders,ALength);
+ 'rows' : SetLength(Frows,ALength);
+ else
+ Inherited SetArrayLength(AName,ALength);
+ end;
+end;
+{$ENDIF VER2_6}
+
+
+
+
+{ --------------------------------------------------------------------
+ TBatchReportDefinitionsResource
+ --------------------------------------------------------------------}
+
+
+Class Function TBatchReportDefinitionsResource.ResourceName : String;
+
+begin
+ Result:='batchReportDefinitions';
+end;
+
+Class Function TBatchReportDefinitionsResource.DefaultAPI : TGoogleAPIClass;
+
+begin
+ Result:=TyoutubeAnalyticsAPI;
+end;
+
+Function TBatchReportDefinitionsResource.List(AQuery : string = '') : TBatchReportDefinitionList;
+
+Const
+ _HTTPMethod = 'GET';
+ _Path = 'batchReportDefinitions';
+ _Methodid = 'youtubeAnalytics.batchReportDefinitions.list';
+
+begin
+ Result:=ServiceCall(_HTTPMethod,_Path,AQuery,Nil,TBatchReportDefinitionList) as TBatchReportDefinitionList;
+end;
+
+
+Function TBatchReportDefinitionsResource.List(AQuery : TBatchReportDefinitionslistOptions) : TBatchReportDefinitionList;
+
+Var
+ _Q : String;
+
+begin
+ _Q:='';
+ AddToQuery(_Q,'onBehalfOfContentOwner',AQuery.onBehalfOfContentOwner);
+ Result:=List(_Q);
+end;
+
+
+
+{ --------------------------------------------------------------------
+ TBatchReportsResource
+ --------------------------------------------------------------------}
+
+
+Class Function TBatchReportsResource.ResourceName : String;
+
+begin
+ Result:='batchReports';
+end;
+
+Class Function TBatchReportsResource.DefaultAPI : TGoogleAPIClass;
+
+begin
+ Result:=TyoutubeAnalyticsAPI;
+end;
+
+Function TBatchReportsResource.List(AQuery : string = '') : TBatchReportList;
+
+Const
+ _HTTPMethod = 'GET';
+ _Path = 'batchReports';
+ _Methodid = 'youtubeAnalytics.batchReports.list';
+
+begin
+ Result:=ServiceCall(_HTTPMethod,_Path,AQuery,Nil,TBatchReportList) as TBatchReportList;
+end;
+
+
+Function TBatchReportsResource.List(AQuery : TBatchReportslistOptions) : TBatchReportList;
+
+Var
+ _Q : String;
+
+begin
+ _Q:='';
+ AddToQuery(_Q,'batchReportDefinitionId',AQuery.batchReportDefinitionId);
+ AddToQuery(_Q,'onBehalfOfContentOwner',AQuery.onBehalfOfContentOwner);
+ Result:=List(_Q);
+end;
+
+
+
+{ --------------------------------------------------------------------
+ TGroupItemsResource
+ --------------------------------------------------------------------}
+
+
+Class Function TGroupItemsResource.ResourceName : String;
+
+begin
+ Result:='groupItems';
+end;
+
+Class Function TGroupItemsResource.DefaultAPI : TGoogleAPIClass;
+
+begin
+ Result:=TyoutubeAnalyticsAPI;
+end;
+
+Procedure TGroupItemsResource.Delete(AQuery : string = '');
+
+Const
+ _HTTPMethod = 'DELETE';
+ _Path = 'groupItems';
+ _Methodid = 'youtubeAnalytics.groupItems.delete';
+
+begin
+ ServiceCall(_HTTPMethod,_Path,AQuery,Nil,Nil);
+end;
+
+
+Procedure TGroupItemsResource.Delete(AQuery : TGroupItemsdeleteOptions);
+
+Var
+ _Q : String;
+
+begin
+ _Q:='';
+ AddToQuery(_Q,'id',AQuery.id);
+ AddToQuery(_Q,'onBehalfOfContentOwner',AQuery.onBehalfOfContentOwner);
+ Delete(_Q);
+end;
+
+Function TGroupItemsResource.Insert(aGroupItem : TGroupItem; AQuery : string = '') : TGroupItem;
+
+Const
+ _HTTPMethod = 'POST';
+ _Path = 'groupItems';
+ _Methodid = 'youtubeAnalytics.groupItems.insert';
+
+begin
+ Result:=ServiceCall(_HTTPMethod,_Path,AQuery,aGroupItem,TGroupItem) as TGroupItem;
+end;
+
+
+Function TGroupItemsResource.Insert(aGroupItem : TGroupItem; AQuery : TGroupItemsinsertOptions) : TGroupItem;
+
+Var
+ _Q : String;
+
+begin
+ _Q:='';
+ AddToQuery(_Q,'onBehalfOfContentOwner',AQuery.onBehalfOfContentOwner);
+ Result:=Insert(aGroupItem,_Q);
+end;
+
+Function TGroupItemsResource.List(AQuery : string = '') : TGroupItemListResponse;
+
+Const
+ _HTTPMethod = 'GET';
+ _Path = 'groupItems';
+ _Methodid = 'youtubeAnalytics.groupItems.list';
+
+begin
+ Result:=ServiceCall(_HTTPMethod,_Path,AQuery,Nil,TGroupItemListResponse) as TGroupItemListResponse;
+end;
+
+
+Function TGroupItemsResource.List(AQuery : TGroupItemslistOptions) : TGroupItemListResponse;
+
+Var
+ _Q : String;
+
+begin
+ _Q:='';
+ AddToQuery(_Q,'groupId',AQuery.groupId);
+ AddToQuery(_Q,'onBehalfOfContentOwner',AQuery.onBehalfOfContentOwner);
+ Result:=List(_Q);
+end;
+
+
+
+{ --------------------------------------------------------------------
+ TGroupsResource
+ --------------------------------------------------------------------}
+
+
+Class Function TGroupsResource.ResourceName : String;
+
+begin
+ Result:='groups';
+end;
+
+Class Function TGroupsResource.DefaultAPI : TGoogleAPIClass;
+
+begin
+ Result:=TyoutubeAnalyticsAPI;
+end;
+
+Procedure TGroupsResource.Delete(AQuery : string = '');
+
+Const
+ _HTTPMethod = 'DELETE';
+ _Path = 'groups';
+ _Methodid = 'youtubeAnalytics.groups.delete';
+
+begin
+ ServiceCall(_HTTPMethod,_Path,AQuery,Nil,Nil);
+end;
+
+
+Procedure TGroupsResource.Delete(AQuery : TGroupsdeleteOptions);
+
+Var
+ _Q : String;
+
+begin
+ _Q:='';
+ AddToQuery(_Q,'id',AQuery.id);
+ AddToQuery(_Q,'onBehalfOfContentOwner',AQuery.onBehalfOfContentOwner);
+ Delete(_Q);
+end;
+
+Function TGroupsResource.Insert(aGroup : TGroup; AQuery : string = '') : TGroup;
+
+Const
+ _HTTPMethod = 'POST';
+ _Path = 'groups';
+ _Methodid = 'youtubeAnalytics.groups.insert';
+
+begin
+ Result:=ServiceCall(_HTTPMethod,_Path,AQuery,aGroup,TGroup) as TGroup;
+end;
+
+
+Function TGroupsResource.Insert(aGroup : TGroup; AQuery : TGroupsinsertOptions) : TGroup;
+
+Var
+ _Q : String;
+
+begin
+ _Q:='';
+ AddToQuery(_Q,'onBehalfOfContentOwner',AQuery.onBehalfOfContentOwner);
+ Result:=Insert(aGroup,_Q);
+end;
+
+Function TGroupsResource.List(AQuery : string = '') : TGroupListResponse;
+
+Const
+ _HTTPMethod = 'GET';
+ _Path = 'groups';
+ _Methodid = 'youtubeAnalytics.groups.list';
+
+begin
+ Result:=ServiceCall(_HTTPMethod,_Path,AQuery,Nil,TGroupListResponse) as TGroupListResponse;
+end;
+
+
+Function TGroupsResource.List(AQuery : TGroupslistOptions) : TGroupListResponse;
+
+Var
+ _Q : String;
+
+begin
+ _Q:='';
+ AddToQuery(_Q,'id',AQuery.id);
+ AddToQuery(_Q,'mine',AQuery.mine);
+ AddToQuery(_Q,'onBehalfOfContentOwner',AQuery.onBehalfOfContentOwner);
+ AddToQuery(_Q,'pageToken',AQuery.pageToken);
+ Result:=List(_Q);
+end;
+
+Function TGroupsResource.Update(aGroup : TGroup; AQuery : string = '') : TGroup;
+
+Const
+ _HTTPMethod = 'PUT';
+ _Path = 'groups';
+ _Methodid = 'youtubeAnalytics.groups.update';
+
+begin
+ Result:=ServiceCall(_HTTPMethod,_Path,AQuery,aGroup,TGroup) as TGroup;
+end;
+
+
+Function TGroupsResource.Update(aGroup : TGroup; AQuery : TGroupsupdateOptions) : TGroup;
+
+Var
+ _Q : String;
+
+begin
+ _Q:='';
+ AddToQuery(_Q,'onBehalfOfContentOwner',AQuery.onBehalfOfContentOwner);
+ Result:=Update(aGroup,_Q);
+end;
+
+
+
+{ --------------------------------------------------------------------
+ TReportsResource
+ --------------------------------------------------------------------}
+
+
+Class Function TReportsResource.ResourceName : String;
+
+begin
+ Result:='reports';
+end;
+
+Class Function TReportsResource.DefaultAPI : TGoogleAPIClass;
+
+begin
+ Result:=TyoutubeAnalyticsAPI;
+end;
+
+Function TReportsResource.Query(AQuery : string = '') : TResultTable;
+
+Const
+ _HTTPMethod = 'GET';
+ _Path = 'reports';
+ _Methodid = 'youtubeAnalytics.reports.query';
+
+begin
+ Result:=ServiceCall(_HTTPMethod,_Path,AQuery,Nil,TResultTable) as TResultTable;
+end;
+
+
+Function TReportsResource.Query(AQuery : TReportsqueryOptions) : TResultTable;
+
+Var
+ _Q : String;
+
+begin
+ _Q:='';
+ AddToQuery(_Q,'currency',AQuery.currency);
+ AddToQuery(_Q,'dimensions',AQuery.dimensions);
+ AddToQuery(_Q,'end-date',AQuery.enddate);
+ AddToQuery(_Q,'filters',AQuery.filters);
+ AddToQuery(_Q,'ids',AQuery.ids);
+ AddToQuery(_Q,'max-results',AQuery.maxresults);
+ AddToQuery(_Q,'metrics',AQuery.metrics);
+ AddToQuery(_Q,'sort',AQuery.sort);
+ AddToQuery(_Q,'start-date',AQuery.startdate);
+ AddToQuery(_Q,'start-index',AQuery.startindex);
+ Result:=Query(_Q);
+end;
+
+
+
+{ --------------------------------------------------------------------
+ TYoutubeAnalyticsAPI
+ --------------------------------------------------------------------}
+
+Class Function TYoutubeAnalyticsAPI.APIName : String;
+
+begin
+ Result:='youtubeAnalytics';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIVersion : String;
+
+begin
+ Result:='v1';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIRevision : String;
+
+begin
+ Result:='20160513';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIID : String;
+
+begin
+ Result:='youtubeAnalytics:v1';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APITitle : String;
+
+begin
+ Result:='YouTube Analytics API';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIDescription : String;
+
+begin
+ Result:='Retrieves your YouTube Analytics data.';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIOwnerDomain : String;
+
+begin
+ Result:='google.com';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIOwnerName : String;
+
+begin
+ Result:='Google';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIIcon16 : String;
+
+begin
+ Result:='https://www.google.com/images/icons/product/youtube-16.png';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIIcon32 : String;
+
+begin
+ Result:='https://www.google.com/images/icons/product/youtube-32.png';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIdocumentationLink : String;
+
+begin
+ Result:='http://developers.google.com/youtube/analytics/';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIrootUrl : string;
+
+begin
+ Result:='https://www.googleapis.com/';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIbasePath : string;
+
+begin
+ Result:='/youtube/analytics/v1/';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIbaseURL : String;
+
+begin
+ Result:='https://www.googleapis.com/youtube/analytics/v1/';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIProtocol : string;
+
+begin
+ Result:='rest';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIservicePath : string;
+
+begin
+ Result:='youtube/analytics/v1/';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIbatchPath : String;
+
+begin
+ Result:='batch';
+end;
+
+Class Function TYoutubeAnalyticsAPI.APIAuthScopes : TScopeInfoArray;
+
+begin
+ SetLength(Result,5);
+ Result[0].Name:='https://www.googleapis.com/auth/youtube';
+ Result[0].Description:='Manage your YouTube account';
+ Result[1].Name:='https://www.googleapis.com/auth/youtube.readonly';
+ Result[1].Description:='View your YouTube account';
+ Result[2].Name:='https://www.googleapis.com/auth/youtubepartner';
+ Result[2].Description:='View and manage your assets and associated content on YouTube';
+ Result[3].Name:='https://www.googleapis.com/auth/yt-analytics-monetary.readonly';
+ Result[3].Description:='View monetary and non-monetary YouTube Analytics reports for your YouTube content';
+ Result[4].Name:='https://www.googleapis.com/auth/yt-analytics.readonly';
+ Result[4].Description:='View YouTube Analytics reports for your YouTube content';
+
+end;
+
+Class Function TYoutubeAnalyticsAPI.APINeedsAuth : Boolean;
+
+begin
+ Result:=True;
+end;
+
+Class Procedure TYoutubeAnalyticsAPI.RegisterAPIResources;
+
+begin
+ TBatchReportTypeoutputsItem.RegisterObject;
+ TBatchReportTypetimeSpan.RegisterObject;
+ TBatchReport.RegisterObject;
+ TBatchReportDefinition.RegisterObject;
+ TBatchReportDefinitionList.RegisterObject;
+ TBatchReportList.RegisterObject;
+ TGroupTypecontentDetails.RegisterObject;
+ TGroupTypesnippet.RegisterObject;
+ TGroup.RegisterObject;
+ TGroupItemTyperesource.RegisterObject;
+ TGroupItem.RegisterObject;
+ TGroupItemListResponse.RegisterObject;
+ TGroupListResponse.RegisterObject;
+ TResultTableTypecolumnHeadersItem.RegisterObject;
+ TResultTable.RegisterObject;
+end;
+
+
+Function TYoutubeAnalyticsAPI.GetBatchReportDefinitionsInstance : TBatchReportDefinitionsResource;
+
+begin
+ if (FBatchReportDefinitionsInstance=Nil) then
+ FBatchReportDefinitionsInstance:=CreateBatchReportDefinitionsResource;
+ Result:=FBatchReportDefinitionsInstance;
+end;
+
+Function TYoutubeAnalyticsAPI.CreateBatchReportDefinitionsResource : TBatchReportDefinitionsResource;
+
+begin
+ Result:=CreateBatchReportDefinitionsResource(Self);
+end;
+
+
+Function TYoutubeAnalyticsAPI.CreateBatchReportDefinitionsResource(AOwner : TComponent) : TBatchReportDefinitionsResource;
+
+begin
+ Result:=TBatchReportDefinitionsResource.Create(AOwner);
+ Result.API:=Self.API;
+end;
+
+
+
+Function TYoutubeAnalyticsAPI.GetBatchReportsInstance : TBatchReportsResource;
+
+begin
+ if (FBatchReportsInstance=Nil) then
+ FBatchReportsInstance:=CreateBatchReportsResource;
+ Result:=FBatchReportsInstance;
+end;
+
+Function TYoutubeAnalyticsAPI.CreateBatchReportsResource : TBatchReportsResource;
+
+begin
+ Result:=CreateBatchReportsResource(Self);
+end;
+
+
+Function TYoutubeAnalyticsAPI.CreateBatchReportsResource(AOwner : TComponent) : TBatchReportsResource;
+
+begin
+ Result:=TBatchReportsResource.Create(AOwner);
+ Result.API:=Self.API;
+end;
+
+
+
+Function TYoutubeAnalyticsAPI.GetGroupItemsInstance : TGroupItemsResource;
+
+begin
+ if (FGroupItemsInstance=Nil) then
+ FGroupItemsInstance:=CreateGroupItemsResource;
+ Result:=FGroupItemsInstance;
+end;
+
+Function TYoutubeAnalyticsAPI.CreateGroupItemsResource : TGroupItemsResource;
+
+begin
+ Result:=CreateGroupItemsResource(Self);
+end;
+
+
+Function TYoutubeAnalyticsAPI.CreateGroupItemsResource(AOwner : TComponent) : TGroupItemsResource;
+
+begin
+ Result:=TGroupItemsResource.Create(AOwner);
+ Result.API:=Self.API;
+end;
+
+
+
+Function TYoutubeAnalyticsAPI.GetGroupsInstance : TGroupsResource;
+
+begin
+ if (FGroupsInstance=Nil) then
+ FGroupsInstance:=CreateGroupsResource;
+ Result:=FGroupsInstance;
+end;
+
+Function TYoutubeAnalyticsAPI.CreateGroupsResource : TGroupsResource;
+
+begin
+ Result:=CreateGroupsResource(Self);
+end;
+
+
+Function TYoutubeAnalyticsAPI.CreateGroupsResource(AOwner : TComponent) : TGroupsResource;
+
+begin
+ Result:=TGroupsResource.Create(AOwner);
+ Result.API:=Self.API;
+end;
+
+
+
+Function TYoutubeAnalyticsAPI.GetReportsInstance : TReportsResource;
+
+begin
+ if (FReportsInstance=Nil) then
+ FReportsInstance:=CreateReportsResource;
+ Result:=FReportsInstance;
+end;
+
+Function TYoutubeAnalyticsAPI.CreateReportsResource : TReportsResource;
+
+begin
+ Result:=CreateReportsResource(Self);
+end;
+
+
+Function TYoutubeAnalyticsAPI.CreateReportsResource(AOwner : TComponent) : TReportsResource;
+
+begin
+ Result:=TReportsResource.Create(AOwner);
+ Result.API:=Self.API;
+end;
+
+
+
+initialization
+ TYoutubeAnalyticsAPI.RegisterAPI;
+end.