# zxid/sg/liberty-idwsf-pmm-v1.0.sg  -- Provisioned Module Manager
# Slightly edited, 3.6.2007, Sampo Kellomaki (sampo@iki.fi)
# $Id: liberty-idwsf-pmm-v1.0.sg,v 1.3 2007-08-10 19:19:10 sampo Exp $

target(pmm, urn:liberty:pmm:2006-12)

import(lu,   urn:liberty:util:2006-08, liberty-idwsf-utility-v2.0.xsd)
import(prov, urn:liberty:prov:2006-12, liberty-idwsf-prov-v1.0.xsd)
import(dp,   urn:liberty:dp:2006-12,   liberty-idwsf-dp-v1.0.xsd)

ns(xenc,http://www.w3.org/2001/04/xmlenc#)
ns(ds,http://www.w3.org/2000/09/xmldsig#)

%RequestAbstractType:
  @any
  ;

%ResponseAbstractType:
  lu:Status
  @any
  ;

Provision	 -> %pmm:ProvisionType
%ProvisionType:	 base(pmm:RequestAbstractType)
  prov:ProvisioningHandle?
  prov:PMDescriptor?
  dp:NotifyTo?
  @wait?	 -> %xs:boolean
  ;

ProvisionResponse	 -> %pmm:ProvisionResponseType
%ProvisionResponseType:	 base(pmm:ResponseAbstractType) ;

PMActivate	 -> %pmm:PMActivateType
%PMActivateType:	 base(pmm:RequestAbstractType)
  pmm:PMActivateItem+
  dp:NotifyTo?
  ;

PMActivateItem	 -> %pmm:PMActivateItemType
%PMActivateItemType:
  prov:PMID
  @itemID	 -> %xs:string
  @at?	 -> %xs:dateTime
  ;

PMActivateResponse	 -> %pmm:PMActivateResponseType
%PMActivateResponseType:	 base(pmm:ResponseAbstractType) ;

PMDeactivate	 -> %pmm:PMDeactivateType
%PMDeactivateType:	 base(pmm:RequestAbstractType)
  pmm:PMDeactivateItem+
  dp:NotifyTo?
  ;

PMDeactivateItem	 -> %pmm:PMDeactivateItemType
%PMDeactivateItemType:
  prov:PMID
  @itemID	 -> %xs:string
  @at?	 -> %xs:dateTime
  ;

PMDeactivateResponse	 -> %pmm:PMDeactivateResponseType
%PMDeactivateResponseType:	 base(pmm:ResponseAbstractType) ;

PMDelete	 -> %pmm:PMDeleteType
%PMDeleteType:	 base(pmm:RequestAbstractType)
  pmm:PMDeleteItem+
  ;

PMDeleteItem	 -> %pmm:PMDeleteItemType
%PMDeleteItemType:
  prov:PMID
  @itemID	 -> %xs:string
  ;

PMDeleteResponse	 -> %pmm:PMDeleteResponseType
%PMDeleteResponseType:	 base(pmm:ResponseAbstractType) ;

PMUpdate	 -> %pmm:PMUpdateType
%PMUpdateType:	 base(pmm:RequestAbstractType)
  pmm:PMUpdateItem+
  dp:NotifyTo?
  ;

PMUpdateItem	 -> %pmm:PMUpdateItemType
%PMUpdateItemType:
  prov:PMDescriptor
  @type	 -> %xs:anyURI
  @itemID	 -> %xs:string
  @at?	 -> %xs:dateTime
  ;

PMUpdateResponse	 -> %pmm:PMUpdateResponseType
%PMUpdateResponseType:	 base(pmm:ResponseAbstractType) ;

PMGetStatus	 -> %pmm:PMGetStatusType
%PMGetStatusType:	 base(pmm:RequestAbstractType)
    prov:PMID*
  ;

PMGetStatusResponse	 -> %pmm:PMGetStatusResponseType
%PMGetStatusResponseType:	 base(pmm:ResponseAbstractType)
    prov:PMStatus*
  ;

PMSetStatus	 -> %pmm:PMSetStatusType
%PMSetStatusType:	 base(pmm:RequestAbstractType)
    prov:PMStatus
  ;

PMSetStatusResponse	 -> %pmm:PMSetStatusResponseType
%PMSetStatusResponseType:	 base(pmm:ResponseAbstractType) ;

#EOF
