Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
fpc-src / usr / share / fpcsrc / 3.2.0 / packages / googleapi / src / googlelogging.pp
Size: Mime:
unit googlelogging;
{$MODE objfpc}
{$H+}

interface

uses sysutils, classes, googleservice, restbase, googlebase;

type
  
  //Top-level schema types
  TEmpty = Class;
  TWriteLogEntriesRequest = Class;
  TMonitoredResource = Class;
  TLogEntry = Class;
  THttpRequest = Class;
  TLogEntryOperation = Class;
  TWriteLogEntriesResponse = Class;
  TListLogEntriesRequest = Class;
  TListLogEntriesResponse = Class;
  TStatus = Class;
  TListMonitoredResourceDescriptorsResponse = Class;
  TMonitoredResourceDescriptor = Class;
  TLabelDescriptor = Class;
  TListSinksResponse = Class;
  TLogSink = Class;
  TListLogMetricsResponse = Class;
  TLogMetric = Class;
  TRequestLog = Class;
  TLogLine = Class;
  TSourceLocation = Class;
  TSourceReference = Class;
  TEmptyArray = Array of TEmpty;
  TWriteLogEntriesRequestArray = Array of TWriteLogEntriesRequest;
  TMonitoredResourceArray = Array of TMonitoredResource;
  TLogEntryArray = Array of TLogEntry;
  THttpRequestArray = Array of THttpRequest;
  TLogEntryOperationArray = Array of TLogEntryOperation;
  TWriteLogEntriesResponseArray = Array of TWriteLogEntriesResponse;
  TListLogEntriesRequestArray = Array of TListLogEntriesRequest;
  TListLogEntriesResponseArray = Array of TListLogEntriesResponse;
  TStatusArray = Array of TStatus;
  TListMonitoredResourceDescriptorsResponseArray = Array of TListMonitoredResourceDescriptorsResponse;
  TMonitoredResourceDescriptorArray = Array of TMonitoredResourceDescriptor;
  TLabelDescriptorArray = Array of TLabelDescriptor;
  TListSinksResponseArray = Array of TListSinksResponse;
  TLogSinkArray = Array of TLogSink;
  TListLogMetricsResponseArray = Array of TListLogMetricsResponse;
  TLogMetricArray = Array of TLogMetric;
  TRequestLogArray = Array of TRequestLog;
  TLogLineArray = Array of TLogLine;
  TSourceLocationArray = Array of TSourceLocation;
  TSourceReferenceArray = Array of TSourceReference;
  //Anonymous types, using auto-generated names
  TWriteLogEntriesRequestTypelabels = Class;
  TMonitoredResourceTypelabels = Class;
  TLogEntryTypeprotoPayload = Class;
  TLogEntryTypejsonPayload = Class;
  TLogEntryTypelabels = Class;
  TListLogEntriesResponseTypeprojectIdErrors = Class;
  TStatusTypedetailsItem = Class;
  TWriteLogEntriesRequestTypeentriesArray = Array of TLogEntry;
  TListLogEntriesResponseTypeentriesArray = Array of TLogEntry;
  TStatusTypedetailsArray = Array of TStatusTypedetailsItem;
  TListMonitoredResourceDescriptorsResponseTyperesourceDescriptorsArray = Array of TMonitoredResourceDescriptor;
  TMonitoredResourceDescriptorTypelabelsArray = Array of TLabelDescriptor;
  TListSinksResponseTypesinksArray = Array of TLogSink;
  TListLogMetricsResponseTypemetricsArray = Array of TLogMetric;
  TRequestLogTypelineArray = Array of TLogLine;
  TRequestLogTypesourceReferenceArray = Array of TSourceReference;
  
  { --------------------------------------------------------------------
    TEmpty
    --------------------------------------------------------------------}
  
  TEmpty = Class(TGoogleBaseObject)
  Private
  Protected
    //Property setters
  Public
  Published
  end;
  TEmptyClass = Class of TEmpty;
  
  { --------------------------------------------------------------------
    TWriteLogEntriesRequestTypelabels
    --------------------------------------------------------------------}
  
  TWriteLogEntriesRequestTypelabels = Class(TGoogleBaseObject)
  Private
  Protected
    //Property setters
  Public
    Class Function AllowAdditionalProperties : Boolean; override;
  Published
  end;
  TWriteLogEntriesRequestTypelabelsClass = Class of TWriteLogEntriesRequestTypelabels;
  
  { --------------------------------------------------------------------
    TWriteLogEntriesRequest
    --------------------------------------------------------------------}
  
  TWriteLogEntriesRequest = Class(TGoogleBaseObject)
  Private
    FlogName : String;
    Fresource : TMonitoredResource;
    Flabels : TWriteLogEntriesRequestTypelabels;
    Fentries : TWriteLogEntriesRequestTypeentriesArray;
    FpartialSuccess : boolean;
  Protected
    //Property setters
    Procedure SetlogName(AIndex : Integer; const AValue : String); virtual;
    Procedure Setresource(AIndex : Integer; const AValue : TMonitoredResource); virtual;
    Procedure Setlabels(AIndex : Integer; const AValue : TWriteLogEntriesRequestTypelabels); virtual;
    Procedure Setentries(AIndex : Integer; const AValue : TWriteLogEntriesRequestTypeentriesArray); virtual;
    Procedure SetpartialSuccess(AIndex : Integer; const AValue : boolean); virtual;
    //2.6.4. bug workaround
    {$IFDEF VER2_6}
    Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
    {$ENDIF VER2_6}
  Public
  Published
    Property logName : String Index 0 Read FlogName Write SetlogName;
    Property resource : TMonitoredResource Index 8 Read Fresource Write Setresource;
    Property labels : TWriteLogEntriesRequestTypelabels Index 16 Read Flabels Write Setlabels;
    Property entries : TWriteLogEntriesRequestTypeentriesArray Index 24 Read Fentries Write Setentries;
    Property partialSuccess : boolean Index 32 Read FpartialSuccess Write SetpartialSuccess;
  end;
  TWriteLogEntriesRequestClass = Class of TWriteLogEntriesRequest;
  
  { --------------------------------------------------------------------
    TMonitoredResourceTypelabels
    --------------------------------------------------------------------}
  
  TMonitoredResourceTypelabels = Class(TGoogleBaseObject)
  Private
  Protected
    //Property setters
  Public
    Class Function AllowAdditionalProperties : Boolean; override;
  Published
  end;
  TMonitoredResourceTypelabelsClass = Class of TMonitoredResourceTypelabels;
  
  { --------------------------------------------------------------------
    TMonitoredResource
    --------------------------------------------------------------------}
  
  TMonitoredResource = Class(TGoogleBaseObject)
  Private
    F_type : String;
    Flabels : TMonitoredResourceTypelabels;
  Protected
    Class Function ExportPropertyName(Const AName : String) : string; override;
    //Property setters
    Procedure Set_type(AIndex : Integer; const AValue : String); virtual;
    Procedure Setlabels(AIndex : Integer; const AValue : TMonitoredResourceTypelabels); virtual;
  Public
  Published
    Property _type : String Index 0 Read F_type Write Set_type;
    Property labels : TMonitoredResourceTypelabels Index 8 Read Flabels Write Setlabels;
  end;
  TMonitoredResourceClass = Class of TMonitoredResource;
  
  { --------------------------------------------------------------------
    TLogEntryTypeprotoPayload
    --------------------------------------------------------------------}
  
  TLogEntryTypeprotoPayload = Class(TGoogleBaseObject)
  Private
  Protected
    //Property setters
  Public
    Class Function AllowAdditionalProperties : Boolean; override;
  Published
  end;
  TLogEntryTypeprotoPayloadClass = Class of TLogEntryTypeprotoPayload;
  
  { --------------------------------------------------------------------
    TLogEntryTypejsonPayload
    --------------------------------------------------------------------}
  
  TLogEntryTypejsonPayload = Class(TGoogleBaseObject)
  Private
  Protected
    //Property setters
  Public
    Class Function AllowAdditionalProperties : Boolean; override;
  Published
  end;
  TLogEntryTypejsonPayloadClass = Class of TLogEntryTypejsonPayload;
  
  { --------------------------------------------------------------------
    TLogEntryTypelabels
    --------------------------------------------------------------------}
  
  TLogEntryTypelabels = Class(TGoogleBaseObject)
  Private
  Protected
    //Property setters
  Public
    Class Function AllowAdditionalProperties : Boolean; override;
  Published
  end;
  TLogEntryTypelabelsClass = Class of TLogEntryTypelabels;
  
  { --------------------------------------------------------------------
    TLogEntry
    --------------------------------------------------------------------}
  
  TLogEntry = Class(TGoogleBaseObject)
  Private
    FlogName : String;
    Fresource : TMonitoredResource;
    FprotoPayload : TLogEntryTypeprotoPayload;
    FtextPayload : String;
    FjsonPayload : TLogEntryTypejsonPayload;
    Ftimestamp : String;
    Fseverity : String;
    FinsertId : String;
    FhttpRequest : THttpRequest;
    Flabels : TLogEntryTypelabels;
    Foperation : TLogEntryOperation;
  Protected
    //Property setters
    Procedure SetlogName(AIndex : Integer; const AValue : String); virtual;
    Procedure Setresource(AIndex : Integer; const AValue : TMonitoredResource); virtual;
    Procedure SetprotoPayload(AIndex : Integer; const AValue : TLogEntryTypeprotoPayload); virtual;
    Procedure SettextPayload(AIndex : Integer; const AValue : String); virtual;
    Procedure SetjsonPayload(AIndex : Integer; const AValue : TLogEntryTypejsonPayload); virtual;
    Procedure Settimestamp(AIndex : Integer; const AValue : String); virtual;
    Procedure Setseverity(AIndex : Integer; const AValue : String); virtual;
    Procedure SetinsertId(AIndex : Integer; const AValue : String); virtual;
    Procedure SethttpRequest(AIndex : Integer; const AValue : THttpRequest); virtual;
    Procedure Setlabels(AIndex : Integer; const AValue : TLogEntryTypelabels); virtual;
    Procedure Setoperation(AIndex : Integer; const AValue : TLogEntryOperation); virtual;
  Public
  Published
    Property logName : String Index 0 Read FlogName Write SetlogName;
    Property resource : TMonitoredResource Index 8 Read Fresource Write Setresource;
    Property protoPayload : TLogEntryTypeprotoPayload Index 16 Read FprotoPayload Write SetprotoPayload;
    Property textPayload : String Index 24 Read FtextPayload Write SettextPayload;
    Property jsonPayload : TLogEntryTypejsonPayload Index 32 Read FjsonPayload Write SetjsonPayload;
    Property timestamp : String Index 40 Read Ftimestamp Write Settimestamp;
    Property severity : String Index 48 Read Fseverity Write Setseverity;
    Property insertId : String Index 56 Read FinsertId Write SetinsertId;
    Property httpRequest : THttpRequest Index 64 Read FhttpRequest Write SethttpRequest;
    Property labels : TLogEntryTypelabels Index 72 Read Flabels Write Setlabels;
    Property operation : TLogEntryOperation Index 80 Read Foperation Write Setoperation;
  end;
  TLogEntryClass = Class of TLogEntry;
  
  { --------------------------------------------------------------------
    THttpRequest
    --------------------------------------------------------------------}
  
  THttpRequest = Class(TGoogleBaseObject)
  Private
    FrequestMethod : String;
    FrequestUrl : String;
    FrequestSize : String;
    Fstatus : integer;
    FresponseSize : String;
    FuserAgent : String;
    FremoteIp : String;
    Freferer : String;
    FcacheLookup : boolean;
    FcacheHit : boolean;
    FcacheValidatedWithOriginServer : boolean;
    FcacheFillBytes : String;
  Protected
    //Property setters
    Procedure SetrequestMethod(AIndex : Integer; const AValue : String); virtual;
    Procedure SetrequestUrl(AIndex : Integer; const AValue : String); virtual;
    Procedure SetrequestSize(AIndex : Integer; const AValue : String); virtual;
    Procedure Setstatus(AIndex : Integer; const AValue : integer); virtual;
    Procedure SetresponseSize(AIndex : Integer; const AValue : String); virtual;
    Procedure SetuserAgent(AIndex : Integer; const AValue : String); virtual;
    Procedure SetremoteIp(AIndex : Integer; const AValue : String); virtual;
    Procedure Setreferer(AIndex : Integer; const AValue : String); virtual;
    Procedure SetcacheLookup(AIndex : Integer; const AValue : boolean); virtual;
    Procedure SetcacheHit(AIndex : Integer; const AValue : boolean); virtual;
    Procedure SetcacheValidatedWithOriginServer(AIndex : Integer; const AValue : boolean); virtual;
    Procedure SetcacheFillBytes(AIndex : Integer; const AValue : String); virtual;
  Public
  Published
    Property requestMethod : String Index 0 Read FrequestMethod Write SetrequestMethod;
    Property requestUrl : String Index 8 Read FrequestUrl Write SetrequestUrl;
    Property requestSize : String Index 16 Read FrequestSize Write SetrequestSize;
    Property status : integer Index 24 Read Fstatus Write Setstatus;
    Property responseSize : String Index 32 Read FresponseSize Write SetresponseSize;
    Property userAgent : String Index 40 Read FuserAgent Write SetuserAgent;
    Property remoteIp : String Index 48 Read FremoteIp Write SetremoteIp;
    Property referer : String Index 56 Read Freferer Write Setreferer;
    Property cacheLookup : boolean Index 64 Read FcacheLookup Write SetcacheLookup;
    Property cacheHit : boolean Index 72 Read FcacheHit Write SetcacheHit;
    Property cacheValidatedWithOriginServer : boolean Index 80 Read FcacheValidatedWithOriginServer Write SetcacheValidatedWithOriginServer;
    Property cacheFillBytes : String Index 88 Read FcacheFillBytes Write SetcacheFillBytes;
  end;
  THttpRequestClass = Class of THttpRequest;
  
  { --------------------------------------------------------------------
    TLogEntryOperation
    --------------------------------------------------------------------}
  
  TLogEntryOperation = Class(TGoogleBaseObject)
  Private
    Fid : String;
    Fproducer : String;
    Ffirst : boolean;
    Flast : boolean;
  Protected
    //Property setters
    Procedure Setid(AIndex : Integer; const AValue : String); virtual;
    Procedure Setproducer(AIndex : Integer; const AValue : String); virtual;
    Procedure Setfirst(AIndex : Integer; const AValue : boolean); virtual;
    Procedure Setlast(AIndex : Integer; const AValue : boolean); virtual;
  Public
  Published
    Property id : String Index 0 Read Fid Write Setid;
    Property producer : String Index 8 Read Fproducer Write Setproducer;
    Property first : boolean Index 16 Read Ffirst Write Setfirst;
    Property last : boolean Index 24 Read Flast Write Setlast;
  end;
  TLogEntryOperationClass = Class of TLogEntryOperation;
  
  { --------------------------------------------------------------------
    TWriteLogEntriesResponse
    --------------------------------------------------------------------}
  
  TWriteLogEntriesResponse = Class(TGoogleBaseObject)
  Private
  Protected
    //Property setters
  Public
  Published
  end;
  TWriteLogEntriesResponseClass = Class of TWriteLogEntriesResponse;
  
  { --------------------------------------------------------------------
    TListLogEntriesRequest
    --------------------------------------------------------------------}
  
  TListLogEntriesRequest = Class(TGoogleBaseObject)
  Private
    FprojectIds : TStringArray;
    Ffilter : String;
    ForderBy : String;
    FpageSize : integer;
    FpageToken : String;
    FpartialSuccess : boolean;
  Protected
    //Property setters
    Procedure SetprojectIds(AIndex : Integer; const AValue : TStringArray); virtual;
    Procedure Setfilter(AIndex : Integer; const AValue : String); virtual;
    Procedure SetorderBy(AIndex : Integer; const AValue : String); virtual;
    Procedure SetpageSize(AIndex : Integer; const AValue : integer); virtual;
    Procedure SetpageToken(AIndex : Integer; const AValue : String); virtual;
    Procedure SetpartialSuccess(AIndex : Integer; const AValue : boolean); virtual;
    //2.6.4. bug workaround
    {$IFDEF VER2_6}
    Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
    {$ENDIF VER2_6}
  Public
  Published
    Property projectIds : TStringArray Index 0 Read FprojectIds Write SetprojectIds;
    Property filter : String Index 8 Read Ffilter Write Setfilter;
    Property orderBy : String Index 16 Read ForderBy Write SetorderBy;
    Property pageSize : integer Index 24 Read FpageSize Write SetpageSize;
    Property pageToken : String Index 32 Read FpageToken Write SetpageToken;
    Property partialSuccess : boolean Index 40 Read FpartialSuccess Write SetpartialSuccess;
  end;
  TListLogEntriesRequestClass = Class of TListLogEntriesRequest;
  
  { --------------------------------------------------------------------
    TListLogEntriesResponseTypeprojectIdErrors
    --------------------------------------------------------------------}
  
  TListLogEntriesResponseTypeprojectIdErrors = Class(TGoogleBaseObject)
  Private
  Protected
    //Property setters
  Public
    Class Function AllowAdditionalProperties : Boolean; override;
  Published
  end;
  TListLogEntriesResponseTypeprojectIdErrorsClass = Class of TListLogEntriesResponseTypeprojectIdErrors;
  
  { --------------------------------------------------------------------
    TListLogEntriesResponse
    --------------------------------------------------------------------}
  
  TListLogEntriesResponse = Class(TGoogleBaseObject)
  Private
    Fentries : TListLogEntriesResponseTypeentriesArray;
    FnextPageToken : String;
    FprojectIdErrors : TListLogEntriesResponseTypeprojectIdErrors;
  Protected
    //Property setters
    Procedure Setentries(AIndex : Integer; const AValue : TListLogEntriesResponseTypeentriesArray); virtual;
    Procedure SetnextPageToken(AIndex : Integer; const AValue : String); virtual;
    Procedure SetprojectIdErrors(AIndex : Integer; const AValue : TListLogEntriesResponseTypeprojectIdErrors); virtual;
    //2.6.4. bug workaround
    {$IFDEF VER2_6}
    Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
    {$ENDIF VER2_6}
  Public
  Published
    Property entries : TListLogEntriesResponseTypeentriesArray Index 0 Read Fentries Write Setentries;
    Property nextPageToken : String Index 8 Read FnextPageToken Write SetnextPageToken;
    Property projectIdErrors : TListLogEntriesResponseTypeprojectIdErrors Index 16 Read FprojectIdErrors Write SetprojectIdErrors;
  end;
  TListLogEntriesResponseClass = Class of TListLogEntriesResponse;
  
  { --------------------------------------------------------------------
    TStatusTypedetailsItem
    --------------------------------------------------------------------}
  
  TStatusTypedetailsItem = Class(TGoogleBaseObject)
  Private
  Protected
    //Property setters
  Public
    Class Function AllowAdditionalProperties : Boolean; override;
  Published
  end;
  TStatusTypedetailsItemClass = Class of TStatusTypedetailsItem;
  
  { --------------------------------------------------------------------
    TStatus
    --------------------------------------------------------------------}
  
  TStatus = Class(TGoogleBaseObject)
  Private
    Fcode : integer;
    Fmessage : String;
    Fdetails : TStatusTypedetailsArray;
  Protected
    //Property setters
    Procedure Setcode(AIndex : Integer; const AValue : integer); virtual;
    Procedure Setmessage(AIndex : Integer; const AValue : String); virtual;
    Procedure Setdetails(AIndex : Integer; const AValue : TStatusTypedetailsArray); virtual;
    //2.6.4. bug workaround
    {$IFDEF VER2_6}
    Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
    {$ENDIF VER2_6}
  Public
  Published
    Property code : integer Index 0 Read Fcode Write Setcode;
    Property message : String Index 8 Read Fmessage Write Setmessage;
    Property details : TStatusTypedetailsArray Index 16 Read Fdetails Write Setdetails;
  end;
  TStatusClass = Class of TStatus;
  
  { --------------------------------------------------------------------
    TListMonitoredResourceDescriptorsResponse
    --------------------------------------------------------------------}
  
  TListMonitoredResourceDescriptorsResponse = Class(TGoogleBaseObject)
  Private
    FresourceDescriptors : TListMonitoredResourceDescriptorsResponseTyperesourceDescriptorsArray;
    FnextPageToken : String;
  Protected
    //Property setters
    Procedure SetresourceDescriptors(AIndex : Integer; const AValue : TListMonitoredResourceDescriptorsResponseTyperesourceDescriptorsArray); 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 resourceDescriptors : TListMonitoredResourceDescriptorsResponseTyperesourceDescriptorsArray Index 0 Read FresourceDescriptors Write SetresourceDescriptors;
    Property nextPageToken : String Index 8 Read FnextPageToken Write SetnextPageToken;
  end;
  TListMonitoredResourceDescriptorsResponseClass = Class of TListMonitoredResourceDescriptorsResponse;
  
  { --------------------------------------------------------------------
    TMonitoredResourceDescriptor
    --------------------------------------------------------------------}
  
  TMonitoredResourceDescriptor = Class(TGoogleBaseObject)
  Private
    Fname : String;
    F_type : String;
    FdisplayName : String;
    Fdescription : String;
    Flabels : TMonitoredResourceDescriptorTypelabelsArray;
  Protected
    Class Function ExportPropertyName(Const AName : String) : string; override;
    //Property setters
    Procedure Setname(AIndex : Integer; const AValue : String); virtual;
    Procedure Set_type(AIndex : Integer; const AValue : String); virtual;
    Procedure SetdisplayName(AIndex : Integer; const AValue : String); virtual;
    Procedure Setdescription(AIndex : Integer; const AValue : String); virtual;
    Procedure Setlabels(AIndex : Integer; const AValue : TMonitoredResourceDescriptorTypelabelsArray); virtual;
    //2.6.4. bug workaround
    {$IFDEF VER2_6}
    Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
    {$ENDIF VER2_6}
  Public
  Published
    Property name : String Index 0 Read Fname Write Setname;
    Property _type : String Index 8 Read F_type Write Set_type;
    Property displayName : String Index 16 Read FdisplayName Write SetdisplayName;
    Property description : String Index 24 Read Fdescription Write Setdescription;
    Property labels : TMonitoredResourceDescriptorTypelabelsArray Index 32 Read Flabels Write Setlabels;
  end;
  TMonitoredResourceDescriptorClass = Class of TMonitoredResourceDescriptor;
  
  { --------------------------------------------------------------------
    TLabelDescriptor
    --------------------------------------------------------------------}
  
  TLabelDescriptor = Class(TGoogleBaseObject)
  Private
    Fkey : String;
    FvalueType : String;
    Fdescription : String;
  Protected
    //Property setters
    Procedure Setkey(AIndex : Integer; const AValue : String); virtual;
    Procedure SetvalueType(AIndex : Integer; const AValue : String); virtual;
    Procedure Setdescription(AIndex : Integer; const AValue : String); virtual;
  Public
  Published
    Property key : String Index 0 Read Fkey Write Setkey;
    Property valueType : String Index 8 Read FvalueType Write SetvalueType;
    Property description : String Index 16 Read Fdescription Write Setdescription;
  end;
  TLabelDescriptorClass = Class of TLabelDescriptor;
  
  { --------------------------------------------------------------------
    TListSinksResponse
    --------------------------------------------------------------------}
  
  TListSinksResponse = Class(TGoogleBaseObject)
  Private
    Fsinks : TListSinksResponseTypesinksArray;
    FnextPageToken : String;
  Protected
    //Property setters
    Procedure Setsinks(AIndex : Integer; const AValue : TListSinksResponseTypesinksArray); 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 sinks : TListSinksResponseTypesinksArray Index 0 Read Fsinks Write Setsinks;
    Property nextPageToken : String Index 8 Read FnextPageToken Write SetnextPageToken;
  end;
  TListSinksResponseClass = Class of TListSinksResponse;
  
  { --------------------------------------------------------------------
    TLogSink
    --------------------------------------------------------------------}
  
  TLogSink = Class(TGoogleBaseObject)
  Private
    Fname : String;
    Fdestination : String;
    Ffilter : String;
    FoutputVersionFormat : String;
  Protected
    //Property setters
    Procedure Setname(AIndex : Integer; const AValue : String); virtual;
    Procedure Setdestination(AIndex : Integer; const AValue : String); virtual;
    Procedure Setfilter(AIndex : Integer; const AValue : String); virtual;
    Procedure SetoutputVersionFormat(AIndex : Integer; const AValue : String); virtual;
  Public
  Published
    Property name : String Index 0 Read Fname Write Setname;
    Property destination : String Index 8 Read Fdestination Write Setdestination;
    Property filter : String Index 16 Read Ffilter Write Setfilter;
    Property outputVersionFormat : String Index 24 Read FoutputVersionFormat Write SetoutputVersionFormat;
  end;
  TLogSinkClass = Class of TLogSink;
  
  { --------------------------------------------------------------------
    TListLogMetricsResponse
    --------------------------------------------------------------------}
  
  TListLogMetricsResponse = Class(TGoogleBaseObject)
  Private
    Fmetrics : TListLogMetricsResponseTypemetricsArray;
    FnextPageToken : String;
  Protected
    //Property setters
    Procedure Setmetrics(AIndex : Integer; const AValue : TListLogMetricsResponseTypemetricsArray); 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 metrics : TListLogMetricsResponseTypemetricsArray Index 0 Read Fmetrics Write Setmetrics;
    Property nextPageToken : String Index 8 Read FnextPageToken Write SetnextPageToken;
  end;
  TListLogMetricsResponseClass = Class of TListLogMetricsResponse;
  
  { --------------------------------------------------------------------
    TLogMetric
    --------------------------------------------------------------------}
  
  TLogMetric = Class(TGoogleBaseObject)
  Private
    Fname : String;
    Fdescription : String;
    Ffilter : String;
  Protected
    //Property setters
    Procedure Setname(AIndex : Integer; const AValue : String); virtual;
    Procedure Setdescription(AIndex : Integer; const AValue : String); virtual;
    Procedure Setfilter(AIndex : Integer; const AValue : String); virtual;
  Public
  Published
    Property name : String Index 0 Read Fname Write Setname;
    Property description : String Index 8 Read Fdescription Write Setdescription;
    Property filter : String Index 16 Read Ffilter Write Setfilter;
  end;
  TLogMetricClass = Class of TLogMetric;
  
  { --------------------------------------------------------------------
    TRequestLog
    --------------------------------------------------------------------}
  
  TRequestLog = Class(TGoogleBaseObject)
  Private
    FappId : String;
    FmoduleId : String;
    FversionId : String;
    FrequestId : String;
    Fip : String;
    FstartTime : String;
    FendTime : String;
    Flatency : String;
    FmegaCycles : String;
    Fmethod : String;
    Fresource : String;
    FhttpVersion : String;
    Fstatus : integer;
    FresponseSize : String;
    Freferrer : String;
    FuserAgent : String;
    Fnickname : String;
    FurlMapEntry : String;
    Fhost : String;
    Fcost : double;
    FtaskQueueName : String;
    FtaskName : String;
    FwasLoadingRequest : boolean;
    FpendingTime : String;
    FinstanceIndex : integer;
    Ffinished : boolean;
    Ffirst : boolean;
    FinstanceId : String;
    Fline : TRequestLogTypelineArray;
    FappEngineRelease : String;
    FtraceId : String;
    FsourceReference : TRequestLogTypesourceReferenceArray;
  Protected
    //Property setters
    Procedure SetappId(AIndex : Integer; const AValue : String); virtual;
    Procedure SetmoduleId(AIndex : Integer; const AValue : String); virtual;
    Procedure SetversionId(AIndex : Integer; const AValue : String); virtual;
    Procedure SetrequestId(AIndex : Integer; const AValue : String); virtual;
    Procedure Setip(AIndex : Integer; const AValue : String); virtual;
    Procedure SetstartTime(AIndex : Integer; const AValue : String); virtual;
    Procedure SetendTime(AIndex : Integer; const AValue : String); virtual;
    Procedure Setlatency(AIndex : Integer; const AValue : String); virtual;
    Procedure SetmegaCycles(AIndex : Integer; const AValue : String); virtual;
    Procedure Setmethod(AIndex : Integer; const AValue : String); virtual;
    Procedure Setresource(AIndex : Integer; const AValue : String); virtual;
    Procedure SethttpVersion(AIndex : Integer; const AValue : String); virtual;
    Procedure Setstatus(AIndex : Integer; const AValue : integer); virtual;
    Procedure SetresponseSize(AIndex : Integer; const AValue : String); virtual;
    Procedure Setreferrer(AIndex : Integer; const AValue : String); virtual;
    Procedure SetuserAgent(AIndex : Integer; const AValue : String); virtual;
    Procedure Setnickname(AIndex : Integer; const AValue : String); virtual;
    Procedure SeturlMapEntry(AIndex : Integer; const AValue : String); virtual;
    Procedure Sethost(AIndex : Integer; const AValue : String); virtual;
    Procedure Setcost(AIndex : Integer; const AValue : double); virtual;
    Procedure SettaskQueueName(AIndex : Integer; const AValue : String); virtual;
    Procedure SettaskName(AIndex : Integer; const AValue : String); virtual;
    Procedure SetwasLoadingRequest(AIndex : Integer; const AValue : boolean); virtual;
    Procedure SetpendingTime(AIndex : Integer; const AValue : String); virtual;
    Procedure SetinstanceIndex(AIndex : Integer; const AValue : integer); virtual;
    Procedure Setfinished(AIndex : Integer; const AValue : boolean); virtual;
    Procedure Setfirst(AIndex : Integer; const AValue : boolean); virtual;
    Procedure SetinstanceId(AIndex : Integer; const AValue : String); virtual;
    Procedure Setline(AIndex : Integer; const AValue : TRequestLogTypelineArray); virtual;
    Procedure SetappEngineRelease(AIndex : Integer; const AValue : String); virtual;
    Procedure SettraceId(AIndex : Integer; const AValue : String); virtual;
    Procedure SetsourceReference(AIndex : Integer; const AValue : TRequestLogTypesourceReferenceArray); virtual;
    //2.6.4. bug workaround
    {$IFDEF VER2_6}
    Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
    {$ENDIF VER2_6}
  Public
  Published
    Property appId : String Index 0 Read FappId Write SetappId;
    Property moduleId : String Index 8 Read FmoduleId Write SetmoduleId;
    Property versionId : String Index 16 Read FversionId Write SetversionId;
    Property requestId : String Index 24 Read FrequestId Write SetrequestId;
    Property ip : String Index 32 Read Fip Write Setip;
    Property startTime : String Index 40 Read FstartTime Write SetstartTime;
    Property endTime : String Index 48 Read FendTime Write SetendTime;
    Property latency : String Index 56 Read Flatency Write Setlatency;
    Property megaCycles : String Index 64 Read FmegaCycles Write SetmegaCycles;
    Property method : String Index 72 Read Fmethod Write Setmethod;
    Property resource : String Index 80 Read Fresource Write Setresource;
    Property httpVersion : String Index 88 Read FhttpVersion Write SethttpVersion;
    Property status : integer Index 96 Read Fstatus Write Setstatus;
    Property responseSize : String Index 104 Read FresponseSize Write SetresponseSize;
    Property referrer : String Index 112 Read Freferrer Write Setreferrer;
    Property userAgent : String Index 120 Read FuserAgent Write SetuserAgent;
    Property nickname : String Index 128 Read Fnickname Write Setnickname;
    Property urlMapEntry : String Index 136 Read FurlMapEntry Write SeturlMapEntry;
    Property host : String Index 144 Read Fhost Write Sethost;
    Property cost : double Index 152 Read Fcost Write Setcost;
    Property taskQueueName : String Index 160 Read FtaskQueueName Write SettaskQueueName;
    Property taskName : String Index 168 Read FtaskName Write SettaskName;
    Property wasLoadingRequest : boolean Index 176 Read FwasLoadingRequest Write SetwasLoadingRequest;
    Property pendingTime : String Index 184 Read FpendingTime Write SetpendingTime;
    Property instanceIndex : integer Index 192 Read FinstanceIndex Write SetinstanceIndex;
    Property finished : boolean Index 200 Read Ffinished Write Setfinished;
    Property first : boolean Index 208 Read Ffirst Write Setfirst;
    Property instanceId : String Index 216 Read FinstanceId Write SetinstanceId;
    Property line : TRequestLogTypelineArray Index 224 Read Fline Write Setline;
    Property appEngineRelease : String Index 232 Read FappEngineRelease Write SetappEngineRelease;
    Property traceId : String Index 240 Read FtraceId Write SettraceId;
    Property sourceReference : TRequestLogTypesourceReferenceArray Index 248 Read FsourceReference Write SetsourceReference;
  end;
  TRequestLogClass = Class of TRequestLog;
  
  { --------------------------------------------------------------------
    TLogLine
    --------------------------------------------------------------------}
  
  TLogLine = Class(TGoogleBaseObject)
  Private
    Ftime : String;
    Fseverity : String;
    FlogMessage : String;
    FsourceLocation : TSourceLocation;
  Protected
    //Property setters
    Procedure Settime(AIndex : Integer; const AValue : String); virtual;
    Procedure Setseverity(AIndex : Integer; const AValue : String); virtual;
    Procedure SetlogMessage(AIndex : Integer; const AValue : String); virtual;
    Procedure SetsourceLocation(AIndex : Integer; const AValue : TSourceLocation); virtual;
  Public
  Published
    Property time : String Index 0 Read Ftime Write Settime;
    Property severity : String Index 8 Read Fseverity Write Setseverity;
    Property logMessage : String Index 16 Read FlogMessage Write SetlogMessage;
    Property sourceLocation : TSourceLocation Index 24 Read FsourceLocation Write SetsourceLocation;
  end;
  TLogLineClass = Class of TLogLine;
  
  { --------------------------------------------------------------------
    TSourceLocation
    --------------------------------------------------------------------}
  
  TSourceLocation = Class(TGoogleBaseObject)
  Private
    F_file : String;
    Fline : String;
    FfunctionName : String;
  Protected
    Class Function ExportPropertyName(Const AName : String) : string; override;
    //Property setters
    Procedure Set_file(AIndex : Integer; const AValue : String); virtual;
    Procedure Setline(AIndex : Integer; const AValue : String); virtual;
    Procedure SetfunctionName(AIndex : Integer; const AValue : String); virtual;
  Public
  Published
    Property _file : String Index 0 Read F_file Write Set_file;
    Property line : String Index 8 Read Fline Write Setline;
    Property functionName : String Index 16 Read FfunctionName Write SetfunctionName;
  end;
  TSourceLocationClass = Class of TSourceLocation;
  
  { --------------------------------------------------------------------
    TSourceReference
    --------------------------------------------------------------------}
  
  TSourceReference = Class(TGoogleBaseObject)
  Private
    Frepository : String;
    FrevisionId : String;
  Protected
    //Property setters
    Procedure Setrepository(AIndex : Integer; const AValue : String); virtual;
    Procedure SetrevisionId(AIndex : Integer; const AValue : String); virtual;
  Public
  Published
    Property repository : String Index 0 Read Frepository Write Setrepository;
    Property revisionId : String Index 8 Read FrevisionId Write SetrevisionId;
  end;
  TSourceReferenceClass = Class of TSourceReference;
  
  { --------------------------------------------------------------------
    TProjectsLogsResource
    --------------------------------------------------------------------}
  
  TProjectsLogsResource = Class(TGoogleResource)
  Public
    Class Function ResourceName : String; override;
    Class Function DefaultAPI : TGoogleAPIClass; override;
    Function Delete(logName: string) : TEmpty;
  end;
  
  
  { --------------------------------------------------------------------
    TProjectsSinksResource
    --------------------------------------------------------------------}
  
  
  //Optional query Options for TProjectsSinksResource, method List
  
  TProjectsSinksListOptions = Record
    pageToken : String;
    pageSize : integer;
  end;
  
  TProjectsSinksResource = Class(TGoogleResource)
  Public
    Class Function ResourceName : String; override;
    Class Function DefaultAPI : TGoogleAPIClass; override;
    Function List(projectName: string; AQuery : string  = '') : TListSinksResponse;
    Function List(projectName: string; AQuery : TProjectsSinkslistOptions) : TListSinksResponse;
    Function Get(sinkName: string) : TLogSink;
    Function Create(projectName: string; aLogSink : TLogSink) : TLogSink;overload;
    Function Update(sinkName: string; aLogSink : TLogSink) : TLogSink;
    Function Delete(sinkName: string) : TEmpty;
  end;
  
  
  { --------------------------------------------------------------------
    TProjectsMetricsResource
    --------------------------------------------------------------------}
  
  
  //Optional query Options for TProjectsMetricsResource, method List
  
  TProjectsMetricsListOptions = Record
    pageToken : String;
    pageSize : integer;
  end;
  
  TProjectsMetricsResource = Class(TGoogleResource)
  Public
    Class Function ResourceName : String; override;
    Class Function DefaultAPI : TGoogleAPIClass; override;
    Function List(projectName: string; AQuery : string  = '') : TListLogMetricsResponse;
    Function List(projectName: string; AQuery : TProjectsMetricslistOptions) : TListLogMetricsResponse;
    Function Get(metricName: string) : TLogMetric;
    Function Create(projectName: string; aLogMetric : TLogMetric) : TLogMetric;overload;
    Function Update(metricName: string; aLogMetric : TLogMetric) : TLogMetric;
    Function Delete(metricName: string) : TEmpty;
  end;
  
  
  { --------------------------------------------------------------------
    TProjectsResource
    --------------------------------------------------------------------}
  
  TProjectsResource = Class(TGoogleResource)
  Private
    FLogsInstance : TProjectsLogsResource;
    FSinksInstance : TProjectsSinksResource;
    FMetricsInstance : TProjectsMetricsResource;
    Function GetLogsInstance : TProjectsLogsResource;virtual;
    Function GetSinksInstance : TProjectsSinksResource;virtual;
    Function GetMetricsInstance : TProjectsMetricsResource;virtual;
  Public
    Class Function ResourceName : String; override;
    Class Function DefaultAPI : TGoogleAPIClass; override;
    Function CreateLogsResource(AOwner : TComponent) : TProjectsLogsResource;virtual;overload;
    Function CreateLogsResource : TProjectsLogsResource;virtual;overload;
    Function CreateSinksResource(AOwner : TComponent) : TProjectsSinksResource;virtual;overload;
    Function CreateSinksResource : TProjectsSinksResource;virtual;overload;
    Function CreateMetricsResource(AOwner : TComponent) : TProjectsMetricsResource;virtual;overload;
    Function CreateMetricsResource : TProjectsMetricsResource;virtual;overload;
    Property LogsResource : TProjectsLogsResource Read GetLogsInstance;
    Property SinksResource : TProjectsSinksResource Read GetSinksInstance;
    Property MetricsResource : TProjectsMetricsResource Read GetMetricsInstance;
  end;
  
  
  { --------------------------------------------------------------------
    TEntriesResource
    --------------------------------------------------------------------}
  
  TEntriesResource = Class(TGoogleResource)
  Public
    Class Function ResourceName : String; override;
    Class Function DefaultAPI : TGoogleAPIClass; override;
    Function Write(aWriteLogEntriesRequest : TWriteLogEntriesRequest) : TWriteLogEntriesResponse;
    Function List(aListLogEntriesRequest : TListLogEntriesRequest) : TListLogEntriesResponse;
  end;
  
  
  { --------------------------------------------------------------------
    TMonitoredResourceDescriptorsResource
    --------------------------------------------------------------------}
  
  
  //Optional query Options for TMonitoredResourceDescriptorsResource, method List
  
  TMonitoredResourceDescriptorsListOptions = Record
    pageSize : integer;
    pageToken : String;
  end;
  
  TMonitoredResourceDescriptorsResource = Class(TGoogleResource)
  Public
    Class Function ResourceName : String; override;
    Class Function DefaultAPI : TGoogleAPIClass; override;
    Function List(AQuery : string  = '') : TListMonitoredResourceDescriptorsResponse;
    Function List(AQuery : TMonitoredResourceDescriptorslistOptions) : TListMonitoredResourceDescriptorsResponse;
  end;
  
  
  { --------------------------------------------------------------------
    TLoggingAPI
    --------------------------------------------------------------------}
  
  TLoggingAPI = Class(TGoogleAPI)
  Private
    FProjectsLogsInstance : TProjectsLogsResource;
    FProjectsSinksInstance : TProjectsSinksResource;
    FProjectsMetricsInstance : TProjectsMetricsResource;
    FProjectsInstance : TProjectsResource;
    FEntriesInstance : TEntriesResource;
    FMonitoredResourceDescriptorsInstance : TMonitoredResourceDescriptorsResource;
    Function GetProjectsLogsInstance : TProjectsLogsResource;virtual;
    Function GetProjectsSinksInstance : TProjectsSinksResource;virtual;
    Function GetProjectsMetricsInstance : TProjectsMetricsResource;virtual;
    Function GetProjectsInstance : TProjectsResource;virtual;
    Function GetEntriesInstance : TEntriesResource;virtual;
    Function GetMonitoredResourceDescriptorsInstance : TMonitoredResourceDescriptorsResource;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 CreateProjectsLogsResource(AOwner : TComponent) : TProjectsLogsResource;virtual;overload;
    Function CreateProjectsLogsResource : TProjectsLogsResource;virtual;overload;
    Function CreateProjectsSinksResource(AOwner : TComponent) : TProjectsSinksResource;virtual;overload;
    Function CreateProjectsSinksResource : TProjectsSinksResource;virtual;overload;
    Function CreateProjectsMetricsResource(AOwner : TComponent) : TProjectsMetricsResource;virtual;overload;
    Function CreateProjectsMetricsResource : TProjectsMetricsResource;virtual;overload;
    Function CreateProjectsResource(AOwner : TComponent) : TProjectsResource;virtual;overload;
    Function CreateProjectsResource : TProjectsResource;virtual;overload;
    Function CreateEntriesResource(AOwner : TComponent) : TEntriesResource;virtual;overload;
    Function CreateEntriesResource : TEntriesResource;virtual;overload;
    Function CreateMonitoredResourceDescriptorsResource(AOwner : TComponent) : TMonitoredResourceDescriptorsResource;virtual;overload;
    Function CreateMonitoredResourceDescriptorsResource : TMonitoredResourceDescriptorsResource;virtual;overload;
    //Add default on-demand instances for resources
    Property ProjectsLogsResource : TProjectsLogsResource Read GetProjectsLogsInstance;
    Property ProjectsSinksResource : TProjectsSinksResource Read GetProjectsSinksInstance;
    Property ProjectsMetricsResource : TProjectsMetricsResource Read GetProjectsMetricsInstance;
    Property ProjectsResource : TProjectsResource Read GetProjectsInstance;
    Property EntriesResource : TEntriesResource Read GetEntriesInstance;
    Property MonitoredResourceDescriptorsResource : TMonitoredResourceDescriptorsResource Read GetMonitoredResourceDescriptorsInstance;
  end;

