summaryrefslogtreecommitdiff
path: root/packages/googleapi/src/googlecloudbilling.pp
diff options
context:
space:
mode:
authormichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2016-05-24 08:35:58 +0000
committermichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2016-05-24 08:35:58 +0000
commit7a82cebc930dae276abf43ce85d9c72e74bfc760 (patch)
tree18577bceb8a58b5fd00b27a4a6a1207ee0507adc /packages/googleapi/src/googlecloudbilling.pp
parent14bb539e2cbc78a0e61bc842a2bfc1b5e458ab87 (diff)
downloadfpc-7a82cebc930dae276abf43ce85d9c72e74bfc760.tar.gz
* Updated from latest service descriptions
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@33777 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/googleapi/src/googlecloudbilling.pp')
-rw-r--r--packages/googleapi/src/googlecloudbilling.pp776
1 files changed, 776 insertions, 0 deletions
diff --git a/packages/googleapi/src/googlecloudbilling.pp b/packages/googleapi/src/googlecloudbilling.pp
new file mode 100644
index 0000000000..40a93234c2
--- /dev/null
+++ b/packages/googleapi/src/googlecloudbilling.pp
@@ -0,0 +1,776 @@
+unit googlecloudbilling;
+{$MODE objfpc}
+{$H+}
+
+interface
+
+uses sysutils, classes, googleservice, restbase, googlebase;
+
+type
+
+ //Top-level schema types
+ TBillingAccount = Class;
+ TListBillingAccountsResponse = Class;
+ TListProjectBillingInfoResponse = Class;
+ TProjectBillingInfo = Class;
+ TBillingAccountArray = Array of TBillingAccount;
+ TListBillingAccountsResponseArray = Array of TListBillingAccountsResponse;
+ TListProjectBillingInfoResponseArray = Array of TListProjectBillingInfoResponse;
+ TProjectBillingInfoArray = Array of TProjectBillingInfo;
+ //Anonymous types, using auto-generated names
+ TListBillingAccountsResponseTypebillingAccountsArray = Array of TBillingAccount;
+ TListProjectBillingInfoResponseTypeprojectBillingInfoArray = Array of TProjectBillingInfo;
+
+ { --------------------------------------------------------------------
+ TBillingAccount
+ --------------------------------------------------------------------}
+
+ TBillingAccount = Class(TGoogleBaseObject)
+ Private
+ Fname : String;
+ Fopen : boolean;
+ FdisplayName : String;
+ Protected
+ //Property setters
+ Procedure Setname(AIndex : Integer; const AValue : String); virtual;
+ Procedure Setopen(AIndex : Integer; const AValue : boolean); virtual;
+ Procedure SetdisplayName(AIndex : Integer; const AValue : String); virtual;
+ Public
+ Published
+ Property name : String Index 0 Read Fname Write Setname;
+ Property open : boolean Index 8 Read Fopen Write Setopen;
+ Property displayName : String Index 16 Read FdisplayName Write SetdisplayName;
+ end;
+ TBillingAccountClass = Class of TBillingAccount;
+
+ { --------------------------------------------------------------------
+ TListBillingAccountsResponse
+ --------------------------------------------------------------------}
+
+ TListBillingAccountsResponse = Class(TGoogleBaseObject)
+ Private
+ FbillingAccounts : TListBillingAccountsResponseTypebillingAccountsArray;
+ FnextPageToken : String;
+ Protected
+ //Property setters
+ Procedure SetbillingAccounts(AIndex : Integer; const AValue : TListBillingAccountsResponseTypebillingAccountsArray); 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 billingAccounts : TListBillingAccountsResponseTypebillingAccountsArray Index 0 Read FbillingAccounts Write SetbillingAccounts;
+ Property nextPageToken : String Index 8 Read FnextPageToken Write SetnextPageToken;
+ end;
+ TListBillingAccountsResponseClass = Class of TListBillingAccountsResponse;
+
+ { --------------------------------------------------------------------
+ TListProjectBillingInfoResponse
+ --------------------------------------------------------------------}
+
+ TListProjectBillingInfoResponse = Class(TGoogleBaseObject)
+ Private
+ FprojectBillingInfo : TListProjectBillingInfoResponseTypeprojectBillingInfoArray;
+ FnextPageToken : String;
+ Protected
+ //Property setters
+ Procedure SetprojectBillingInfo(AIndex : Integer; const AValue : TListProjectBillingInfoResponseTypeprojectBillingInfoArray); 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 projectBillingInfo : TListProjectBillingInfoResponseTypeprojectBillingInfoArray Index 0 Read FprojectBillingInfo Write SetprojectBillingInfo;
+ Property nextPageToken : String Index 8 Read FnextPageToken Write SetnextPageToken;
+ end;
+ TListProjectBillingInfoResponseClass = Class of TListProjectBillingInfoResponse;
+
+ { --------------------------------------------------------------------
+ TProjectBillingInfo
+ --------------------------------------------------------------------}
+
+ TProjectBillingInfo = Class(TGoogleBaseObject)
+ Private
+ Fname : String;
+ FprojectId : String;
+ FbillingAccountName : String;
+ FbillingEnabled : boolean;
+ Protected
+ //Property setters
+ Procedure Setname(AIndex : Integer; const AValue : String); virtual;
+ Procedure SetprojectId(AIndex : Integer; const AValue : String); virtual;
+ Procedure SetbillingAccountName(AIndex : Integer; const AValue : String); virtual;
+ Procedure SetbillingEnabled(AIndex : Integer; const AValue : boolean); virtual;
+ Public
+ Published
+ Property name : String Index 0 Read Fname Write Setname;
+ Property projectId : String Index 8 Read FprojectId Write SetprojectId;
+ Property billingAccountName : String Index 16 Read FbillingAccountName Write SetbillingAccountName;
+ Property billingEnabled : boolean Index 24 Read FbillingEnabled Write SetbillingEnabled;
+ end;
+ TProjectBillingInfoClass = Class of TProjectBillingInfo;
+
+ { --------------------------------------------------------------------
+ TBillingAccountsProjectsResource
+ --------------------------------------------------------------------}
+
+
+ //Optional query Options for TBillingAccountsProjectsResource, method List
+
+ TBillingAccountsProjectsListOptions = Record
+ pageSize : integer;
+ pageToken : String;
+ end;
+
+ TBillingAccountsProjectsResource = Class(TGoogleResource)
+ Public
+ Class Function ResourceName : String; override;
+ Class Function DefaultAPI : TGoogleAPIClass; override;
+ Function List(_name: string; AQuery : string = '') : TListProjectBillingInfoResponse;
+ Function List(_name: string; AQuery : TBillingAccountsProjectslistOptions) : TListProjectBillingInfoResponse;
+ end;
+
+
+ { --------------------------------------------------------------------
+ TBillingAccountsResource
+ --------------------------------------------------------------------}
+
+
+ //Optional query Options for TBillingAccountsResource, method List
+
+ TBillingAccountsListOptions = Record
+ pageSize : integer;
+ pageToken : String;
+ end;
+
+ TBillingAccountsResource = Class(TGoogleResource)
+ Private
+ FProjectsInstance : TBillingAccountsProjectsResource;
+ Function GetProjectsInstance : TBillingAccountsProjectsResource;virtual;
+ Public
+ Class Function ResourceName : String; override;
+ Class Function DefaultAPI : TGoogleAPIClass; override;
+ Function Get(_name: string) : TBillingAccount;
+ Function List(AQuery : string = '') : TListBillingAccountsResponse;
+ Function List(AQuery : TBillingAccountslistOptions) : TListBillingAccountsResponse;
+ Function CreateProjectsResource(AOwner : TComponent) : TBillingAccountsProjectsResource;virtual;overload;
+ Function CreateProjectsResource : TBillingAccountsProjectsResource;virtual;overload;
+ Property ProjectsResource : TBillingAccountsProjectsResource Read GetProjectsInstance;
+ end;
+
+
+ { --------------------------------------------------------------------
+ TProjectsResource
+ --------------------------------------------------------------------}
+
+ TProjectsResource = Class(TGoogleResource)
+ Public
+ Class Function ResourceName : String; override;
+ Class Function DefaultAPI : TGoogleAPIClass; override;
+ Function GetBillingInfo(_name: string) : TProjectBillingInfo;
+ Function UpdateBillingInfo(_name: string; aProjectBillingInfo : TProjectBillingInfo) : TProjectBillingInfo;
+ end;
+
+
+ { --------------------------------------------------------------------
+ TCloudbillingAPI
+ --------------------------------------------------------------------}
+
+ TCloudbillingAPI = Class(TGoogleAPI)
+ Private
+ FBillingAccountsProjectsInstance : TBillingAccountsProjectsResource;
+ FBillingAccountsInstance : TBillingAccountsResource;
+ FProjectsInstance : TProjectsResource;
+ Function GetBillingAccountsProjectsInstance : TBillingAccountsProjectsResource;virtual;
+ Function GetBillingAccountsInstance : TBillingAccountsResource;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 CreateBillingAccountsProjectsResource(AOwner : TComponent) : TBillingAccountsProjectsResource;virtual;overload;
+ Function CreateBillingAccountsProjectsResource : TBillingAccountsProjectsResource;virtual;overload;
+ Function CreateBillingAccountsResource(AOwner : TComponent) : TBillingAccountsResource;virtual;overload;
+ Function CreateBillingAccountsResource : TBillingAccountsResource;virtual;overload;
+ Function CreateProjectsResource(AOwner : TComponent) : TProjectsResource;virtual;overload;
+ Function CreateProjectsResource : TProjectsResource;virtual;overload;
+ //Add default on-demand instances for resources
+ Property BillingAccountsProjectsResource : TBillingAccountsProjectsResource Read GetBillingAccountsProjectsInstance;
+ Property BillingAccountsResource : TBillingAccountsResource Read GetBillingAccountsInstance;
+ Property ProjectsResource : TProjectsResource Read GetProjectsInstance;
+ end;
+
+implementation
+
+
+{ --------------------------------------------------------------------
+ TBillingAccount
+ --------------------------------------------------------------------}
+
+
+Procedure TBillingAccount.Setname(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fname=AValue) then exit;
+ Fname:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBillingAccount.Setopen(AIndex : Integer; const AValue : boolean);
+
+begin
+ If (Fopen=AValue) then exit;
+ Fopen:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TBillingAccount.SetdisplayName(AIndex : Integer; const AValue : String);
+
+begin
+ If (FdisplayName=AValue) then exit;
+ FdisplayName:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+
+
+{ --------------------------------------------------------------------
+ TListBillingAccountsResponse
+ --------------------------------------------------------------------}
+
+
+Procedure TListBillingAccountsResponse.SetbillingAccounts(AIndex : Integer; const AValue : TListBillingAccountsResponseTypebillingAccountsArray);
+
+begin
+ If (FbillingAccounts=AValue) then exit;
+ FbillingAccounts:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TListBillingAccountsResponse.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 TListBillingAccountsResponse.SetArrayLength(Const AName : String; ALength : Longint);
+
+begin
+ Case AName of
+ 'billingaccounts' : SetLength(FbillingAccounts,ALength);
+ else
+ Inherited SetArrayLength(AName,ALength);
+ end;
+end;
+{$ENDIF VER2_6}
+
+
+
+
+{ --------------------------------------------------------------------
+ TListProjectBillingInfoResponse
+ --------------------------------------------------------------------}
+
+
+Procedure TListProjectBillingInfoResponse.SetprojectBillingInfo(AIndex : Integer; const AValue : TListProjectBillingInfoResponseTypeprojectBillingInfoArray);
+
+begin
+ If (FprojectBillingInfo=AValue) then exit;
+ FprojectBillingInfo:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TListProjectBillingInfoResponse.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 TListProjectBillingInfoResponse.SetArrayLength(Const AName : String; ALength : Longint);
+
+begin
+ Case AName of
+ 'projectbillinginfo' : SetLength(FprojectBillingInfo,ALength);
+ else
+ Inherited SetArrayLength(AName,ALength);
+ end;
+end;
+{$ENDIF VER2_6}
+
+
+
+
+{ --------------------------------------------------------------------
+ TProjectBillingInfo
+ --------------------------------------------------------------------}
+
+
+Procedure TProjectBillingInfo.Setname(AIndex : Integer; const AValue : String);
+
+begin
+ If (Fname=AValue) then exit;
+ Fname:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TProjectBillingInfo.SetprojectId(AIndex : Integer; const AValue : String);
+
+begin
+ If (FprojectId=AValue) then exit;
+ FprojectId:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TProjectBillingInfo.SetbillingAccountName(AIndex : Integer; const AValue : String);
+
+begin
+ If (FbillingAccountName=AValue) then exit;
+ FbillingAccountName:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+Procedure TProjectBillingInfo.SetbillingEnabled(AIndex : Integer; const AValue : boolean);
+
+begin
+ If (FbillingEnabled=AValue) then exit;
+ FbillingEnabled:=AValue;
+ MarkPropertyChanged(AIndex);
+end;
+
+
+
+
+
+{ --------------------------------------------------------------------
+ TBillingAccountsProjectsResource
+ --------------------------------------------------------------------}
+
+
+Class Function TBillingAccountsProjectsResource.ResourceName : String;
+
+begin
+ Result:='projects';
+end;
+
+Class Function TBillingAccountsProjectsResource.DefaultAPI : TGoogleAPIClass;
+
+begin
+ Result:=TcloudbillingAPI;
+end;
+
+Function TBillingAccountsProjectsResource.List(_name: string; AQuery : string = '') : TListProjectBillingInfoResponse;
+
+Const
+ _HTTPMethod = 'GET';
+ _Path = 'v1/{+name}/projects';
+ _Methodid = 'cloudbilling.billingAccounts.projects.list';
+
+Var
+ _P : String;
+
+begin
+ _P:=SubstitutePath(_Path,['name',_name]);
+ Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TListProjectBillingInfoResponse) as TListProjectBillingInfoResponse;
+end;
+
+
+Function TBillingAccountsProjectsResource.List(_name: string; AQuery : TBillingAccountsProjectslistOptions) : TListProjectBillingInfoResponse;
+
+Var
+ _Q : String;
+
+begin
+ _Q:='';
+ AddToQuery(_Q,'pageSize',AQuery.pageSize);
+ AddToQuery(_Q,'pageToken',AQuery.pageToken);
+ Result:=List(_name,_Q);
+end;
+
+
+
+{ --------------------------------------------------------------------
+ TBillingAccountsResource
+ --------------------------------------------------------------------}
+
+
+Class Function TBillingAccountsResource.ResourceName : String;
+
+begin
+ Result:='billingAccounts';
+end;
+
+Class Function TBillingAccountsResource.DefaultAPI : TGoogleAPIClass;
+
+begin
+ Result:=TcloudbillingAPI;
+end;
+
+Function TBillingAccountsResource.Get(_name: string) : TBillingAccount;
+
+Const
+ _HTTPMethod = 'GET';
+ _Path = 'v1/{+name}';
+ _Methodid = 'cloudbilling.billingAccounts.get';
+
+Var
+ _P : String;
+
+begin
+ _P:=SubstitutePath(_Path,['name',_name]);
+ Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TBillingAccount) as TBillingAccount;
+end;
+
+Function TBillingAccountsResource.List(AQuery : string = '') : TListBillingAccountsResponse;
+
+Const
+ _HTTPMethod = 'GET';
+ _Path = 'v1/billingAccounts';
+ _Methodid = 'cloudbilling.billingAccounts.list';
+
+begin
+ Result:=ServiceCall(_HTTPMethod,_Path,AQuery,Nil,TListBillingAccountsResponse) as TListBillingAccountsResponse;
+end;
+
+
+Function TBillingAccountsResource.List(AQuery : TBillingAccountslistOptions) : TListBillingAccountsResponse;
+
+Var
+ _Q : String;
+
+begin
+ _Q:='';
+ AddToQuery(_Q,'pageSize',AQuery.pageSize);
+ AddToQuery(_Q,'pageToken',AQuery.pageToken);
+ Result:=List(_Q);
+end;
+
+
+
+Function TBillingAccountsResource.GetProjectsInstance : TBillingAccountsProjectsResource;
+
+begin
+ if (FProjectsInstance=Nil) then
+ FProjectsInstance:=CreateProjectsResource;
+ Result:=FProjectsInstance;
+end;
+
+Function TBillingAccountsResource.CreateProjectsResource : TBillingAccountsProjectsResource;
+
+begin
+ Result:=CreateProjectsResource(Self);
+end;
+
+
+Function TBillingAccountsResource.CreateProjectsResource(AOwner : TComponent) : TBillingAccountsProjectsResource;
+
+begin
+ Result:=TBillingAccountsProjectsResource.Create(AOwner);
+ Result.API:=Self.API;
+end;
+
+
+
+{ --------------------------------------------------------------------
+ TProjectsResource
+ --------------------------------------------------------------------}
+
+
+Class Function TProjectsResource.ResourceName : String;
+
+begin
+ Result:='projects';
+end;
+
+Class Function TProjectsResource.DefaultAPI : TGoogleAPIClass;
+
+begin
+ Result:=TcloudbillingAPI;
+end;
+
+Function TProjectsResource.GetBillingInfo(_name: string) : TProjectBillingInfo;
+
+Const
+ _HTTPMethod = 'GET';
+ _Path = 'v1/{+name}/billingInfo';
+ _Methodid = 'cloudbilling.projects.getBillingInfo';
+
+Var
+ _P : String;
+
+begin
+ _P:=SubstitutePath(_Path,['name',_name]);
+ Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TProjectBillingInfo) as TProjectBillingInfo;
+end;
+
+Function TProjectsResource.UpdateBillingInfo(_name: string; aProjectBillingInfo : TProjectBillingInfo) : TProjectBillingInfo;
+
+Const
+ _HTTPMethod = 'PUT';
+ _Path = 'v1/{+name}/billingInfo';
+ _Methodid = 'cloudbilling.projects.updateBillingInfo';
+
+Var
+ _P : String;
+
+begin
+ _P:=SubstitutePath(_Path,['name',_name]);
+ Result:=ServiceCall(_HTTPMethod,_P,'',aProjectBillingInfo,TProjectBillingInfo) as TProjectBillingInfo;
+end;
+
+
+
+{ --------------------------------------------------------------------
+ TCloudbillingAPI
+ --------------------------------------------------------------------}
+
+Class Function TCloudbillingAPI.APIName : String;
+
+begin
+ Result:='cloudbilling';
+end;
+
+Class Function TCloudbillingAPI.APIVersion : String;
+
+begin
+ Result:='v1';
+end;
+
+Class Function TCloudbillingAPI.APIRevision : String;
+
+begin
+ Result:='20151222';
+end;
+
+Class Function TCloudbillingAPI.APIID : String;
+
+begin
+ Result:='cloudbilling:v1';
+end;
+
+Class Function TCloudbillingAPI.APITitle : String;
+
+begin
+ Result:='Google Cloud Billing API';
+end;
+
+Class Function TCloudbillingAPI.APIDescription : String;
+
+begin
+ Result:='Retrieves Google Developers Console billing accounts and associates them with projects.';
+end;
+
+Class Function TCloudbillingAPI.APIOwnerDomain : String;
+
+begin
+ Result:='google.com';
+end;
+
+Class Function TCloudbillingAPI.APIOwnerName : String;
+
+begin
+ Result:='Google';
+end;
+
+Class Function TCloudbillingAPI.APIIcon16 : String;
+
+begin
+ Result:='http://www.google.com/images/icons/product/search-16.gif';
+end;
+
+Class Function TCloudbillingAPI.APIIcon32 : String;
+
+begin
+ Result:='http://www.google.com/images/icons/product/search-32.gif';
+end;
+
+Class Function TCloudbillingAPI.APIdocumentationLink : String;
+
+begin
+ Result:='https://cloud.google.com/billing/';
+end;
+
+Class Function TCloudbillingAPI.APIrootUrl : string;
+
+begin
+ Result:='https://cloudbilling.googleapis.com/';
+end;
+
+Class Function TCloudbillingAPI.APIbasePath : string;
+
+begin
+ Result:='';
+end;
+
+Class Function TCloudbillingAPI.APIbaseURL : String;
+
+begin
+ Result:='https://cloudbilling.googleapis.com/';
+end;
+
+Class Function TCloudbillingAPI.APIProtocol : string;
+
+begin
+ Result:='rest';
+end;
+
+Class Function TCloudbillingAPI.APIservicePath : string;
+
+begin
+ Result:='';
+end;
+
+Class Function TCloudbillingAPI.APIbatchPath : String;
+
+begin
+ Result:='batch';
+end;
+
+Class Function TCloudbillingAPI.APIAuthScopes : TScopeInfoArray;
+
+begin
+ SetLength(Result,1);
+ Result[0].Name:='https://www.googleapis.com/auth/cloud-platform';
+ Result[0].Description:='View and manage your data across Google Cloud Platform services';
+
+end;
+
+Class Function TCloudbillingAPI.APINeedsAuth : Boolean;
+
+begin
+ Result:=True;
+end;
+
+Class Procedure TCloudbillingAPI.RegisterAPIResources;
+
+begin
+ TBillingAccount.RegisterObject;
+ TListBillingAccountsResponse.RegisterObject;
+ TListProjectBillingInfoResponse.RegisterObject;
+ TProjectBillingInfo.RegisterObject;
+end;
+
+
+Function TCloudbillingAPI.GetBillingAccountsProjectsInstance : TBillingAccountsProjectsResource;
+
+begin
+ if (FBillingAccountsProjectsInstance=Nil) then
+ FBillingAccountsProjectsInstance:=CreateBillingAccountsProjectsResource;
+ Result:=FBillingAccountsProjectsInstance;
+end;
+
+Function TCloudbillingAPI.CreateBillingAccountsProjectsResource : TBillingAccountsProjectsResource;
+
+begin
+ Result:=CreateBillingAccountsProjectsResource(Self);
+end;
+
+
+Function TCloudbillingAPI.CreateBillingAccountsProjectsResource(AOwner : TComponent) : TBillingAccountsProjectsResource;
+
+begin
+ Result:=TBillingAccountsProjectsResource.Create(AOwner);
+ Result.API:=Self.API;
+end;
+
+
+
+Function TCloudbillingAPI.GetBillingAccountsInstance : TBillingAccountsResource;
+
+begin
+ if (FBillingAccountsInstance=Nil) then
+ FBillingAccountsInstance:=CreateBillingAccountsResource;
+ Result:=FBillingAccountsInstance;
+end;
+
+Function TCloudbillingAPI.CreateBillingAccountsResource : TBillingAccountsResource;
+
+begin
+ Result:=CreateBillingAccountsResource(Self);
+end;
+
+
+Function TCloudbillingAPI.CreateBillingAccountsResource(AOwner : TComponent) : TBillingAccountsResource;
+
+begin
+ Result:=TBillingAccountsResource.Create(AOwner);
+ Result.API:=Self.API;
+end;
+
+
+
+Function TCloudbillingAPI.GetProjectsInstance : TProjectsResource;
+
+begin
+ if (FProjectsInstance=Nil) then
+ FProjectsInstance:=CreateProjectsResource;
+ Result:=FProjectsInstance;
+end;
+
+Function TCloudbillingAPI.CreateProjectsResource : TProjectsResource;
+
+begin
+ Result:=CreateProjectsResource(Self);
+end;
+
+
+Function TCloudbillingAPI.CreateProjectsResource(AOwner : TComponent) : TProjectsResource;
+
+begin
+ Result:=TProjectsResource.Create(AOwner);
+ Result.API:=Self.API;
+end;
+
+
+
+initialization
+ TCloudbillingAPI.RegisterAPI;
+end.