Repository URL to install this package:
|
Version:
3.2.0 ▾
|
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.