implementation


{ --------------------------------------------------------------------
  TEmpty
  --------------------------------------------------------------------}




{ --------------------------------------------------------------------
  TWriteLogEntriesRequestTypelabels
  --------------------------------------------------------------------}


Class Function TWriteLogEntriesRequestTypelabels.AllowAdditionalProperties : Boolean;

begin
  Result:=True;
end;



{ --------------------------------------------------------------------
  TWriteLogEntriesRequest
  --------------------------------------------------------------------}


Procedure TWriteLogEntriesRequest.SetlogName(AIndex : Integer; const AValue : String); 

begin
  If (FlogName=AValue) then exit;
  FlogName:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TWriteLogEntriesRequest.Setresource(AIndex : Integer; const AValue : TMonitoredResource); 

begin
  If (Fresource=AValue) then exit;
  Fresource:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TWriteLogEntriesRequest.Setlabels(AIndex : Integer; const AValue : TWriteLogEntriesRequestTypelabels); 

begin
  If (Flabels=AValue) then exit;
  Flabels:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TWriteLogEntriesRequest.Setentries(AIndex : Integer; const AValue : TWriteLogEntriesRequestTypeentriesArray); 

begin
  If (Fentries=AValue) then exit;
  Fentries:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TWriteLogEntriesRequest.SetpartialSuccess(AIndex : Integer; const AValue : boolean); 

