Repository URL to install this package:
|
Version:
3.2.0 ▾
|
unit googlelicensing;
{$MODE objfpc}
{$H+}
interface
uses sysutils, classes, googleservice, restbase, googlebase;
type
//Top-level schema types
TLicenseAssignment = Class;
TLicenseAssignmentInsert = Class;
TLicenseAssignmentList = Class;
TLicenseAssignmentArray = Array of TLicenseAssignment;
TLicenseAssignmentInsertArray = Array of TLicenseAssignmentInsert;
TLicenseAssignmentListArray = Array of TLicenseAssignmentList;
//Anonymous types, using auto-generated names
TLicenseAssignmentListTypeitemsArray = Array of TLicenseAssignment;
{ --------------------------------------------------------------------
TLicenseAssignment
--------------------------------------------------------------------}
TLicenseAssignment = Class(TGoogleBaseObject)
Private
Fetags : String;
Fkind : String;
FproductId : String;
FselfLink : String;
FskuId : String;
FuserId : String;
Protected
//Property setters
Procedure Setetags(AIndex : Integer; const AValue : String); virtual;
Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
Procedure SetproductId(AIndex : Integer; const AValue : String); virtual;
Procedure SetselfLink(AIndex : Integer; const AValue : String); virtual;
Procedure SetskuId(AIndex : Integer; const AValue : String); virtual;
Procedure SetuserId(AIndex : Integer; const AValue : String); virtual;
Public
Published
Property etags : String Index 0 Read Fetags Write Setetags;
Property kind : String Index 8 Read Fkind Write Setkind;
Property productId : String Index 16 Read FproductId Write SetproductId;
Property selfLink : String Index 24 Read FselfLink Write SetselfLink;
Property skuId : String Index 32 Read FskuId Write SetskuId;
Property userId : String Index 40 Read FuserId Write SetuserId;
end;
TLicenseAssignmentClass = Class of TLicenseAssignment;
{ --------------------------------------------------------------------
TLicenseAssignmentInsert
--------------------------------------------------------------------}
TLicenseAssignmentInsert = Class(TGoogleBaseObject)
Private
FuserId : String;
Protected
//Property setters
Procedure SetuserId(AIndex : Integer; const AValue : String); virtual;
Public
Published
Property userId : String Index 0 Read FuserId Write SetuserId;
end;
TLicenseAssignmentInsertClass = Class of TLicenseAssignmentInsert;
{ --------------------------------------------------------------------
TLicenseAssignmentList
--------------------------------------------------------------------}
TLicenseAssignmentList = Class(TGoogleBaseObject)
Private
Fetag : String;
Fitems : TLicenseAssignmentListTypeitemsArray;
Fkind : String;
FnextPageToken : String;
Protected
//Property setters
Procedure Setetag(AIndex : Integer; const AValue : String); virtual;
Procedure Setitems(AIndex : Integer; const AValue : TLicenseAssignmentListTypeitemsArray); virtual;
Procedure Setkind(AIndex : Integer; const AValue : String); virtual;
Procedure SetnextPageToken(AIndex : Integer; const AValue : String); virtual;
//2.6.4. bug workaround
{$IFDEF VER2_6}
Procedure SetArrayLength(Const AName : String; ALength : Longint); override;
{$ENDIF VER2_6}
Public
Published
Property etag : String Index 0 Read Fetag Write Setetag;
Property items : TLicenseAssignmentListTypeitemsArray Index 8 Read Fitems Write Setitems;
Property kind : String Index 16 Read Fkind Write Setkind;
Property nextPageToken : String Index 24 Read FnextPageToken Write SetnextPageToken;
end;
TLicenseAssignmentListClass = Class of TLicenseAssignmentList;
{ --------------------------------------------------------------------
TLicenseAssignmentsResource
--------------------------------------------------------------------}
//Optional query Options for TLicenseAssignmentsResource, method ListForProduct
TLicenseAssignmentsListForProductOptions = Record
customerId : String;
maxResults : integer;
pageToken : String;
end;
//Optional query Options for TLicenseAssignmentsResource, method ListForProductAndSku
TLicenseAssignmentsListForProductAndSkuOptions = Record
customerId : String;
maxResults : integer;
pageToken : String;
end;
TLicenseAssignmentsResource = Class(TGoogleResource)
Public
Class Function ResourceName : String; override;
Class Function DefaultAPI : TGoogleAPIClass; override;
Procedure Delete(productId: string; skuId: string; userId: string);
Function Get(productId: string; skuId: string; userId: string) : TLicenseAssignment;
Function Insert(productId: string; skuId: string; aLicenseAssignmentInsert : TLicenseAssignmentInsert) : TLicenseAssignment;
Function ListForProduct(productId: string; AQuery : string = '') : TLicenseAssignmentList;
Function ListForProduct(productId: string; AQuery : TLicenseAssignmentslistForProductOptions) : TLicenseAssignmentList;
Function ListForProductAndSku(productId: string; skuId: string; AQuery : string = '') : TLicenseAssignmentList;
Function ListForProductAndSku(productId: string; skuId: string; AQuery : TLicenseAssignmentslistForProductAndSkuOptions) : TLicenseAssignmentList;
Function Patch(productId: string; skuId: string; userId: string; aLicenseAssignment : TLicenseAssignment) : TLicenseAssignment;
Function Update(productId: string; skuId: string; userId: string; aLicenseAssignment : TLicenseAssignment) : TLicenseAssignment;
end;
{ --------------------------------------------------------------------
TLicensingAPI
--------------------------------------------------------------------}
TLicensingAPI = Class(TGoogleAPI)
Private
FLicenseAssignmentsInstance : TLicenseAssignmentsResource;
Function GetLicenseAssignmentsInstance : TLicenseAssignmentsResource;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 CreateLicenseAssignmentsResource(AOwner : TComponent) : TLicenseAssignmentsResource;virtual;overload;
Function CreateLicenseAssignmentsResource : TLicenseAssignmentsResource;virtual;overload;
//Add default on-demand instances for resources
Property LicenseAssignmentsResource : TLicenseAssignmentsResource Read GetLicenseAssignmentsInstance;
end;
implementation
{ --------------------------------------------------------------------
TLicenseAssignment
--------------------------------------------------------------------}
Procedure TLicenseAssignment.Setetags(AIndex : Integer; const AValue : String);
begin
If (Fetags=AValue) then exit;
Fetags:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TLicenseAssignment.Setkind(AIndex : Integer; const AValue : String);
begin
If (Fkind=AValue) then exit;
Fkind:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TLicenseAssignment.SetproductId(AIndex : Integer; const AValue : String);
begin
If (FproductId=AValue) then exit;
FproductId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TLicenseAssignment.SetselfLink(AIndex : Integer; const AValue : String);
begin
If (FselfLink=AValue) then exit;
FselfLink:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TLicenseAssignment.SetskuId(AIndex : Integer; const AValue : String);
begin
If (FskuId=AValue) then exit;
FskuId:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TLicenseAssignment.SetuserId(AIndex : Integer; const AValue : String);
begin
If (FuserId=AValue) then exit;
FuserId:=AValue;
MarkPropertyChanged(AIndex);
end;
{ --------------------------------------------------------------------
TLicenseAssignmentInsert
--------------------------------------------------------------------}
Procedure TLicenseAssignmentInsert.SetuserId(AIndex : Integer; const AValue : String);
begin
If (FuserId=AValue) then exit;
FuserId:=AValue;
MarkPropertyChanged(AIndex);
end;
{ --------------------------------------------------------------------
TLicenseAssignmentList
--------------------------------------------------------------------}
Procedure TLicenseAssignmentList.Setetag(AIndex : Integer; const AValue : String);
begin
If (Fetag=AValue) then exit;
Fetag:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TLicenseAssignmentList.Setitems(AIndex : Integer; const AValue : TLicenseAssignmentListTypeitemsArray);
begin
If (Fitems=AValue) then exit;
Fitems:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TLicenseAssignmentList.Setkind(AIndex : Integer; const AValue : String);
begin
If (Fkind=AValue) then exit;
Fkind:=AValue;
MarkPropertyChanged(AIndex);
end;
Procedure TLicenseAssignmentList.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 TLicenseAssignmentList.SetArrayLength(Const AName : String; ALength : Longint);
begin
Case AName of
'items' : SetLength(Fitems,ALength);
else
Inherited SetArrayLength(AName,ALength);
end;
end;
{$ENDIF VER2_6}
{ --------------------------------------------------------------------
TLicenseAssignmentsResource
--------------------------------------------------------------------}
Class Function TLicenseAssignmentsResource.ResourceName : String;
begin
Result:='licenseAssignments';
end;
Class Function TLicenseAssignmentsResource.DefaultAPI : TGoogleAPIClass;
begin
Result:=TlicensingAPI;
end;
Procedure TLicenseAssignmentsResource.Delete(productId: string; skuId: string; userId: string);
Const
_HTTPMethod = 'DELETE';
_Path = '{productId}/sku/{skuId}/user/{userId}';
_Methodid = 'licensing.licenseAssignments.delete';
Var
_P : String;
begin
_P:=SubstitutePath(_Path,['productId',productId,'skuId',skuId,'userId',userId]);
ServiceCall(_HTTPMethod,_P,'',Nil,Nil);
end;
Function TLicenseAssignmentsResource.Get(productId: string; skuId: string; userId: string) : TLicenseAssignment;
Const
_HTTPMethod = 'GET';
_Path = '{productId}/sku/{skuId}/user/{userId}';
_Methodid = 'licensing.licenseAssignments.get';
Var
_P : String;
begin
_P:=SubstitutePath(_Path,['productId',productId,'skuId',skuId,'userId',userId]);
Result:=ServiceCall(_HTTPMethod,_P,'',Nil,TLicenseAssignment) as TLicenseAssignment;
end;
Function TLicenseAssignmentsResource.Insert(productId: string; skuId: string; aLicenseAssignmentInsert : TLicenseAssignmentInsert) : TLicenseAssignment;
Const
_HTTPMethod = 'POST';
_Path = '{productId}/sku/{skuId}/user';
_Methodid = 'licensing.licenseAssignments.insert';
Var
_P : String;
begin
_P:=SubstitutePath(_Path,['productId',productId,'skuId',skuId]);
Result:=ServiceCall(_HTTPMethod,_P,'',aLicenseAssignmentInsert,TLicenseAssignment) as TLicenseAssignment;
end;
Function TLicenseAssignmentsResource.ListForProduct(productId: string; AQuery : string = '') : TLicenseAssignmentList;
Const
_HTTPMethod = 'GET';
_Path = '{productId}/users';
_Methodid = 'licensing.licenseAssignments.listForProduct';
Var
_P : String;
begin
_P:=SubstitutePath(_Path,['productId',productId]);
Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TLicenseAssignmentList) as TLicenseAssignmentList;
end;
Function TLicenseAssignmentsResource.ListForProduct(productId: string; AQuery : TLicenseAssignmentslistForProductOptions) : TLicenseAssignmentList;
Var
_Q : String;
begin
_Q:='';
AddToQuery(_Q,'customerId',AQuery.customerId);
AddToQuery(_Q,'maxResults',AQuery.maxResults);
AddToQuery(_Q,'pageToken',AQuery.pageToken);
Result:=ListForProduct(productId,_Q);
end;
Function TLicenseAssignmentsResource.ListForProductAndSku(productId: string; skuId: string; AQuery : string = '') : TLicenseAssignmentList;
Const
_HTTPMethod = 'GET';
_Path = '{productId}/sku/{skuId}/users';
_Methodid = 'licensing.licenseAssignments.listForProductAndSku';
Var
_P : String;
begin
_P:=SubstitutePath(_Path,['productId',productId,'skuId',skuId]);
Result:=ServiceCall(_HTTPMethod,_P,AQuery,Nil,TLicenseAssignmentList) as TLicenseAssignmentList;
end;
Function TLicenseAssignmentsResource.ListForProductAndSku(productId: string; skuId: string; AQuery : TLicenseAssignmentslistForProductAndSkuOptions) : TLicenseAssignmentList;
Var
_Q : String;
begin
_Q:='';
AddToQuery(_Q,'customerId',AQuery.customerId);
AddToQuery(_Q,'maxResults',AQuery.maxResults);
AddToQuery(_Q,'pageToken',AQuery.pageToken);
Result:=ListForProductAndSku(productId,skuId,_Q);
end;
Function TLicenseAssignmentsResource.Patch(productId: string; skuId: string; userId: string; aLicenseAssignment : TLicenseAssignment) : TLicenseAssignment;
Const
_HTTPMethod = 'PATCH';
_Path = '{productId}/sku/{skuId}/user/{userId}';
_Methodid = 'licensing.licenseAssignments.patch';
Var
_P : String;
begin
_P:=SubstitutePath(_Path,['productId',productId,'skuId',skuId,'userId',userId]);
Result:=ServiceCall(_HTTPMethod,_P,'',aLicenseAssignment,TLicenseAssignment) as TLicenseAssignment;
end;
Function TLicenseAssignmentsResource.Update(productId: string; skuId: string; userId: string; aLicenseAssignment : TLicenseAssignment) : TLicenseAssignment;
Const
_HTTPMethod = 'PUT';
_Path = '{productId}/sku/{skuId}/user/{userId}';
_Methodid = 'licensing.licenseAssignments.update';
Var
_P : String;
begin
_P:=SubstitutePath(_Path,['productId',productId,'skuId',skuId,'userId',userId]);
Result:=ServiceCall(_HTTPMethod,_P,'',aLicenseAssignment,TLicenseAssignment) as TLicenseAssignment;
end;
{ --------------------------------------------------------------------
TLicensingAPI
--------------------------------------------------------------------}
Class Function TLicensingAPI.APIName : String;
begin
Result:='licensing';
end;
Class Function TLicensingAPI.APIVersion : String;
begin
Result:='v1';
end;
Class Function TLicensingAPI.APIRevision : String;
begin
Result:='20150901';
end;
Class Function TLicensingAPI.APIID : String;
begin
Result:='licensing:v1';
end;
Class Function TLicensingAPI.APITitle : String;
begin
Result:='Enterprise License Manager API';
end;
Class Function TLicensingAPI.APIDescription : String;
begin
Result:='Licensing API to view and manage license for your domain.';
end;
Class Function TLicensingAPI.APIOwnerDomain : String;
begin
Result:='google.com';
end;
Class Function TLicensingAPI.APIOwnerName : String;
begin
Result:='Google';
end;
Class Function TLicensingAPI.APIIcon16 : String;
begin
Result:='http://www.google.com/images/icons/product/search-16.gif';
end;
Class Function TLicensingAPI.APIIcon32 : String;
begin
Result:='http://www.google.com/images/icons/product/search-32.gif';
end;
Class Function TLicensingAPI.APIdocumentationLink : String;
begin
Result:='https://developers.google.com/google-apps/licensing/';
end;
Class Function TLicensingAPI.APIrootUrl : string;
begin
Result:='https://www.googleapis.com/';
end;
Class Function TLicensingAPI.APIbasePath : string;
begin
Result:='/apps/licensing/v1/product/';
end;
Class Function TLicensingAPI.APIbaseURL : String;
begin
Result:='https://www.googleapis.com/apps/licensing/v1/product/';
end;
Class Function TLicensingAPI.APIProtocol : string;
begin
Result:='rest';
end;
Class Function TLicensingAPI.APIservicePath : string;
begin
Result:='apps/licensing/v1/product/';
end;
Class Function TLicensingAPI.APIbatchPath : String;
begin
Result:='batch';
end;
Class Function TLicensingAPI.APIAuthScopes : TScopeInfoArray;
begin
SetLength(Result,1);
Result[0].Name:='https://www.googleapis.com/auth/apps.licensing';
Result[0].Description:='View and manage Google Apps licenses for your domain';
end;
Class Function TLicensingAPI.APINeedsAuth : Boolean;
begin
Result:=True;
end;
Class Procedure TLicensingAPI.RegisterAPIResources;
begin
TLicenseAssignment.RegisterObject;
TLicenseAssignmentInsert.RegisterObject;
TLicenseAssignmentList.RegisterObject;
end;
Function TLicensingAPI.GetLicenseAssignmentsInstance : TLicenseAssignmentsResource;
begin
if (FLicenseAssignmentsInstance=Nil) then
FLicenseAssignmentsInstance:=CreateLicenseAssignmentsResource;
Result:=FLicenseAssignmentsInstance;
end;
Function TLicensingAPI.CreateLicenseAssignmentsResource : TLicenseAssignmentsResource;
begin
Result:=CreateLicenseAssignmentsResource(Self);
end;
Function TLicensingAPI.CreateLicenseAssignmentsResource(AOwner : TComponent) : TLicenseAssignmentsResource;
begin
Result:=TLicenseAssignmentsResource.Create(AOwner);
Result.API:=Self.API;
end;
initialization
TLicensingAPI.RegisterAPI;
end.