summaryrefslogtreecommitdiff
path: root/packages/googleapi/src/googlecloudtrace.pp
diff options
context:
space:
mode:
Diffstat (limited to 'packages/googleapi/src/googlecloudtrace.pp')
-rw-r--r--packages/googleapi/src/googlecloudtrace.pp777
1 files changed, 777 insertions, 0 deletions
diff --git a/packages/googleapi/src/googlecloudtrace.pp b/packages/googleapi/src/googlecloudtrace.pp
new file mode 100644
index 0000000000..8c077325ec
--- /dev/null
+++ b/packages/googleapi/src/googlecloudtrace.pp
@@ -0,0 +1,777 @@
+unit googlecloudtrace;
+{$MODE objfpc}
+{$H+}
+
+interface
+
+uses sysutils, classes, googleservice, restbase, googlebase;
+
+type
+
+ //Top-level schema types
+ TListTracesResponse = Class;
+ TTrace = Class;
+ TTraceSpan = Class;
+ TTraces = Class;
+ TEmpty = Class;
+ TListTracesResponseArray = Array of TListTracesResponse;
+ TTraceArray = Array of TTrace;
+ TTraceSpanArray = Array of TTraceSpan;
+ TTracesArray = Array of TTraces;
+ TEmptyArray = Array of TEmpty;
+ //Anonymous types, using auto-generated names
+ TTraceSpanTypelabels = Class;
+ TListTracesResponseTypetracesArray = Array of TTrace;
+ TTraceTypespansArray = Array of TTraceSpan;
+ TTracesTypetracesArray = Array of TTrace;
+
+ { --------------------------------------------------------------------
+ TListTracesResponse
+ --------------------------------------------------------------------}
+
+ TListTracesResponse = Class(TGoogleBaseObject)
+ Private
+ Ftraces : TListTracesResponseTypetracesArray;
+ FnextPageToken : String;
+ Protected
+ //Property setters
+ Procedure Settraces(AIndex : Integer; const AValue : TListTracesResponseTypetracesArray); 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 traces : TListTracesResponseTypetracesArray Index 0 Read Ftraces Write Settraces;
+ Property nextPageToken : String Index 8 Read FnextPageToken Write SetnextPageToken;
+ end;
+ TListTracesResponseClass = Class of TListTracesResponse;
+
+ { --------------------------------------------------------------------
+ TTrace
+ --------------------------------------------------------------------}
+
+ TTrace = Class(TGoogleBaseObject)
+ Private
+ FprojectId : String;
+ FtraceId : String;
+ Fspans : TTraceTypespansArray;
+ Protected
+ //Property setters
+ Procedure SetprojectId(AIndex : Integer; const AValue : String); virtual;
+ Procedure SettraceId(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setspans(AIndex : Integer; const AValue : TTraceTypespansArray); virtual;
+ //2.6.4. bug workaround
+ {$IFDEF VER2_6}
+ Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
+ {$ENDIF VER2_6}
+ Public
+ Published
+ Property projectId : String Index 0 Read FprojectId Write SetprojectId;
+ Property traceId : String Index 8 Read FtraceId Write SettraceId;
+ Property spans : TTraceTypespansArray Index 16 Read Fspans Write Setspans;
+ end;
+ TTraceClass = Class of TTrace;
+
+ { --------------------------------------------------------------------
+ TTraceSpanTypelabels
+ --------------------------------------------------------------------}
+
+ TTraceSpanTypelabels = Class(TGoogleBaseObject)
+ Private
+ Protected
+ //Property setters
+ Public
+ Class Function AllowAdditionalProperties : Boolean; override;
+ Published
+ end;
+ TTraceSpanTypelabelsClass = Class of TTraceSpanTypelabels;
+
+ { --------------------------------------------------------------------
+ TTraceSpan
+ --------------------------------------------------------------------}
+
+ TTraceSpan = Class(TGoogleBaseObject)
+ Private
+ FspanId : String;
+ Fkind : String;
+ Fname : String;
+ FstartTime : String;
+ FendTime : String;
+ FparentSpanId : String;
+ Flabels : TTraceSpanTypelabels;
+ Protected
+ //Property setters
+ Procedure SetspanId(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setname(AIndex : Integer; const AValue : String); virtual;
+ Procedure SetstartTime(AIndex : Integer; const AValue : String); virtual;
+ Procedure SetendTime(AIndex : Integer; const AValue : String); virtual;
+ Procedure SetparentSpanId(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setlabels(AIndex : Integer; const AValue : TTraceSpanTypelabels); virtual;
+ Public
+ Published
+ Property spanId : String Index 0 Read FspanId Write SetspanId;
+ Property kind : String Index 8 Read Fkind Write Setkind;
+ Property name : String Index 16 Read Fname Write Setname;
+ Property startTime : String Index 24 Read FstartTime Write SetstartTime;
+ Property endTime : String Index 32 Read FendTime Write SetendTime;
+ Property parentSpanId : String Index 40 Read FparentSpanId Write SetparentSpanId;
+ Property labels : TTraceSpanTypelabels Index 48 Read Flabels Write Setlabels;
+ end;
+ TTraceSpanClass = Class of TTraceSpan;
+
+ { --------------------------------------------------------------------
+ TTraces
+ --------------------------------------------------------------------}
+
+ TTraces = Class(TGoogleBaseObject)
+ Private
+ Ftraces : TTracesTypetracesArray;
+ Protected
+ //Property setters
+ Procedure Settraces(AIndex : Integer; const AValue : TTracesTypetracesArray); virtual;
+ //2.6.4. bug workaround
+ {$IFDEF VER2_6}
+ Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
+ {$ENDIF VER2_6}
+ Public
+ Published
+ Property traces : TTracesTypetracesArray Index 0 Read Ftraces Write Settraces;
+ end;
+ TTracesClass = Class of TTraces;
+
+ { --------------------------------------------------------------------
+ TEmpty
+ --------------------------------------------------------------------}
+
+ TEmpty = Class(TGoogleBaseObject)
+ Private
+ Protected
+ //Property setters
+ Public
+ Published
+ end;
+ TEmptyClass = Class of TEmpty;
+
+ { --------------------------------------------------------------------
+ TProjectsTracesResource
+ --------------------------------------------------------------------}
+
+
+ //Optional query Options for TProjectsTracesResource, method List
+
+ TProjectsTracesListOptions = Record
+ view : String;
+ pageSize : integer;
+ pageToken : String;
+ startTime : String;
+ endTime : String;
+ filter : String;
+ orderBy : String;
+ end;
+
+ TProjectsTracesResource = Class(TGoogleResource)
+ Public
+ Class Function ResourceName : String; override;
+ Class Function DefaultAPI : TGoogleAPIClass; override;
+ Function List(projectId: string; AQuery : string = '') : TListTracesResponse;
+ Function List(projectId: string; AQuery : TProjectsTraceslistOptions) : TListTracesResponse;
+ Function Get(projectId: string; traceId: string) : TTrace;
+ end;
+
+
+ { --------------------------------------------------------------------
+ TProjectsResource
+ --------------------------------------------------------------------}
+
+ TProjectsResource = Class(TGoogleResource)
+ Private
+ FTracesInstance : TProjectsTracesResource;
+ Function GetTracesInstance : TProjectsTracesResource;virtual;
+ Public
+ Class Function ResourceName : String; override;
+ Class Function DefaultAPI : TGoogleAPIClass; override;
+ Function PatchTraces(projectId: string; aTraces : TTraces) : TEmpty;
+ Function CreateTracesResource(AOwner : TComponent) : TProjectsTracesResource;virtual;overload;
+ Function CreateTracesResource : TProjectsTracesResource;virtual;overload;
+ Property TracesResource : TProjectsTracesResource Read GetTracesInstance;
+ end;
+
+
+ { --------------------------------------------------------------------
+ TCloudtraceAPI
+ --------------------------------------------------------------------}
+
+ TCloudtraceAPI = Class(TGoogleAPI)
+ Private
+ FProjectsTracesInstance : TProjectsTracesResource;
+ FProjectsInstance : TProjectsResource;
+ Function GetProjectsTracesInstance : TProjectsTracesResource;virtual;
+ Function GetProjectsInstance : TProjectsResource;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 CreateProjectsTracesResource(AOwner : TComponent) : TProjectsTracesResource;virtual;overload;
+ Function CreateProjectsTracesResource : TProjectsTracesResource;virtual;overload;
+ Function CreateProjectsResource(AOwner : TComponent) : TProjectsResource;virtual;overload;
+ Function CreateProjectsResource : TProjectsResource;virtual;overload;
+ //Add default on-demand instances for resources
+ Property ProjectsTracesResource : TProjectsTracesResource Read GetProjectsTracesInstance;
+ Property ProjectsResource : TProjectsResource Read GetProjectsInstance;
+ end;
+
+implementation
+
+
+{ --------------------------------------------------------------------
+ TListTracesResponse
+ --------------------------------------------------------------------}
+
+
+Procedure TListTracesResponse.Settraces(AIndex : Integer; const AValue : TListTracesResponseTypetracesArray);
+
+begin
+ If (Ftraces=AValue) then exit;
+ Ftraces:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TListTracesResponse.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 TListTracesResponse.SetArrayLength(Const AName : String; ALength : Longint);
+
+begin
+ Case AName of
+ 'traces' : SetLength(Ftraces,ALength);
+ else
+ Inherited SetArrayLength(AName,ALength);
+ end;
+end;
+{$ENDIF VER2_6}
+
+
+
+
+{ --------------------------------------------------------------------
+ TTrace
+ --------------------------------------------------------------------}
+
+
+Procedure TTrace.SetprojectId(AIndex : Integer; const AValue : String);
+
+begin
+ If (FprojectId=AValue) then exit;
+ FprojectId:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TTrace.SettraceId(AIndex : Integer; const AValue : String);
+
+begin
+ If (FtraceId=AValue) then exit;
+ FtraceId:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TTrace.Setspans(AIndex : Integer; const AValue : TTraceTypespansArray);
+
+begin
+ If (Fspans=AValue) then exit;
+ Fspans:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+//2.6.4. bug workaround
+{$IFDEF VER2_6}
+Procedure TTrace.SetArrayLength(Const AName : String; ALength : Longint);
+
+begin
+ Case AName of
+ 'spans' : SetLength(Fspans,ALength);
+ else
+ Inherited SetArrayLength(AName,ALength);
+ end;
+end;
+{$ENDIF VER2_6}
+
+
+
+
+{ --------------------------------------------------------------------
+ TTraceSpanTypelabels
+ --------------------------------------------------------------------}
+
+
+Class Function TTraceSpanTypelabels.AllowAdditionalProperties : Boolean;
+
+begin
+ Result:=True;
+end;
+
+
+
+{ --------------------------------------------------------------------
+ TTraceSpan
+ --------------------------------------------------------------------}
+
+
+Procedure TTraceSpan.SetspanId(AIndex : Integer; const AValue : String);
+
+begin
+ If (FspanId=AValue) then exit;
+ FspanId:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TTraceSpan.Setkind(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fkind=AValue) then exit;
+ Fkind:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TTraceSpan.Setname(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fname=AValue) then exit;
+ Fname:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TTraceSpan.SetstartTime(AIndex : Integer; const AValue : String);
+
+begin
+ If (FstartTime=AValue) then exit;
+ FstartTime:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TTraceSpan.SetendTime(AIndex : Integer; const AValue : String);
+
+begin
+ If (FendTime=AValue) then exit;
+ FendTime:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TTraceSpan.SetparentSpanId(AIndex : Integer; const AValue : String);
+
+begin
+ If (FparentSpanId=AValue) then exit;
+ FparentSpanId:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TTraceSpan.Setlabels(AIndex : Integer; const AValue : TTraceSpanTypelabels);
+
+begin
+ If (Flabels=AValue) then exit;
+ Flabels:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+
+
+{ --------------------------------------------------------------------
+ TTraces
+ --------------------------------------------------------------------}
+
+
+Procedure TTraces.Settraces(AIndex : Integer; const AValue : TTracesTypetracesArray);
+
+begin
+ If (Ftraces=AValue) then exit;
+ Ftraces:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+//2.6.4. bug workaround
+{$IFDEF VER2_6}
+Procedure TTraces.SetArrayLength(Const AName : String; ALength : Longint);
+
+begin
+ Case AName of
+ 'traces' : SetLength(Ftraces,ALength);
+ else
+ Inherited SetArrayLength(AName,ALength);
+ end;
+end;
+{$ENDIF VER2_6}
+
+
+
+
+{ --------------------------------------------------------------------
+ TEmpty
+ --------------------------------------------------------------------}
+
+
+
+
+{ --------------------------------------------------------------------
+ TProjectsTracesResource
+ --------------------------------------------------------------------}
+
+
+Class Function TProjectsTracesResource.ResourceName : String;
+
+begin
+ Result:='traces';
+end;
+
+Class Function TProjectsTracesResource.DefaultAPI : TGoogleAPIClass;
+
+begin
+ Result:=TcloudtraceAPI;
+end;
+
+Function TProjectsTracesResource.List(projectId: string; AQuery : string = '') : TListTracesResponse;
+
+Const
+ _HTTPMethod = 'GET';
+ _Path = 'v1/projects/{projectId}/traces';
+ _Methodid = 'cloudtrace.projects.traces.list';
+
+Var
+ _P : String;
+
+begin
+ _P:=SubstitutePath(_Path,['projectId',projectId]);
+ Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TListTracesResponse) as TListTracesResponse;
+end;
+
+
+Function TProjectsTracesResource.List(projectId: string; AQuery : TProjectsTraceslistOptions) : TListTracesResponse;
+
+Var
+ _Q : String;
+
+begin
+ _Q:='';
+ AddToQuery(_Q,'view',AQuery.view);
+ AddToQuery(_Q,'pageSize',AQuery.pageSize);
+ AddToQuery(_Q,'pageToken',AQuery.pageToken);
+ AddToQuery(_Q,'startTime',AQuery.startTime);
+ AddToQuery(_Q,'endTime',AQuery.endTime);
+ AddToQuery(_Q,'filter',AQuery.filter);
+ AddToQuery(_Q,'orderBy',AQuery.orderBy);
+ Result:=List(projectId,_Q);
+end;
+
+Function TProjectsTracesResource.Get(projectId: string; traceId: string) : TTrace;
+
+Const
+ _HTTPMethod = 'GET';
+ _Path = 'v1/projects/{projectId}/traces/{traceId}';
+ _Methodid = 'cloudtrace.projects.traces.get';
+
+Var
+ _P : String;
+
+begin
+ _P:=SubstitutePath(_Path,['projectId',projectId,'traceId',traceId]);
+ Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TTrace) as TTrace;
+end;
+
+
+
+{ --------------------------------------------------------------------
+ TProjectsResource
+ --------------------------------------------------------------------}
+
+
+Class Function TProjectsResource.ResourceName : String;
+
+begin
+ Result:='projects';
+end;
+
+Class Function TProjectsResource.DefaultAPI : TGoogleAPIClass;
+
+begin
+ Result:=TcloudtraceAPI;
+end;
+
+Function TProjectsResource.PatchTraces(projectId: string; aTraces : TTraces) : TEmpty;
+
+Const
+ _HTTPMethod = 'PATCH';
+ _Path = 'v1/projects/{projectId}/traces';
+ _Methodid = 'cloudtrace.projects.patchTraces';
+
+Var
+ _P : String;
+
+begin
+ _P:=SubstitutePath(_Path,['projectId',projectId]);
+ Result:=ServiceCall(_HTTPMethod,_P,'',aTraces,TEmpty) as TEmpty;
+end;
+
+
+
+Function TProjectsResource.GetTracesInstance : TProjectsTracesResource;
+
+begin
+ if (FTracesInstance=Nil) then
+ FTracesInstance:=CreateTracesResource;
+ Result:=FTracesInstance;
+end;
+
+Function TProjectsResource.CreateTracesResource : TProjectsTracesResource;
+
+begin
+ Result:=CreateTracesResource(Self);
+end;
+
+
+Function TProjectsResource.CreateTracesResource(AOwner : TComponent) : TProjectsTracesResource;
+
+begin
+ Result:=TProjectsTracesResource.Create(AOwner);
+ Result.API:=Self.API;
+end;
+
+
+
+{ --------------------------------------------------------------------
+ TCloudtraceAPI
+ --------------------------------------------------------------------}
+
+Class Function TCloudtraceAPI.APIName : String;
+
+begin
+ Result:='cloudtrace';
+end;
+
+Class Function TCloudtraceAPI.APIVersion : String;
+
+begin
+ Result:='v1';
+end;
+
+Class Function TCloudtraceAPI.APIRevision : String;
+
+begin
+ Result:='20160518';
+end;
+
+Class Function TCloudtraceAPI.APIID : String;
+
+begin
+ Result:='cloudtrace:v1';
+end;
+
+Class Function TCloudtraceAPI.APITitle : String;
+
+begin
+ Result:='Google Cloud Trace API';
+end;
+
+Class Function TCloudtraceAPI.APIDescription : String;
+
+begin
+ Result:='Send and retrieve trace data from Google Cloud Trace. Data is generated and available by default for all App Engine applications. Data from other applications can be written to Cloud Trace for display, reporting, and analysis.';
+end;
+
+Class Function TCloudtraceAPI.APIOwnerDomain : String;
+
+begin
+ Result:='google.com';
+end;
+
+Class Function TCloudtraceAPI.APIOwnerName : String;
+
+begin
+ Result:='Google';
+end;
+
+Class Function TCloudtraceAPI.APIIcon16 : String;
+
+begin
+ Result:='http://www.google.com/images/icons/product/search-16.gif';
+end;
+
+Class Function TCloudtraceAPI.APIIcon32 : String;
+
+begin
+ Result:='http://www.google.com/images/icons/product/search-32.gif';
+end;
+
+Class Function TCloudtraceAPI.APIdocumentationLink : String;
+
+begin
+ Result:='https://cloud.google.com/tools/cloud-trace';
+end;
+
+Class Function TCloudtraceAPI.APIrootUrl : string;
+
+begin
+ Result:='https://cloudtrace.googleapis.com/';
+end;
+
+Class Function TCloudtraceAPI.APIbasePath : string;
+
+begin
+ Result:='';
+end;
+
+Class Function TCloudtraceAPI.APIbaseURL : String;
+
+begin
+ Result:='https://cloudtrace.googleapis.com/';
+end;
+
+Class Function TCloudtraceAPI.APIProtocol : string;
+
+begin
+ Result:='rest';
+end;
+
+Class Function TCloudtraceAPI.APIservicePath : string;
+
+begin
+ Result:='';
+end;
+
+Class Function TCloudtraceAPI.APIbatchPath : String;
+
+begin
+ Result:='batch';
+end;
+
+Class Function TCloudtraceAPI.APIAuthScopes : TScopeInfoArray;
+
+begin
+ SetLength(Result,3);
+ Result[0].Name:='https://www.googleapis.com/auth/cloud-platform';
+ Result[0].Description:='View and manage your data across Google Cloud Platform services';
+ Result[1].Name:='https://www.googleapis.com/auth/trace.append';
+ Result[1].Description:='Write Trace data for a project or application';
+ Result[2].Name:='https://www.googleapis.com/auth/trace.readonly';
+ Result[2].Description:='Read Trace data for a project or application';
+
+end;
+
+Class Function TCloudtraceAPI.APINeedsAuth : Boolean;
+
+begin
+ Result:=True;
+end;
+
+Class Procedure TCloudtraceAPI.RegisterAPIResources;
+
+begin
+ TListTracesResponse.RegisterObject;
+ TTrace.RegisterObject;
+ TTraceSpanTypelabels.RegisterObject;
+ TTraceSpan.RegisterObject;
+ TTraces.RegisterObject;
+ TEmpty.RegisterObject;
+end;
+
+
+Function TCloudtraceAPI.GetProjectsTracesInstance : TProjectsTracesResource;
+
+begin
+ if (FProjectsTracesInstance=Nil) then
+ FProjectsTracesInstance:=CreateProjectsTracesResource;
+ Result:=FProjectsTracesInstance;
+end;
+
+Function TCloudtraceAPI.CreateProjectsTracesResource : TProjectsTracesResource;
+
+begin
+ Result:=CreateProjectsTracesResource(Self);
+end;
+
+
+Function TCloudtraceAPI.CreateProjectsTracesResource(AOwner : TComponent) : TProjectsTracesResource;
+
+begin
+ Result:=TProjectsTracesResource.Create(AOwner);
+ Result.API:=Self.API;
+end;
+
+
+
+Function TCloudtraceAPI.GetProjectsInstance : TProjectsResource;
+
+begin
+ if (FProjectsInstance=Nil) then
+ FProjectsInstance:=CreateProjectsResource;
+ Result:=FProjectsInstance;
+end;
+
+Function TCloudtraceAPI.CreateProjectsResource : TProjectsResource;
+
+begin
+ Result:=CreateProjectsResource(Self);
+end;
+
+
+Function TCloudtraceAPI.CreateProjectsResource(AOwner : TComponent) : TProjectsResource;
+
+begin
+ Result:=TProjectsResource.Create(AOwner);
+ Result.API:=Self.API;
+end;
+
+
+
+initialization
+ TCloudtraceAPI.RegisterAPI;
+end.