begin
  If (FpartialSuccess=AValue) then exit;
  FpartialSuccess:=AValue;
  MarkPropertyChanged(AIndex);
end;


//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TWriteLogEntriesRequest.SetArrayLength(Const AName : String; ALength : Longint); 

begin
  Case AName of
  'entries' : SetLength(Fentries,ALength);
  else
    Inherited SetArrayLength(AName,ALength);
  end;
end;
{$ENDIF VER2_6}




{ --------------------------------------------------------------------
  TMonitoredResourceTypelabels
  --------------------------------------------------------------------}


Class Function TMonitoredResourceTypelabels.AllowAdditionalProperties : Boolean;

begin
  Result:=True;
end;



{ --------------------------------------------------------------------
  TMonitoredResource
  --------------------------------------------------------------------}


Procedure TMonitoredResource.Set_type(AIndex : Integer; const AValue : String); 

begin
  If (F_type=AValue) then exit;
  F_type:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TMonitoredResource.Setlabels(AIndex : Integer; const AValue : TMonitoredResourceTypelabels); 

begin
  If (Flabels=AValue) then exit;
  Flabels:=AValue;
  MarkPropertyChanged(AIndex);
end;



Class Function TMonitoredResource.ExportPropertyName(Const AName : String) :String;

begin
  Case AName of
  '_type' : Result:='type';
  else
    Result:=Inherited ExportPropertyName(AName);
  end;
end;




{ --------------------------------------------------------------------
  TLogEntryTypeprotoPayload
  --------------------------------------------------------------------}


Class Function TLogEntryTypeprotoPayload.AllowAdditionalProperties : Boolean;

begin
  Result:=True;
end;



{ --------------------------------------------------------------------
  TLogEntryTypejsonPayload
  --------------------------------------------------------------------}


Class Function TLogEntryTypejsonPayload.AllowAdditionalProperties : Boolean;

begin
  Result:=True;
end;



{ --------------------------------------------------------------------
  TLogEntryTypelabels
  --------------------------------------------------------------------}


Class Function TLogEntryTypelabels.AllowAdditionalProperties : Boolean;

begin
  Result:=True;
end;



{ --------------------------------------------------------------------
  TLogEntry
  --------------------------------------------------------------------}


Procedure TLogEntry.SetlogName(AIndex : Integer; const AValue : String); 

begin
  If (FlogName=AValue) then exit;
  FlogName:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogEntry.Setresource(AIndex : Integer; const AValue : TMonitoredResource); 

begin
  If (Fresource=AValue) then exit;
  Fresource:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogEntry.SetprotoPayload(AIndex : Integer; const AValue : TLogEntryTypeprotoPayload); 

begin
  If (FprotoPayload=AValue) then exit;
  FprotoPayload:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogEntry.SettextPayload(AIndex : Integer; const AValue : String); 

begin
  If (FtextPayload=AValue) then exit;
  FtextPayload:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogEntry.SetjsonPayload(AIndex : Integer; const AValue : TLogEntryTypejsonPayload); 

begin
  If (FjsonPayload=AValue) then exit;
  FjsonPayload:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogEntry.Settimestamp(AIndex : Integer; const AValue : String); 

begin
  If (Ftimestamp=AValue) then exit;
  Ftimestamp:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogEntry.Setseverity(AIndex : Integer; const AValue : String); 

begin
  If (Fseverity=AValue) then exit;
  Fseverity:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogEntry.SetinsertId(AIndex : Integer; const AValue : String); 

begin
  If (FinsertId=AValue) then exit;
  FinsertId:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogEntry.SethttpRequest(AIndex : Integer; const AValue : THttpRequest); 

begin
  If (FhttpRequest=AValue) then exit;
  FhttpRequest:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogEntry.Setlabels(AIndex : Integer; const AValue : TLogEntryTypelabels); 

begin
  If (Flabels=AValue) then exit;
  Flabels:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogEntry.Setoperation(AIndex : Integer; const AValue : TLogEntryOperation); 

begin
  If (Foperation=AValue) then exit;
  Foperation:=AValue;
  MarkPropertyChanged(AIndex);
end;





{ --------------------------------------------------------------------
  THttpRequest
  --------------------------------------------------------------------}


Procedure THttpRequest.SetrequestMethod(AIndex : Integer; const AValue : String); 

begin
  If (FrequestMethod=AValue) then exit;
  FrequestMethod:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure THttpRequest.SetrequestUrl(AIndex : Integer; const AValue : String); 

begin
  If (FrequestUrl=AValue) then exit;
  FrequestUrl:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure THttpRequest.SetrequestSize(AIndex : Integer; const AValue : String); 

begin
  If (FrequestSize=AValue) then exit;
  FrequestSize:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure THttpRequest.Setstatus(AIndex : Integer; const AValue : integer); 

begin
  If (Fstatus=AValue) then exit;
  Fstatus:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure THttpRequest.SetresponseSize(AIndex : Integer; const AValue : String); 

begin
  If (FresponseSize=AValue) then exit;
  FresponseSize:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure THttpRequest.SetuserAgent(AIndex : Integer; const AValue : String); 

begin
  If (FuserAgent=AValue) then exit;
  FuserAgent:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure THttpRequest.SetremoteIp(AIndex : Integer; const AValue : String); 

begin
  If (FremoteIp=AValue) then exit;
  FremoteIp:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure THttpRequest.Setreferer(AIndex : Integer; const AValue : String); 

begin
  If (Freferer=AValue) then exit;
  Freferer:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure THttpRequest.SetcacheLookup(AIndex : Integer; const AValue : boolean); 

begin
  If (FcacheLookup=AValue) then exit;
  FcacheLookup:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure THttpRequest.SetcacheHit(AIndex : Integer; const AValue : boolean); 

begin
  If (FcacheHit=AValue) then exit;
  FcacheHit:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure THttpRequest.SetcacheValidatedWithOriginServer(AIndex : Integer; const AValue : boolean); 

begin
  If (FcacheValidatedWithOriginServer=AValue) then exit;
  FcacheValidatedWithOriginServer:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure THttpRequest.SetcacheFillBytes(AIndex : Integer; const AValue : String); 

begin
  If (FcacheFillBytes=AValue) then exit;
  FcacheFillBytes:=AValue;
  MarkPropertyChanged(AIndex);
end;





{ --------------------------------------------------------------------
  TLogEntryOperation
  --------------------------------------------------------------------}


Procedure TLogEntryOperation.Setid(AIndex : Integer; const AValue : String); 

begin
  If (Fid=AValue) then exit;
  Fid:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogEntryOperation.Setproducer(AIndex : Integer; const AValue : String); 

begin
  If (Fproducer=AValue) then exit;
  Fproducer:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogEntryOperation.Setfirst(AIndex : Integer; const AValue : boolean); 

begin
  If (Ffirst=AValue) then exit;
  Ffirst:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogEntryOperation.Setlast(AIndex : Integer; const AValue : boolean); 

begin
  If (Flast=AValue) then exit;
  Flast:=AValue;
  MarkPropertyChanged(AIndex);
end;





{ --------------------------------------------------------------------
  TWriteLogEntriesResponse
  --------------------------------------------------------------------}




{ --------------------------------------------------------------------
  TListLogEntriesRequest
  --------------------------------------------------------------------}


Procedure TListLogEntriesRequest.SetprojectIds(AIndex : Integer; const AValue : TStringArray); 

begin
  If (FprojectIds=AValue) then exit;
  FprojectIds:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TListLogEntriesRequest.Setfilter(AIndex : Integer; const AValue : String); 

begin
  If (Ffilter=AValue) then exit;
  Ffilter:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TListLogEntriesRequest.SetorderBy(AIndex : Integer; const AValue : String); 

begin
  If (ForderBy=AValue) then exit;
  ForderBy:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TListLogEntriesRequest.SetpageSize(AIndex : Integer; const AValue : integer); 

begin
  If (FpageSize=AValue) then exit;
  FpageSize:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TListLogEntriesRequest.SetpageToken(AIndex : Integer; const AValue : String); 

begin
  If (FpageToken=AValue) then exit;
  FpageToken:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TListLogEntriesRequest.SetpartialSuccess(AIndex : Integer; const AValue : boolean); 

begin
  If (FpartialSuccess=AValue) then exit;
  FpartialSuccess:=AValue;
  MarkPropertyChanged(AIndex);
end;


//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TListLogEntriesRequest.SetArrayLength(Const AName : String; ALength : Longint); 

begin
  Case AName of
  'projectids' : SetLength(FprojectIds,ALength);
  else
    Inherited SetArrayLength(AName,ALength);
  end;
end;
{$ENDIF VER2_6}




{ --------------------------------------------------------------------
  TListLogEntriesResponseTypeprojectIdErrors
  --------------------------------------------------------------------}


Class Function TListLogEntriesResponseTypeprojectIdErrors.AllowAdditionalProperties : Boolean;

begin
  Result:=True;
end;



{ --------------------------------------------------------------------
  TListLogEntriesResponse
  --------------------------------------------------------------------}


Procedure TListLogEntriesResponse.Setentries(AIndex : Integer; const AValue : TListLogEntriesResponseTypeentriesArray); 

begin
  If (Fentries=AValue) then exit;
  Fentries:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TListLogEntriesResponse.SetnextPageToken(AIndex : Integer; const AValue : String); 

begin
  If (FnextPageToken=AValue) then exit;
  FnextPageToken:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TListLogEntriesResponse.SetprojectIdErrors(AIndex : Integer; const AValue : TListLogEntriesResponseTypeprojectIdErrors); 

begin
  If (FprojectIdErrors=AValue) then exit;
  FprojectIdErrors:=AValue;
  MarkPropertyChanged(AIndex);
end;


//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TListLogEntriesResponse.SetArrayLength(Const AName : String; ALength : Longint); 

begin
  Case AName of
  'entries' : SetLength(Fentries,ALength);
  else
    Inherited SetArrayLength(AName,ALength);
  end;
end;
{$ENDIF VER2_6}




{ --------------------------------------------------------------------
  TStatusTypedetailsItem
  --------------------------------------------------------------------}


Class Function TStatusTypedetailsItem.AllowAdditionalProperties : Boolean;

begin
  Result:=True;
end;



{ --------------------------------------------------------------------
  TStatus
  --------------------------------------------------------------------}


Procedure TStatus.Setcode(AIndex : Integer; const AValue : integer); 

begin
  If (Fcode=AValue) then exit;
  Fcode:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TStatus.Setmessage(AIndex : Integer; const AValue : String); 

begin
  If (Fmessage=AValue) then exit;
  Fmessage:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TStatus.Setdetails(AIndex : Integer; const AValue : TStatusTypedetailsArray); 

begin
  If (Fdetails=AValue) then exit;
  Fdetails:=AValue;
  MarkPropertyChanged(AIndex);
end;


//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TStatus.SetArrayLength(Const AName : String; ALength : Longint); 

begin
  Case AName of
  'details' : SetLength(Fdetails,ALength);
  else
    Inherited SetArrayLength(AName,ALength);
  end;
end;
{$ENDIF VER2_6}




{ --------------------------------------------------------------------
  TListMonitoredResourceDescriptorsResponse
  --------------------------------------------------------------------}


Procedure TListMonitoredResourceDescriptorsResponse.SetresourceDescriptors(AIndex : Integer; const AValue : TListMonitoredResourceDescriptorsResponseTyperesourceDescriptorsArray); 

begin
  If (FresourceDescriptors=AValue) then exit;
  FresourceDescriptors:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TListMonitoredResourceDescriptorsResponse.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 TListMonitoredResourceDescriptorsResponse.SetArrayLength(Const AName : String; ALength : Longint); 

begin
  Case AName of
  'resourcedescriptors' : SetLength(FresourceDescriptors,ALength);
  else
    Inherited SetArrayLength(AName,ALength);
  end;
end;
{$ENDIF VER2_6}




{ --------------------------------------------------------------------
  TMonitoredResourceDescriptor
  --------------------------------------------------------------------}


Procedure TMonitoredResourceDescriptor.Setname(AIndex : Integer; const AValue : String); 

begin
  If (Fname=AValue) then exit;
  Fname:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TMonitoredResourceDescriptor.Set_type(AIndex : Integer; const AValue : String); 

begin
  If (F_type=AValue) then exit;
  F_type:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TMonitoredResourceDescriptor.SetdisplayName(AIndex : Integer; const AValue : String); 

begin
  If (FdisplayName=AValue) then exit;
  FdisplayName:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TMonitoredResourceDescriptor.Setdescription(AIndex : Integer; const AValue : String); 

begin
  If (Fdescription=AValue) then exit;
  Fdescription:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TMonitoredResourceDescriptor.Setlabels(AIndex : Integer; const AValue : TMonitoredResourceDescriptorTypelabelsArray); 

begin
  If (Flabels=AValue) then exit;
  Flabels:=AValue;
  MarkPropertyChanged(AIndex);
end;



Class Function TMonitoredResourceDescriptor.ExportPropertyName(Const AName : String) :String;

begin
  Case AName of
  '_type' : Result:='type';
  else
    Result:=Inherited ExportPropertyName(AName);
  end;
end;

//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TMonitoredResourceDescriptor.SetArrayLength(Const AName : String; ALength : Longint); 

begin
  Case AName of
  'labels' : SetLength(Flabels,ALength);
  else
    Inherited SetArrayLength(AName,ALength);
  end;
end;
{$ENDIF VER2_6}




{ --------------------------------------------------------------------
  TLabelDescriptor
  --------------------------------------------------------------------}


Procedure TLabelDescriptor.Setkey(AIndex : Integer; const AValue : String); 

begin
  If (Fkey=AValue) then exit;
  Fkey:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLabelDescriptor.SetvalueType(AIndex : Integer; const AValue : String); 

begin
  If (FvalueType=AValue) then exit;
  FvalueType:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLabelDescriptor.Setdescription(AIndex : Integer; const AValue : String); 

begin
  If (Fdescription=AValue) then exit;
  Fdescription:=AValue;
  MarkPropertyChanged(AIndex);
end;





{ --------------------------------------------------------------------
  TListSinksResponse
  --------------------------------------------------------------------}


Procedure TListSinksResponse.Setsinks(AIndex : Integer; const AValue : TListSinksResponseTypesinksArray); 

begin
  If (Fsinks=AValue) then exit;
  Fsinks:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TListSinksResponse.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 TListSinksResponse.SetArrayLength(Const AName : String; ALength : Longint); 

begin
  Case AName of
  'sinks' : SetLength(Fsinks,ALength);
  else
    Inherited SetArrayLength(AName,ALength);
  end;
end;
{$ENDIF VER2_6}




{ --------------------------------------------------------------------
  TLogSink
  --------------------------------------------------------------------}


Procedure TLogSink.Setname(AIndex : Integer; const AValue : String); 

begin
  If (Fname=AValue) then exit;
  Fname:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogSink.Setdestination(AIndex : Integer; const AValue : String); 

begin
  If (Fdestination=AValue) then exit;
  Fdestination:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogSink.Setfilter(AIndex : Integer; const AValue : String); 

begin
  If (Ffilter=AValue) then exit;
  Ffilter:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogSink.SetoutputVersionFormat(AIndex : Integer; const AValue : String); 

begin
  If (FoutputVersionFormat=AValue) then exit;
  FoutputVersionFormat:=AValue;
  MarkPropertyChanged(AIndex);
end;





{ --------------------------------------------------------------------
  TListLogMetricsResponse
  --------------------------------------------------------------------}


Procedure TListLogMetricsResponse.Setmetrics(AIndex : Integer; const AValue : TListLogMetricsResponseTypemetricsArray); 

begin
  If (Fmetrics=AValue) then exit;
  Fmetrics:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TListLogMetricsResponse.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 TListLogMetricsResponse.SetArrayLength(Const AName : String; ALength : Longint); 

begin
  Case AName of
  'metrics' : SetLength(Fmetrics,ALength);
  else
    Inherited SetArrayLength(AName,ALength);
  end;
end;
{$ENDIF VER2_6}




{ --------------------------------------------------------------------
  TLogMetric
  --------------------------------------------------------------------}


Procedure TLogMetric.Setname(AIndex : Integer; const AValue : String); 

begin
  If (Fname=AValue) then exit;
  Fname:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogMetric.Setdescription(AIndex : Integer; const AValue : String); 

begin
  If (Fdescription=AValue) then exit;
  Fdescription:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogMetric.Setfilter(AIndex : Integer; const AValue : String); 

begin
  If (Ffilter=AValue) then exit;
  Ffilter:=AValue;
  MarkPropertyChanged(AIndex);
end;





{ --------------------------------------------------------------------
  TRequestLog
  --------------------------------------------------------------------}


Procedure TRequestLog.SetappId(AIndex : Integer; const AValue : String); 

begin
  If (FappId=AValue) then exit;
  FappId:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SetmoduleId(AIndex : Integer; const AValue : String); 

begin
  If (FmoduleId=AValue) then exit;
  FmoduleId:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SetversionId(AIndex : Integer; const AValue : String); 

begin
  If (FversionId=AValue) then exit;
  FversionId:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SetrequestId(AIndex : Integer; const AValue : String); 

begin
  If (FrequestId=AValue) then exit;
  FrequestId:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.Setip(AIndex : Integer; const AValue : String); 

begin
  If (Fip=AValue) then exit;
  Fip:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SetstartTime(AIndex : Integer; const AValue : String); 

begin
  If (FstartTime=AValue) then exit;
  FstartTime:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SetendTime(AIndex : Integer; const AValue : String); 

begin
  If (FendTime=AValue) then exit;
  FendTime:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.Setlatency(AIndex : Integer; const AValue : String); 

begin
  If (Flatency=AValue) then exit;
  Flatency:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SetmegaCycles(AIndex : Integer; const AValue : String); 

begin
  If (FmegaCycles=AValue) then exit;
  FmegaCycles:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.Setmethod(AIndex : Integer; const AValue : String); 

begin
  If (Fmethod=AValue) then exit;
  Fmethod:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.Setresource(AIndex : Integer; const AValue : String); 

begin
  If (Fresource=AValue) then exit;
  Fresource:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SethttpVersion(AIndex : Integer; const AValue : String); 

begin
  If (FhttpVersion=AValue) then exit;
  FhttpVersion:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.Setstatus(AIndex : Integer; const AValue : integer); 

begin
  If (Fstatus=AValue) then exit;
  Fstatus:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SetresponseSize(AIndex : Integer; const AValue : String); 

begin
  If (FresponseSize=AValue) then exit;
  FresponseSize:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.Setreferrer(AIndex : Integer; const AValue : String); 

begin
  If (Freferrer=AValue) then exit;
  Freferrer:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SetuserAgent(AIndex : Integer; const AValue : String); 

begin
  If (FuserAgent=AValue) then exit;
  FuserAgent:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.Setnickname(AIndex : Integer; const AValue : String); 

begin
  If (Fnickname=AValue) then exit;
  Fnickname:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SeturlMapEntry(AIndex : Integer; const AValue : String); 

begin
  If (FurlMapEntry=AValue) then exit;
  FurlMapEntry:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.Sethost(AIndex : Integer; const AValue : String); 

begin
  If (Fhost=AValue) then exit;
  Fhost:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.Setcost(AIndex : Integer; const AValue : double); 

begin
  If (Fcost=AValue) then exit;
  Fcost:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SettaskQueueName(AIndex : Integer; const AValue : String); 

begin
  If (FtaskQueueName=AValue) then exit;
  FtaskQueueName:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SettaskName(AIndex : Integer; const AValue : String); 

begin
  If (FtaskName=AValue) then exit;
  FtaskName:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SetwasLoadingRequest(AIndex : Integer; const AValue : boolean); 

begin
  If (FwasLoadingRequest=AValue) then exit;
  FwasLoadingRequest:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SetpendingTime(AIndex : Integer; const AValue : String); 

begin
  If (FpendingTime=AValue) then exit;
  FpendingTime:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SetinstanceIndex(AIndex : Integer; const AValue : integer); 

begin
  If (FinstanceIndex=AValue) then exit;
  FinstanceIndex:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.Setfinished(AIndex : Integer; const AValue : boolean); 

begin
  If (Ffinished=AValue) then exit;
  Ffinished:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.Setfirst(AIndex : Integer; const AValue : boolean); 

begin
  If (Ffirst=AValue) then exit;
  Ffirst:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SetinstanceId(AIndex : Integer; const AValue : String); 

begin
  If (FinstanceId=AValue) then exit;
  FinstanceId:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.Setline(AIndex : Integer; const AValue : TRequestLogTypelineArray); 

begin
  If (Fline=AValue) then exit;
  Fline:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SetappEngineRelease(AIndex : Integer; const AValue : String); 

begin
  If (FappEngineRelease=AValue) then exit;
  FappEngineRelease:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SettraceId(AIndex : Integer; const AValue : String); 

begin
  If (FtraceId=AValue) then exit;
  FtraceId:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TRequestLog.SetsourceReference(AIndex : Integer; const AValue : TRequestLogTypesourceReferenceArray); 

begin
  If (FsourceReference=AValue) then exit;
  FsourceReference:=AValue;
  MarkPropertyChanged(AIndex);
end;


//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure TRequestLog.SetArrayLength(Const AName : String; ALength : Longint); 

begin
  Case AName of
  'line' : SetLength(Fline,ALength);
  'sourcereference' : SetLength(FsourceReference,ALength);
  else
    Inherited SetArrayLength(AName,ALength);
  end;
end;
{$ENDIF VER2_6}




{ --------------------------------------------------------------------
  TLogLine
  --------------------------------------------------------------------}


Procedure TLogLine.Settime(AIndex : Integer; const AValue : String); 

begin
  If (Ftime=AValue) then exit;
  Ftime:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogLine.Setseverity(AIndex : Integer; const AValue : String); 

begin
  If (Fseverity=AValue) then exit;
  Fseverity:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogLine.SetlogMessage(AIndex : Integer; const AValue : String); 

begin
  If (FlogMessage=AValue) then exit;
  FlogMessage:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TLogLine.SetsourceLocation(AIndex : Integer; const AValue : TSourceLocation); 

begin
  If (FsourceLocation=AValue) then exit;
  FsourceLocation:=AValue;
  MarkPropertyChanged(AIndex);
end;





{ --------------------------------------------------------------------
  TSourceLocation
  --------------------------------------------------------------------}


Procedure TSourceLocation.Set_file(AIndex : Integer; const AValue : String); 

begin
  If (F_file=AValue) then exit;
  F_file:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TSourceLocation.Setline(AIndex : Integer; const AValue : String); 

begin
  If (Fline=AValue) then exit;
  Fline:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TSourceLocation.SetfunctionName(AIndex : Integer; const AValue : String); 

begin
  If (FfunctionName=AValue) then exit;
  FfunctionName:=AValue;
  MarkPropertyChanged(AIndex);
end;



Class Function TSourceLocation.ExportPropertyName(Const AName : String) :String;

begin
  Case AName of
  '_file' : Result:='file';
  else
    Result:=Inherited ExportPropertyName(AName);
  end;
end;




{ --------------------------------------------------------------------
  TSourceReference
  --------------------------------------------------------------------}


Procedure TSourceReference.Setrepository(AIndex : Integer; const AValue : String); 

begin
  If (Frepository=AValue) then exit;
  Frepository:=AValue;
  MarkPropertyChanged(AIndex);
end;



Procedure TSourceReference.SetrevisionId(AIndex : Integer; const AValue : String); 

begin
  If (FrevisionId=AValue) then exit;
  FrevisionId:=AValue;
  MarkPropertyChanged(AIndex);
end;





{ --------------------------------------------------------------------
  TProjectsLogsResource
  --------------------------------------------------------------------}


Class Function TProjectsLogsResource.ResourceName : String;

begin
  Result:='logs';
end;

Class Function TProjectsLogsResource.DefaultAPI : TGoogleAPIClass;

begin
  Result:=TloggingAPI;
end;

Function TProjectsLogsResource.Delete(logName: string) : TEmpty;

Const
  _HTTPMethod = 'DELETE';
  _Path       = 'v2beta1/{+logName}';
  _Methodid   = 'logging.projects.logs.delete';

Var
  _P : String;

begin
  _P:=SubstitutePath(_Path,['logName',logName]);
  Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TEmpty) as TEmpty;
end;



{ --------------------------------------------------------------------
  TProjectsSinksResource
  --------------------------------------------------------------------}


Class Function TProjectsSinksResource.ResourceName : String;

begin
  Result:='sinks';
end;

Class Function TProjectsSinksResource.DefaultAPI : TGoogleAPIClass;

begin
  Result:=TloggingAPI;
end;

Function TProjectsSinksResource.List(projectName: string; AQuery : string = '') : TListSinksResponse;

Const
  _HTTPMethod = 'GET';
  _Path       = 'v2beta1/{+projectName}/sinks';
  _Methodid   = 'logging.projects.sinks.list';

Var
  _P : String;

begin
  _P:=SubstitutePath(_Path,['projectName',projectName]);
  Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TListSinksResponse) as TListSinksResponse;
end;


Function TProjectsSinksResource.List(projectName: string; AQuery : TProjectsSinkslistOptions) : TListSinksResponse;

Var
  _Q : String;

begin
  _Q:='';
  AddToQuery(_Q,'pageToken',AQuery.pageToken);
  AddToQuery(_Q,'pageSize',AQuery.pageSize);
  Result:=List(projectName,_Q);
end;

Function TProjectsSinksResource.Get(sinkName: string) : TLogSink;

Const
  _HTTPMethod = 'GET';
  _Path       = 'v2beta1/{+sinkName}';
  _Methodid   = 'logging.projects.sinks.get';

Var
  _P : String;

begin
  _P:=SubstitutePath(_Path,['sinkName',sinkName]);
  Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TLogSink) as TLogSink;
end;

Function TProjectsSinksResource.Create(projectName: string; aLogSink : TLogSink) : TLogSink;

Const
  _HTTPMethod = 'POST';
  _Path       = 'v2beta1/{+projectName}/sinks';
  _Methodid   = 'logging.projects.sinks.create';

Var
  _P : String;

begin
  _P:=SubstitutePath(_Path,['projectName',projectName]);
  Result:=ServiceCall(_HTTPMethod,_P,'',aLogSink,TLogSink) as TLogSink;
end;

Function TProjectsSinksResource.Update(sinkName: string; aLogSink : TLogSink) : TLogSink;

Const
  _HTTPMethod = 'PUT';
  _Path       = 'v2beta1/{+sinkName}';
  _Methodid   = 'logging.projects.sinks.update';

Var
  _P : String;

begin
  _P:=SubstitutePath(_Path,['sinkName',sinkName]);
  Result:=ServiceCall(_HTTPMethod,_P,'',aLogSink,TLogSink) as TLogSink;
end;

Function TProjectsSinksResource.Delete(sinkName: string) : TEmpty;

Const
  _HTTPMethod = 'DELETE';
  _Path       = 'v2beta1/{+sinkName}';
  _Methodid   = 'logging.projects.sinks.delete';

Var
  _P : String;

begin
  _P:=SubstitutePath(_Path,['sinkName',sinkName]);
  Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TEmpty) as TEmpty;
end;



{ --------------------------------------------------------------------
  TProjectsMetricsResource
  --------------------------------------------------------------------}


Class Function TProjectsMetricsResource.ResourceName : String;

begin
  Result:='metrics';
end;

Class Function TProjectsMetricsResource.DefaultAPI : TGoogleAPIClass;

begin
  Result:=TloggingAPI;
end;

Function TProjectsMetricsResource.List(projectName: string; AQuery : string = '') : TListLogMetricsResponse;

Const
  _HTTPMethod = 'GET';
  _Path       = 'v2beta1/{+projectName}/metrics';
  _Methodid   = 'logging.projects.metrics.list';

Var
  _P : String;

begin
  _P:=SubstitutePath(_Path,['projectName',projectName]);
  Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TListLogMetricsResponse) as TListLogMetricsResponse;
end;


Function TProjectsMetricsResource.List(projectName: string; AQuery : TProjectsMetricslistOptions) : TListLogMetricsResponse;

Var
  _Q : String;

begin
  _Q:='';
  AddToQuery(_Q,'pageToken',AQuery.pageToken);
  AddToQuery(_Q,'pageSize',AQuery.pageSize);
  Result:=List(projectName,_Q);
end;

Function TProjectsMetricsResource.Get(metricName: string) : TLogMetric;

Const
  _HTTPMethod = 'GET';
  _Path       = 'v2beta1/{+metricName}';
  _Methodid   = 'logging.projects.metrics.get';

Var
  _P : String;

begin
  _P:=SubstitutePath(_Path,['metricName',metricName]);
  Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TLogMetric) as TLogMetric;
end;

Function TProjectsMetricsResource.Create(projectName: string; aLogMetric : TLogMetric) : TLogMetric;

Const
  _HTTPMethod = 'POST';
  _Path       = 'v2beta1/{+projectName}/metrics';
  _Methodid   = 'logging.projects.metrics.create';

Var
  _P : String;

begin
  _P:=SubstitutePath(_Path,['projectName',projectName]);
  Result:=ServiceCall(_HTTPMethod,_P,'',aLogMetric,TLogMetric) as TLogMetric;
end;

Function TProjectsMetricsResource.Update(metricName: string; aLogMetric : TLogMetric) : TLogMetric;

Const
  _HTTPMethod = 'PUT';
  _Path       = 'v2beta1/{+metricName}';
  _Methodid   = 'logging.projects.metrics.update';

Var
  _P : String;

begin
  _P:=SubstitutePath(_Path,['metricName',metricName]);
  Result:=ServiceCall(_HTTPMethod,_P,'',aLogMetric,TLogMetric) as TLogMetric;
end;

Function TProjectsMetricsResource.Delete(metricName: string) : TEmpty;

Const
  _HTTPMethod = 'DELETE';
  _Path       = 'v2beta1/{+metricName}';
  _Methodid   = 'logging.projects.metrics.delete';

Var
  _P : String;

begin
  _P:=SubstitutePath(_Path,['metricName',metricName]);
  Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TEmpty) as TEmpty;
end;



{ --------------------------------------------------------------------
  TProjectsResource
  --------------------------------------------------------------------}


Class Function TProjectsResource.ResourceName : String;

begin
  Result:='projects';
end;

Class Function TProjectsResource.DefaultAPI : TGoogleAPIClass;

begin
  Result:=TloggingAPI;
end;



Function TProjectsResource.GetLogsInstance : TProjectsLogsResource;

begin
  if (FLogsInstance=Nil) then
    FLogsInstance:=CreateLogsResource;
  Result:=FLogsInstance;
end;

Function TProjectsResource.CreateLogsResource : TProjectsLogsResource;

begin
  Result:=CreateLogsResource(Self);
end;


Function TProjectsResource.CreateLogsResource(AOwner : TComponent) : TProjectsLogsResource;

begin
  Result:=TProjectsLogsResource.Create(AOwner);
  Result.API:=Self.API;
end;



Function TProjectsResource.GetSinksInstance : TProjectsSinksResource;

begin
  if (FSinksInstance=Nil) then
    FSinksInstance:=CreateSinksResource;
  Result:=FSinksInstance;
end;

Function TProjectsResource.CreateSinksResource : TProjectsSinksResource;

begin
  Result:=CreateSinksResource(Self);
end;


Function TProjectsResource.CreateSinksResource(AOwner : TComponent) : TProjectsSinksResource;

begin
  Result:=TProjectsSinksResource.Create(AOwner);
  Result.API:=Self.API;
end;



Function TProjectsResource.GetMetricsInstance : TProjectsMetricsResource;

begin
  if (FMetricsInstance=Nil) then
    FMetricsInstance:=CreateMetricsResource;
  Result:=FMetricsInstance;
end;

Function TProjectsResource.CreateMetricsResource : TProjectsMetricsResource;

begin
  Result:=CreateMetricsResource(Self);
end;


Function TProjectsResource.CreateMetricsResource(AOwner : TComponent) : TProjectsMetricsResource;

begin
  Result:=TProjectsMetricsResource.Create(AOwner);
  Result.API:=Self.API;
end;



{ --------------------------------------------------------------------
  TEntriesResource
  --------------------------------------------------------------------}


Class Function TEntriesResource.ResourceName : String;

begin
  Result:='entries';
end;

Class Function TEntriesResource.DefaultAPI : TGoogleAPIClass;

begin
  Result:=TloggingAPI;
end;

Function TEntriesResource.Write(aWriteLogEntriesRequest : TWriteLogEntriesRequest) : TWriteLogEntriesResponse;

Const
  _HTTPMethod = 'POST';
  _Path       = 'v2beta1/entries:write';
  _Methodid   = 'logging.entries.write';

begin
  Result:=ServiceCall(_HTTPMethod,_Path,'',aWriteLogEntriesRequest,TWriteLogEntriesResponse) as TWriteLogEntriesResponse;
end;

Function TEntriesResource.List(aListLogEntriesRequest : TListLogEntriesRequest) : TListLogEntriesResponse;

Const
  _HTTPMethod = 'POST';
  _Path       = 'v2beta1/entries:list';
  _Methodid   = 'logging.entries.list';

begin
  Result:=ServiceCall(_HTTPMethod,_Path,'',aListLogEntriesRequest,TListLogEntriesResponse) as TListLogEntriesResponse;
end;



{ --------------------------------------------------------------------
  TMonitoredResourceDescriptorsResource
  --------------------------------------------------------------------}


Class Function TMonitoredResourceDescriptorsResource.ResourceName : String;

begin
  Result:='monitoredResourceDescriptors';
end;

Class Function TMonitoredResourceDescriptorsResource.DefaultAPI : TGoogleAPIClass;

begin
  Result:=TloggingAPI;
end;

Function TMonitoredResourceDescriptorsResource.List(AQuery : string = '') : TListMonitoredResourceDescriptorsResponse;

Const
  _HTTPMethod = 'GET';
  _Path       = 'v2beta1/monitoredResourceDescriptors';
  _Methodid   = 'logging.monitoredResourceDescriptors.list';

begin
  Result:=ServiceCall(_HTTPMethod,_Path,AQuery,Nil,TListMonitoredResourceDescriptorsResponse) as TListMonitoredResourceDescriptorsResponse;
end;


Function TMonitoredResourceDescriptorsResource.List(AQuery : TMonitoredResourceDescriptorslistOptions) : TListMonitoredResourceDescriptorsResponse;

Var
  _Q : String;

begin
  _Q:='';
  AddToQuery(_Q,'pageSize',AQuery.pageSize);
  AddToQuery(_Q,'pageToken',AQuery.pageToken);
  Result:=List(_Q);
end;



{ --------------------------------------------------------------------
  TLoggingAPI
  --------------------------------------------------------------------}

Class Function TLoggingAPI.APIName : String;

begin
  Result:='logging';
end;

Class Function TLoggingAPI.APIVersion : String;

begin
  Result:='v2beta1';
end;

Class Function TLoggingAPI.APIRevision : String;

begin
  Result:='20160322';
end;

Class Function TLoggingAPI.APIID : String;

begin
  Result:='logging:v2beta1';
end;

Class Function TLoggingAPI.APITitle : String;

begin
  Result:='Google Cloud Logging API';
end;

Class Function TLoggingAPI.APIDescription : String;

begin
  Result:='Writes log entries and manages your logs, log sinks, and logs-based metrics.';
end;

Class Function TLoggingAPI.APIOwnerDomain : String;

begin
  Result:='google.com';
end;

Class Function TLoggingAPI.APIOwnerName : String;

begin
  Result:='Google';
end;

Class Function TLoggingAPI.APIIcon16 : String;

begin
  Result:='http://www.google.com/images/icons/product/search-16.gif';
end;

Class Function TLoggingAPI.APIIcon32 : String;

begin
  Result:='http://www.google.com/images/icons/product/search-32.gif';
end;

Class Function TLoggingAPI.APIdocumentationLink : String;

begin
  Result:='https://cloud.google.com/logging/docs/';
end;

Class Function TLoggingAPI.APIrootUrl : string;

begin
  Result:='https://logging.googleapis.com/';
end;

Class Function TLoggingAPI.APIbasePath : string;

begin
  Result:='';
end;

Class Function TLoggingAPI.APIbaseURL : String;

begin
  Result:='https://logging.googleapis.com/';
end;

Class Function TLoggingAPI.APIProtocol : string;

begin
  Result:='rest';
end;

Class Function TLoggingAPI.APIservicePath : string;

begin
  Result:='';
end;

Class Function TLoggingAPI.APIbatchPath : String;

begin
  Result:='batch';
end;

Class Function TLoggingAPI.APIAuthScopes : TScopeInfoArray;

begin
  SetLength(Result,5);
  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/cloud-platform.read-only';
  Result[1].Description:='View your data across Google Cloud Platform services';
  Result[2].Name:='https://www.googleapis.com/auth/logging.admin';
  Result[2].Description:='Administrate log data for your projects';
  Result[3].Name:='https://www.googleapis.com/auth/logging.read';
  Result[3].Description:='View log data for your projects';
  Result[4].Name:='https://www.googleapis.com/auth/logging.write';
  Result[4].Description:='Submit log data for your projects';
  
end;

Class Function TLoggingAPI.APINeedsAuth : Boolean;

begin
  Result:=True;
end;

Class Procedure TLoggingAPI.RegisterAPIResources;

begin
  TEmpty.RegisterObject;
  TWriteLogEntriesRequestTypelabels.RegisterObject;
  TWriteLogEntriesRequest.RegisterObject;
  TMonitoredResourceTypelabels.RegisterObject;
  TMonitoredResource.RegisterObject;
  TLogEntryTypeprotoPayload.RegisterObject;
  TLogEntryTypejsonPayload.RegisterObject;
  TLogEntryTypelabels.RegisterObject;
  TLogEntry.RegisterObject;
  THttpRequest.RegisterObject;
  TLogEntryOperation.RegisterObject;
  TWriteLogEntriesResponse.RegisterObject;
  TListLogEntriesRequest.RegisterObject;
  TListLogEntriesResponseTypeprojectIdErrors.RegisterObject;
  TListLogEntriesResponse.RegisterObject;
  TStatusTypedetailsItem.RegisterObject;
  TStatus.RegisterObject;
  TListMonitoredResourceDescriptorsResponse.RegisterObject;
  TMonitoredResourceDescriptor.RegisterObject;
  TLabelDescriptor.RegisterObject;
  TListSinksResponse.RegisterObject;
  TLogSink.RegisterObject;
  TListLogMetricsResponse.RegisterObject;
  TLogMetric.RegisterObject;
  TRequestLog.RegisterObject;
  TLogLine.RegisterObject;
  TSourceLocation.RegisterObject;
  TSourceReference.RegisterObject;
end;


Function TLoggingAPI.GetProjectsLogsInstance : TProjectsLogsResource;

begin
  if (FProjectsLogsInstance=Nil) then
    FProjectsLogsInstance:=CreateProjectsLogsResource;
  Result:=FProjectsLogsInstance;
end;

Function TLoggingAPI.CreateProjectsLogsResource : TProjectsLogsResource;

begin
  Result:=CreateProjectsLogsResource(Self);
end;


Function TLoggingAPI.CreateProjectsLogsResource(AOwner : TComponent) : TProjectsLogsResource;

begin
  Result:=TProjectsLogsResource.Create(AOwner);
  Result.API:=Self.API;
end;



Function TLoggingAPI.GetProjectsSinksInstance : TProjectsSinksResource;

begin
  if (FProjectsSinksInstance=Nil) then
    FProjectsSinksInstance:=CreateProjectsSinksResource;
  Result:=FProjectsSinksInstance;
end;

Function TLoggingAPI.CreateProjectsSinksResource : TProjectsSinksResource;

begin
  Result:=CreateProjectsSinksResource(Self);
end;


Function TLoggingAPI.CreateProjectsSinksResource(AOwner : TComponent) : TProjectsSinksResource;

begin
  Result:=TProjectsSinksResource.Create(AOwner);
  Result.API:=Self.API;
end;



Function TLoggingAPI.GetProjectsMetricsInstance : TProjectsMetricsResource;

begin
  if (FProjectsMetricsInstance=Nil) then
    FProjectsMetricsInstance:=CreateProjectsMetricsResource;
  Result:=FProjectsMetricsInstance;
end;

Function TLoggingAPI.CreateProjectsMetricsResource : TProjectsMetricsResource;

begin
  Result:=CreateProjectsMetricsResource(Self);
end;


Function TLoggingAPI.CreateProjectsMetricsResource(AOwner : TComponent) : TProjectsMetricsResource;

begin
  Result:=TProjectsMetricsResource.Create(AOwner);
  Result.API:=Self.API;
end;



Function TLoggingAPI.GetProjectsInstance : TProjectsResource;

begin
  if (FProjectsInstance=Nil) then
    FProjectsInstance:=CreateProjectsResource;
  Result:=FProjectsInstance;
end;

Function TLoggingAPI.CreateProjectsResource : TProjectsResource;

begin
  Result:=CreateProjectsResource(Self);
end;


Function TLoggingAPI.CreateProjectsResource(AOwner : TComponent) : TProjectsResource;

begin
  Result:=TProjectsResource.Create(AOwner);
  Result.API:=Self.API;
end;



Function TLoggingAPI.GetEntriesInstance : TEntriesResource;

begin
  if (FEntriesInstance=Nil) then
    FEntriesInstance:=CreateEntriesResource;
  Result:=FEntriesInstance;
end;

Function TLoggingAPI.CreateEntriesResource : TEntriesResource;

begin
  Result:=CreateEntriesResource(Self);
end;


Function TLoggingAPI.CreateEntriesResource(AOwner : TComponent) : TEntriesResource;

begin
  Result:=TEntriesResource.Create(AOwner);
  Result.API:=Self.API;
end;



Function TLoggingAPI.GetMonitoredResourceDescriptorsInstance : TMonitoredResourceDescriptorsResource;

begin
  if (FMonitoredResourceDescriptorsInstance=Nil) then
    FMonitoredResourceDescriptorsInstance:=CreateMonitoredResourceDescriptorsResource;
  Result:=FMonitoredResourceDescriptorsInstance;
end;

Function TLoggingAPI.CreateMonitoredResourceDescriptorsResource : TMonitoredResourceDescriptorsResource;

begin
  Result:=CreateMonitoredResourceDescriptorsResource(Self);
end;


Function TLoggingAPI.CreateMonitoredResourceDescriptorsResource(AOwner : TComponent) : TMonitoredResourceDescriptorsResource;

begin
  Result:=TMonitoredResourceDescriptorsResource.Create(AOwner);
  Result.API:=Self.API;
end;



initialization
  TLoggingAPI.RegisterAPI;
end.