OneM2M_Templates.ttcn 73.9 KB
Newer Older
1
2
3
4
5
6
7
8
/**
 *  Copyright Notification
 *  No part of this document may be reproduced, in an electronic retrieval system or otherwise, except as authorized by written permission.
 *  The copyright and the foregoing restriction extend to reproduction in all media.
 *  © 2016, oneM2M Partners Type 1 (ARIB, ATIS, CCSA, ETSI, TIA, TSDSI, TTA, TTC).
 *  All rights reserved.
 *  
 *  @author     ETSI
9
 *  @version    $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $
10
 *              $Id: OneM2M_Templates.ttcn 179 2016-11-24 10:39:02Z carres $
11
12
13
14
15
16
17
18
19
20
21
 *  @desc       Module containing templates for oneM2M
 *
 */
module OneM2M_Templates {

	import from XSD all;
	import from OneM2M_Types all;
	import from OneM2M_TestSystem all;
	import from OneM2M_TypesAndValues all;
	//import from OneM2M_AdditionalTypes all;
	import from OneM2M_Pixits all;
22
	//import from OneM2M_Functions all;
23

24
		
25
26
27
28
29
30
	/**
	 * @desc Get a converted to string random number 
	 * @param p_lower Lower limit 
	 * @param p_upper Upper limit
	 * @return Random number converted to string
	 * @verdict 
31
	 */
32
33
34
35
36
	function f_rnd(in integer p_lower, in integer p_upper) return charstring {
		
		return int2str(float2int(rnd() * int2float(p_upper - p_lower + 1)) + p_lower);	
	}

37
38

	/* Templates */
39
40
41
42
43
44
45
46
	
	group primitives {
    	/** 
    	 * @desc Base template for request sending operations
    	 * @param p_requestPrimitive
    	 */
    	template (value) MsgOut m_request(in template (value) RequestPrimitive p_requestPrimitive, in template (omit) AttributeList_1 p_nullFields := omit ) := {
    		primitive := { requestPrimitive := p_requestPrimitive},
47
    		host := PX_SUT_ADDRESS,
48
49
50
51
52
    		xmlNamespace := PX_XML_NAMESPACE,
    		protocolBinding := PX_PROTOCOL_BINDING,
    		serialization := PX_SERIALIZATION, 
    		nullFields := p_nullFields
    	};
53
54
55
56
57
58
59
    	
		/** 
		 * @desc Base template for response sending operations
		 * @param p_responsePrimitive
		 */
		template (value) MsgOut m_response(in template (value) ResponsePrimitive p_responsePrimitive, in template (omit) AttributeList_1 p_nullFields := omit ) := {
			primitive := { responsePrimitive := p_responsePrimitive},
60
			host := PX_SUT_ADDRESS,
61
62
63
64
65
			xmlNamespace := PX_XML_NAMESPACE,
			protocolBinding := PX_PROTOCOL_BINDING,
			serialization := PX_SERIALIZATION, 
			nullFields := p_nullFields
		};
66
67
68
69
70
71
72
73
74
75
76
77
78
    	//Added by @Naum
    	template MsgIn mw_request(in template (present) RequestPrimitive p_requestPrimitive) := {
    		primitive := { requestPrimitive := p_requestPrimitive}
    	};
    	
		/** 
		 * @desc Base template for response receiving operations
		 * @param p_responsePrimitive
		 */
		template MsgIn mw_response(in template (present) ResponsePrimitive p_responsePrimitive) := {
			primitive := { responsePrimitive := p_responsePrimitive}
		};
    	
79
	}//end of group primitives
80
81
82
83
84
85
86
87
88
89
	
	group RequestPrimitives { 
		
		group Retrieve {
	
        	/**
			 * @desc 
			 */
        	template (value) RequestPrimitive m_retrieveCseBase := {
        		operation := int2,
oneM2MTester Develop Team's avatar
oneM2MTester Develop Team committed
90
        		to_ := PX_URI_CSE,//c_uri_cse,//@Martin
91
        		from_ := "admin:admin",
92
93
        		requestIdentifier := "m_retrieveCseBase" & f_rnd(1, 1000000),
        		resourceType := omit,
94
				primitiveContent := omit,
95
				roleIDs := omit, 
96
97
98
99
100
101
102
103
104
105
106
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
107
108
109
        		discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
110
				localTokenIDs := omit,
111
				tokenRequestIndicator := omit
112
        	};
113

114
115
116
117
			/**
			 * @desc Base RETRIEVE request primitive
			 * @param p_targetResourceAddress Target resource address
			 * @param p_originator Originator (from)
118
			 */
119
			template (value) RequestPrimitive m_retrieveResource(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) := {
120
				operation := int2,
121
				to_ := p_targetResourceAddress,
122
				from_ := p_originator,
123
124
				requestIdentifier := "m_retrieveResource" & f_rnd(1, 1000000),
				resourceType := omit,
125
				primitiveContent := omit,
126
				roleIDs := omit, 
127
128
129
130
131
132
133
134
135
136
137
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
138
139
140
				discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
141
				localTokenIDs := omit,
142
				tokenRequestIndicator := omit
143
144
			};
        	
145
146
147
148
149
			/**
			 * @desc RETRIEVE request primitive for a single attribute in To field ("targetResourceAddress#AttributeName")
			 * @param p_targetResourceAddress Target resource address (including "#AttributeName")
			 * @param p_originator Originator (from)
			 */
150
        	template (value) RequestPrimitive m_retrieveResourceAttributeToOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) := {
151
        		operation := int2,
152
        		to_ := p_targetResourceAddress,
153
        		from_ := p_originator,
154
155
        		requestIdentifier := "m_retrieveResourceAttributeOptionTo" & f_rnd(1, 1000000),
        		resourceType := omit,
156
				primitiveContent := omit, 
157
				roleIDs := omit,
158
159
160
161
162
163
164
165
166
167
168
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
169
170
171
				discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
172
				localTokenIDs := omit,
173
				tokenRequestIndicator := omit
174
175
        	};
        	
176
177
178
179
180
			/**
			 * @desc RETRIEVE request primtive containing the target attributes in the primitiveContent field
			 * @param p_targetResourceAddress Target resource address 
			 * @param p_attributeList Target attribute list
			 * @param p_originator Originator (from)
181
			 */
182
			template (value) RequestPrimitive m_retrieveResourceAttributeContentOption(XSD.ID p_targetResourceAddress, in template (value) AttributeList_1 p_attributeList, in XSD.ID p_originator) := {
183
				operation := int2,
184
				to_ := p_targetResourceAddress,
185
				from_ := p_originator,
186
187
				requestIdentifier := "m_retrieveResourceAttributeContentOption" & f_rnd(1, 1000000),
				resourceType := omit,
188
189
				primitiveContent := {
					any_1 := {{AttributeList := p_attributeList}}
190
				},
191
				roleIDs := omit,
192
193
194
195
196
197
198
199
200
201
202
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
203
204
205
				discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
206
				localTokenIDs := omit,
207
				tokenRequestIndicator := omit
208
209
210
211
			};
    	}//end group Retrieve

    	group Update {
212
213
    		
    		template (value) RequestPrimitive m_update := {
214
215
				operation := int3,
				to_ := "NotInitialized",
216
217
				from_ := "NotInitialized",
				requestIdentifier := "m_update" & f_rnd(1, 1000000),
218
				resourceType := omit,
219
				primitiveContent:= omit,
220
				roleIDs := omit, 
221
222
223
224
225
226
227
228
229
230
231
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
232
233
234
				discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
235
				localTokenIDs := omit,
236
				tokenRequestIndicator := omit
237
			};
238
        	
239
240
241
242
243
244
245
246
247
248
249
			/**
			 * @desc Base UPDATE request primitive for Ae resource
			 */
			template (value) RequestPrimitive m_updateAeBase modifies m_update:= {
				from_ := PX_AE_ID_STEM,
				requestIdentifier := "m_updateAe" & f_rnd(1, 1000000),
				primitiveContent:= {
							any_1 := {{AE_optional := m_contentUpdateAe}}
				}
			};
        	
250
251
252
253
254
255
256
257
258
259
			/**
			 * @desc Base UPDATE request primitive for Container resource
			 */
			template (value) RequestPrimitive m_updateContainerBase modifies m_update:= {
				from_ := PX_AE_ID_STEM,
				requestIdentifier := "m_updateContainer" & f_rnd(1, 1000000),
				primitiveContent:= {
							any_1 := {{Container_optional := m_contentUpdateContainer}}
				}
			};
260
			
261
262
263
			/**
			 * @desc Base UPDATE request primitive for AccessControlPolicy resource
			 */        				
264
			template (value) RequestPrimitive m_updateAcpBase modifies m_update := {
265
				from_ := PX_AE_ID_STEM,
266
				requestIdentifier := "m_updateAcp" & f_rnd(1, 1000000),
267
				primitiveContent:= {
268
							any_1 := {{AccessControlPolicy_optional := m_contentUpdateAcp}}
269
				}
270
271
			};
			
272
273
274
275
276
277
278
279
			template (value) RequestPrimitive m_updateAcpPrivileges(in template(omit) SetOfAcrs p_privileges := omit, in template(omit) SetOfAcrs p_selfPrivileges := omit) modifies m_update := {
				from_ := PX_AE_ID_STEM,
				requestIdentifier := "m_updateAcp" & f_rnd(1, 1000000),
				primitiveContent:= {
							any_1 := {{AccessControlPolicy_optional := m_contentUpdateAcpPrivileges(p_privileges, p_selfPrivileges)}}
				}
			};
			
280
281
282
			/**
			 * @desc Base UPDATE request primitive for Group resource
			 */
283
			template (value) RequestPrimitive m_updateGroupBase modifies m_update := {
284
				from_ := PX_AE_ID_STEM,
285
				requestIdentifier := "m_updateGroup" & f_rnd(1, 1000000),
286
				primitiveContent:= {
287
							any_1 := {{Group_optional := m_contentUpdateGroup}}
288
				}
289
290
			};
			
291
292
293
			/**
			 * @desc Base UPDATE request primitive for Schedule resource
			 */
294
			template (value) RequestPrimitive m_updateScheduleBase modifies m_update := {
295
				from_ := PX_AE_ID_STEM,
296
				requestIdentifier := "m_updateSchedule" & f_rnd(1, 1000000),
297
				primitiveContent:= {
298
							any_1 := {{Schedule_optional := m_contentUpdateSchedule}}
299
				}
300
301
			};
			
302
303
304
			/**
			 * @desc Base UPDATE request primitive for PollingChannel resource
			 */
305
			template (value) RequestPrimitive m_updatePollingChannelBase modifies m_update := {
306
				from_ := PX_AE_ID_STEM,
307
				requestIdentifier := "m_updatePollingChannel" & f_rnd(1, 1000000),
308
				primitiveContent:= {
309
							any_1 := {{PollingChannel_optional := m_contentUpdatePollingChannel}}
310
				}
311
312
			};
			
313
314
315
			/**
			 * @desc Base UPDATE request primitive for Subscription resource
			 */
316
			template (value) RequestPrimitive m_updateSubscriptionBase modifies m_update := {
317
				from_ := PX_AE_ID_STEM,
318
				requestIdentifier := "m_updateSubscription" & f_rnd(1, 1000000),
319
				primitiveContent:= {
320
							any_1 := {{Subscription_optional := m_contentUpdateSubscription}}
321
				}
322
			};
323
324
			
			//@Martin
325
        	template (value) RequestPrimitive m_updateLocationPolicy(XSD.ID p_locResourceAddress, in template (omit) AcpType p_accessControlPolicyIDs, in template (omit) XSD.Duration locationUpdatePeriod) modifies m_update := {
oneM2MTester Develop Team's avatar
oneM2MTester Develop Team committed
326
        	  	to_ 				:= p_locResourceAddress,
327
328
329
330
        	  	from_				:= PX_AE_ID_STEM, //AE originator id e.g.
        	  	requestIdentifier	:= "m_updateLocationPolicy",
        	  	primitiveContent	:= {        	    
        	    			any_1 := {{ LocationPolicy_optional := m_contentUpdateLocationPolicy(p_accessControlPolicyIDs, locationUpdatePeriod) }}
331
332
        		}
			  };
333
        	
334
335
336
    	}//end group Update
    	
    	group Create {
337
338
339
340
341
342
343
344

			template (value) RequestPrimitive m_create := {
				operation := int1,
				to_ := "NotInitialized",
				from_ := "NotInitialized",
				requestIdentifier := "m_create" & f_rnd(1, 1000000),
				resourceType := omit,
				primitiveContent := omit,
345
				roleIDs := omit,
346
347
348
349
350
351
352
353
354
355
356
357
358
359
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
				discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
360
				localTokenIDs := omit,
361
				tokenRequestIndicator := omit
362
363

			};
364
        	
365
366
367
			/**
			 * @desc Base CREATE request primitive for AE resource (AUX)
			 */
368
			//Added by @Naum
369
370
371
372
373
374
375
376
377
			template RequestPrimitive mw_createAEannc(template (omit) AcpType p_accessControlPolicyIDs := omit,template (omit) XSD.ID p_from := omit, XSD.ID p_appId) := {
				operation := int1,
				to_ := ?,
				from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"
				requestIdentifier := ?,
				resourceType := int10002,
				primitiveContent := {
					any_1 := {{AEAnnc_optional := mw_contentCreateAEannc(c_aeAuxName, p_accessControlPolicyIDs, p_appId)}}	
				},
378
				roleIDs := *,
379
380
381
382
383
384
385
386
387
388
389
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
390
391
392
				discoveryResultType := *,
				tokens := *,
				tokenIDs := *,
393
				localTokenIDs := *,
394
				tokenRequestIndicator := *
395
			};
396
397

			//Added by @Naum
398
			template (value) RequestPrimitive m_createAe(XSD.ID p_appId, template (omit) AcpType p_accessControlPolicyIDs := omit,template (omit) XSD.ID p_from := omit, template (omit) ResourceName p_resourceName :=  c_aeAuxName, in template (omit) PoaList p_poaList := omit) modifies m_create := {
399
400
401
402
				from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"
				requestIdentifier := "m_createAe" & f_rnd(1, 1000000),
				resourceType := int2,
				primitiveContent := {
403
					any_1 := {{AE_optional := m_contentCreateAe(p_accessControlPolicyIDs,p_resourceName, p_appId, p_poaList)}}	
404
				}
405
			};
406
        	
407
        	template (value) RequestPrimitive m_createAeAux(template (omit) AcpType p_accessControlPolicyIDs := omit, in template (omit) PoaList p_poaList) modifies m_create := {
408
        		from_ := PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"//@Martin
409
        		requestIdentifier := "m_createAe" & f_rnd(1, 1000000),
410
        		resourceType := int2,
411
        		primitiveContent := {
412
        			any_1 := {{AE_optional := m_contentCreateAe(p_accessControlPolicyIDs, c_aeAuxName, -, p_poaList)}}	
413
414
        		}
			};
415
        	
416
417
418
			/**
			 * @desc Base CREATE request primitive for AccessControlPolicy resource
			 */
419
			template (value) RequestPrimitive m_createAcpBase modifies m_create := {
420
				requestIdentifier := "m_createAcp" & f_rnd(1, 1000000),
421
				resourceType := int1,
422
				primitiveContent := {
423
					any_1 := {{AccessControlPolicy_optional := m_contentCreateAcp ()}}
424
				}
425
426
			};
				
427
        	template (value) RequestPrimitive m_createAcp(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name := c_defaultResourceName, in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63) modifies m_create := {
428
        		to_ := p_parentResourceAddress,
429
        		from_ := PX_AE_ID_STEM,
430
        		requestIdentifier := "m_createAcp" & f_rnd(1, 1000000),
431
        		resourceType := int1,
432
        		primitiveContent := {
433
					any_1 := {{AccessControlPolicy_optional := m_contentCreateAcp (p_name, p_acor, p_allowedOperations)}}
434
        		}
435
436
        	};
        	
437
438
439
440
       	
			/**
			 * @desc Base CREATE request primitive for AccessControlPolicy resource (AUX)
			 */
441
        	template (value) RequestPrimitive m_createAcpAux(in template (value) XSD.String p_acpName := c_acpAuxName, in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63 ) modifies m_create := {
442
        		from_ := PX_SUPER_USER,
443
        		requestIdentifier := "m_createAcpAux" & f_rnd(1, 1000000),
444
        		resourceType := int1,
445
        		primitiveContent := {
446
        			any_1 := {{AccessControlPolicy_optional := m_contentCreateAcp (p_acpName, p_acor, p_allowedOperations)}}	
447
        		}
448
449
        	};
        	
450
			//Added by @Naum
451
			template (value) RequestPrimitive m_createCSEBase (in ServiceSubscribedAppRule p_serviceSubscribedAppRule) modifies m_create := {
452
453
				from_ := PX_AE_ID_STEM,
				requestIdentifier := "m_createCSE" & f_rnd(1, 1000000),
454
				resourceType := int1,//FIXME Is this the value for CSEBase? In any case, this template is not used at all
455
456
				primitiveContent := {
					any_1 := {{CSEBase_optional := m_contentCreateCSEBase (p_serviceSubscribedAppRule)}}
457
				}
458
459
			};
        	
460
461
462
463
       	
			/**
			 * @desc Base CREATE request primitive for Container resource
			 */
464
			template (value) RequestPrimitive m_createContainerBase modifies m_create := {
465
				requestIdentifier := "m_createContainer" & f_rnd(1, 1000000),
466
				resourceType := int3,
467
468
				primitiveContent := {
					
469
					any_1 := {{Container_optional := m_contentCreateContainer}}
470
				}
471
472
			};
	
473
    		template (value) RequestPrimitive m_createContainer(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_resourceName := c_defaultResourceName) modifies m_create := {
474
    			to_ := p_parentResourceAddress,
475
    			from_ := PX_AE_ID_STEM,
476
    			requestIdentifier := "m_createContainer" & f_rnd(1, 1000000),
477
    			resourceType := int3,
478
    			primitiveContent := {
479
    				any_1 := {{Container_optional := m_contentCreateContainer(p_resourceName)}}
480
    			}
481
482
    		};
        	
483
    		template (value) RequestPrimitive m_createContentInstance(XSD.ID p_parentResourceAddress, XSD.String p_primitiveContent) modifies m_create := {
484
    			to_ := p_parentResourceAddress,
485
    			from_ := "admin:admin",
486
    			requestIdentifier := "m_createContentInstance" & f_rnd(1, 1000000),
487
    			resourceType := int4,
488
    			primitiveContent := {
489
    				any_1 := {{ContentInstance_optional := m_contentCreateContentInstance(p_primitiveContent)}}	
490
    			}
491
492
    		};
    		
493
494
495
496
       	
			/**
			 * @desc Base CREATE request primitive for Group resource
			 */
497
			template (value) RequestPrimitive m_createGroupBase modifies m_create := {
498
				requestIdentifier := "m_createGroup" & f_rnd(1, 1000000),
499
500
				resourceType := int9,
				primitiveContent := {
501
					any_1 := {{Group_optional := m_contentCreateGroup (1, {"Not Initialized"}, omit, omit)}}	//TODO: p_resourceId
502
503
				}
			};
504
        	
505
506
507
508
509
510
511
        	template (value) RequestPrimitive m_createGroup(in template (value) XSD.NonNegativeInteger p_maxNrOfMembers,
															in template (value) ListOfURIs p_memberIds := {"Not Initialized"},
															in template (omit) AcpType p_accessControlPolicyIDs,
															in template (omit) MemberType p_memberType := omit,
															in template (omit) ConsistencyStrategy p_consistencyStrategy := omit,
															in template (omit) ListOfURIs p_membersAccessControlPolicyIDs := omit,
															in template (omit) XSD.String p_name := "MyGroup") modifies m_create := {
512
        		requestIdentifier := "m_createGroup" & f_rnd(1, 1000000),
513
        		resourceType := int9,
514
        		primitiveContent := {
515
        			any_1 := {{Group_optional := m_contentCreateGroup (p_maxNrOfMembers, p_memberIds, p_accessControlPolicyIDs, p_memberType, p_consistencyStrategy, p_membersAccessControlPolicyIDs, p_name)}}	//TODO: p_resourceId
516
        		}
517
518
        	};
        	
519
520
521
522
       	
			/**
			 * @desc Base CREATE request primitive for PollingChannel resource
			 */
523
			template (value) RequestPrimitive m_createPollingChannelBase modifies m_create := {
524
				requestIdentifier := "m_createPollingChannel" & f_rnd(1, 1000000),
525
526
				resourceType := int15,
				primitiveContent := {
527
					any_1 := {{PollingChannel_optional := m_contentCreatePollingChannel (-)}}	
528
529
				}
			};
530
        	
531
        	template (value) RequestPrimitive m_createPollingChannel(XSD.ID p_parentResourceAddress, in template (value)XSD.ID p_originatorId, in template (omit) AcpType p_accessControlPolicyIDs ) modifies m_create := {
532
        		to_ := p_parentResourceAddress,
533
        		from_ := p_originatorId,
534
        		requestIdentifier := "m_createPollingChannel" & f_rnd(1, 1000000),
535
        		resourceType := int15,
536
        		primitiveContent := {
537
        			any_1 := {{PollingChannel_optional := m_contentCreatePollingChannel ()}}	
538
        		}
539
540
        	};
        	
541
542
543
			/**
			 * @desc Base CREATE request primitive for Schedule resource
			 */
544
        	template (value) RequestPrimitive m_createScheduleBase modifies m_create := {
545
        		requestIdentifier := "m_createSchedule" & f_rnd(1, 1000000),
546
        		resourceType := int18,
547
        		primitiveContent := {
548
        			any_1 := {{Schedule_optional := m_contentCreateSchedule ({{"0,0,0 1 2,1,1,*"}})}}	
549
        		}
550
551
        	};
        	
552
        	template (value) RequestPrimitive m_createSchedule(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name, in template (value) ScheduleEntries p_scheduleElement ) modifies m_create := {
553
        		to_ := p_parentResourceAddress,
554
        		from_ := PX_AE_ID_STEM,
555
        		requestIdentifier := "m_createSchedule" & f_rnd(1, 1000000),
556
        		resourceType := int18,
557
        		primitiveContent := {
558
        			any_1 := {{Schedule_optional := m_contentCreateSchedule (p_scheduleElement)}}	
559
        		}
560
561
        	};
        	
562
			//Added by @Naum
563
			template (value) RequestPrimitive m_createServiceSubscribedAppRule (in ListOfM2MID p_applicableCredIDs, in ListOfM2MID p_allowedApp_IDs, in ListOfM2MID p_allowedAEs) modifies m_create := {
564
				from_ := PX_AE_ID_STEM,
565
566
				requestIdentifier := "m_createServiceSubscribedAppRule" & f_rnd(1, 1000000),
				resourceType := int19,//FIXME Is this the correct value?
567
				primitiveContent := {
568
					any_1 := {{ServiceSubscribedAppRule_optional := m_contentCreateServiceSubscribedAppRule (p_applicableCredIDs, p_allowedApp_IDs, p_allowedAEs)}}
569
				}
570
			};
571
        	
572
573
574
575
       	
			/**
			 * @desc Base CREATE request primitive for Subscription resource
			 */
576
			template (value) RequestPrimitive m_createSubscriptionBase modifies m_create := {
577
				requestIdentifier := "m_createSubscription" & f_rnd(1, 1000000),
578
				resourceType := int23,
579
				primitiveContent := {
580
					any_1 := {{Subscription_optional := m_contentCreateSubscription ({"Not Initialized"})}}	
581
				}
582
583
			};
        	
584
        	template (value) RequestPrimitive m_createSubscription(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name, in template (value) ListOfURIs p_notificationURI := {"NotInitialized"}) modifies m_create := {
585
        		to_ := p_parentResourceAddress,
586
        		from_ := PX_AE_ID_STEM,
587
        		requestIdentifier := "m_createSubscription" & f_rnd(1, 1000000),
588
        		resourceType := int23,
589
        		primitiveContent := {
590
					any_1 := {{Subscription_optional := m_contentCreateSubscription (p_notificationURI, p_name)}}	
591
        		}
592
        	};
593
        	
594
595
596
597
598
599
600
601
602
603
604
605
606
607
			template (value) RequestPrimitive m_createSubscriptionAdvanced(	XSD.ID p_parentResourceAddress, 
																		   in template (omit)  XSD.String p_name := omit,
																		   in template (value) ListOfURIs p_notificationURI,
																		   in template (omit) EventNotificationCriteria p_eventNotificationCriteria := omit,
																		   in template (omit) XSD.PositiveInteger p_expirationCounter := omit,
																		   in template (omit) BatchNotify p_batchNotify := omit,
																		   in template (omit) XSD.Boolean p_latestNotify := omit,
																		   in template (omit) XSD.AnyURI p_subscriberURI := omit,
																		   in template (omit) NotificationContentType p_notificationContentType := int1) modifies m_createSubscription := {
				primitiveContent := {
					any_1 := {{Subscription_optional := m_contentCreateSubscriptionAdvanced (p_notificationURI, p_name, p_eventNotificationCriteria, p_expirationCounter, p_batchNotify, p_latestNotify, p_subscriberURI, p_notificationContentType)}}	
				}
			};
        	
608
        	//@Martin
609
610
        	template (value) RequestPrimitive m_createLocationPolicy(in template (value) LocationSource locationSource, in template (omit) AcpType p_accessControlPolicyIDs, in template (omit) XSD.Duration locationUpdatePeriod, in template (omit) NodeID locationTargetID, in template (omit) XSD.AnyURI locationServerAddress) modifies m_create := {
        	  	requestIdentifier	:= "m_createLocationPolicy" & f_rnd(1, 1000000), //the requestIdentifier is supposed to be set similar as "C190XX7T/001"  by prepending the AE-ID-Stem and slash(‘/’) in front of it
611
612
        	  	resourceType		:= int10,
        	  	primitiveContent	:= {        	    
613
        	    			any_1 := {{ LocationPolicy_optional := m_contentCreateLocationPolicy(locationSource, p_accessControlPolicyIDs, locationUpdatePeriod, locationTargetID, locationServerAddress) }}
614
615
        	  	},
			  	resultContent := int1//default
616
        	};
617
        	//@Martin
618
        	template (value) RequestPrimitive m_createNotification(in template (value) Representation resourcePresentation, in template (omit)NotificationEventType notifEventType, in template (omit) XSD.AnyURI subscriptionReference, in template (omit) XSD.AnyURI notifForwardingURI) modifies m_create := {
619
620
        	  requestIdentifier	:= "m_createNotification" & f_rnd(1, 1000000),
        	  primitiveContent	:= {	
621
        	    			any_1 :=	{{ Notification := m_contentCreateNotification(resourcePresentation, notifEventType, subscriptionReference, notifForwardingURI)}}        	    
622
623
624
625
        	  },
        	  resultContent		:= int1 //default
        	  
        	};
626
        	
627
        	
628
629
630
631
    	}//end group Create
    	
    	group Delete {
    	
632
        	template (value) RequestPrimitive m_deleteRequest(XSD.ID p_resourceAddress) := {
633
        		operation := int4,
634
        		to_ := p_resourceAddress,
635
        		from_ := PX_SUPER_USER,
636
        		requestIdentifier := "m_deleteResource" & f_rnd(1, 1000000),
637
        		resourceType := omit,
638
        		primitiveContent := omit, 
639
				roleIDs := omit, 
640
641
642
643
644
645
646
647
648
649
650
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
651
652
653
				discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
654
				localTokenIDs := omit, 
655
				tokenRequestIndicator := omit
656
657
658

        	};
        	
659
660
661
662
663
664
665
			template (value) RequestPrimitive m_delete(XSD.ID p_resourceAddress) := {
				operation := int4,
				to_ := p_resourceAddress,
				from_ := PX_AE_ID_STEM,
				requestIdentifier := "m_deleteAe" & f_rnd(1, 1000000),
				resourceType := omit,
				primitiveContent := omit, 
666
				roleIDs := omit, 
667
668
669
670
671
672
673
674
675
676
677
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
678
679
680
				discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
681
				localTokenIDs := omit,
682
				tokenRequestIndicator := omit
683

684
685
			};
        	
686
    	}//end group Delete
687
688
689
690
691
692
693
694
695
696
697
698
699
    	
    	group Notify {
    		
			/**
			 * @desc Base NOTIFY request primitive
			 */
			template RequestPrimitive mw_notifyBase := {
				operation := int5,
				to_ := ?,
				from_ := *,
				requestIdentifier := ?,
				resourceType := *,
				primitiveContent := { any_1 := {{ Notification := mw_contentNotificationBase}} },
700
				roleIDs := *,
701
702
703
704
705
706
707
708
709
710
711
712
713
714
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
				discoveryResultType := *,
				tokens := *,
				tokenIDs := *,
715
				localTokenIDs := *,
716
				tokenRequestIndicator := *
717
718
719
720
721
722
723
724
725
726
727
728
			};
			
			/**
			 * @desc Base NOTIFY request primitive
			 */
			template RequestPrimitive mw_aggregatedNotifyBase := {
				operation := int5,
				to_ := ?,
				from_ := *,
				requestIdentifier := ?,
				resourceType := *,
				primitiveContent := { any_1 := {{ AggregatedNotification := ?}} },
729
				roleIDs := *,
730
731
732
733
734
735
736
737
738
739
740
741
742
743
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
				discoveryResultType := *,
				tokens := *,
				tokenIDs := *,
744
				localTokenIDs := *,
745
				tokenRequestIndicator := *
746
747
748
749
750
751
			};
			
			/**
			 * @desc Base NOTIFY request primitive
			 */
			
752
			template RequestPrimitive mw_notify(in template Notification p_notification) modifies mw_notifyBase := {
753
754
755
756
757
758
759
760
761
				primitiveContent := { 
					any_1 := {{ Notification := p_notification}}
				}
			};
			

			
    		
    	}//end of group Notify
762
763
764
765
	}//end group RequestPrimitives
	
	group ContentCreate {
		
Miguel Angel Reina Ortega's avatar
Miguel Angel Reina Ortega committed
766

767
			template (value) AEAnnc_optional mw_contentCreateAEannc (in template (omit)  XSD.String p_name, in template (omit) AcpType p_accessControlPolicyIDs, XSD.ID p_appId := PX_APP_ID) := {
768
769
770
771
772
773
774
775
776
    		resourceName := p_name,//O
    		resourceType := omit,//NP
    		resourceID := omit,//NP
    		parentID := omit,//NP
    		creationTime := omit,//NP
    		lastModifiedTime := omit,//NP
    		labels := omit,//O
    		accessControlPolicyIDs := p_accessControlPolicyIDs,//O
    		expirationTime := omit,//O
777
    		dynamicAuthorizationConsultationIDs := omit, //TODO Check whether it is optional or mandatory for create operation
778
779
780
781
782
783
784
785
786
			link := omit,//O
			appName := omit,//O
			app_ID := p_appId,//M
			aE_ID := omit,//NP
			pointOfAccess := omit, //{"http://127.0.0.1:1400/monitor"},//O //{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA
			ontologyRef := omit,//O
			nodeLink := omit,//NP
			requestReachability := true,//M
			contentSerialization := omit,//O
787
			e2eSecInfo := omit, //TODO Check whether it is optional or mandatory for create operation
788
789
			choice := omit//NP
		};	
790
		
Miguel Angel Reina Ortega's avatar
Miguel Angel Reina Ortega committed
791
792
793
794
795
    	/**
    	 * @desc Base primitiveContent for CREATE operation for AE resource
    	 * @param p_name Resource name
    	 * @param p_accessControlPolicyIDs ACP IDs for the AE
    	 */
796
    	template (value) AE_optional m_contentCreateAe (in template (omit) AcpType p_accessControlPolicyIDs, in template (omit)  XSD.String p_name := c_defaultResourceName, in template (omit) XSD.ID p_appId := PX_APP_ID, in template (omit) PoaList p_poaList) := {
Miguel Angel Reina Ortega's avatar
Miguel Angel Reina Ortega committed
797

798
799
800
801
802
803
804
805
806
			resourceName := p_name,//O
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			accessControlPolicyIDs := p_accessControlPolicyIDs,//O
			expirationTime := omit,//O
807
    		dynamicAuthorizationConsultationIDs := omit, //O
808
809
810
    		announceTo := omit,//O
    		announcedAttribute := omit,//O
    		appName := omit,//O
811
			app_ID := p_appId,//M
812
    		aE_ID := omit,//NP
813
    		pointOfAccess := p_poaList, //O {"http://127.0.0.1:1400/monitor"},//{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA
814
815
    		ontologyRef := omit,//O
    		nodeLink := omit,//NP
816
    		requestReachability := true,//M
817
    		contentSerialization := omit,//O
818
			e2eSecInfo := omit, //O
819
820
    		choice := omit//NP
    	};	
821
    	
822
823
824
825
826
    	/**
    	 * @desc Base primitiveContent for CREATE operation for AccessControlPolicy resource
    	 * @param p_name Resource name
    	 * @param p_acor Allowed originators
    	 * @param p_allowedOperations Allowed operations
827
    	 */
828
829
830
831
832
833
834
835
836
837
838
    	template (value) AccessControlPolicy_optional m_contentCreateAcp (in template (omit) XSD.String p_name := c_defaultResourceName, in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63 ) := {
			resourceName := p_name,//O
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			expirationTime := omit,//O
			announceTo := omit,//O
			announcedAttribute := omit,//O
839
			privileges := {
840
				accessControlRule_list := {valueof(m_createAcr(p_acor, p_allowedOperations))}
841
			},//M
842
			selfPrivileges := {
843
				accessControlRule_list := {valueof(m_createAcr(p_acor, int63))}
844
845
			},//M
			choice := omit //NP
846
		};
847
848
849
850
		
		template (value) AccessControlRule m_createAcr (in template (value) ListOfURIs p_acor, in template (value) AccessControlOperations p_allowedOperations) := {
			accessControlOriginators := p_acor,//{"*"},//{PX_AE_ID_STEM}, //{"admin:admin"},
			accessControlOperations := p_allowedOperations,
851
852
853
			accessControlContexts_list := {},
			accessControlAuthenticationFlag := omit, 
			accessControlObjectDetails_list := {}
854
		}
855
    	
856
857
		//added by @Naum
		template (value) CSEBase_optional m_contentCreateCSEBase (in ServiceSubscribedAppRule p_serviceSubscribedAppRule) := {
858
			resourceName := omit,
859
			resourceType := omit,
860
861
862
863
864
865
866
867
868
869
870
			resourceID := omit,
			parentID := omit,
			creationTime := omit,
			lastModifiedTime := omit,
			labels := omit,
			accessControlPolicyIDs := omit,
			cseType := omit,
			cSE_ID := omit,
			supportedResourceType := omit,
			pointOfAccess := omit,
			nodeLink := omit,
871
			e2eSecInfo := omit, 
872
873
874
875
			choice := {
				choice_list := {{
				  serviceSubscribedAppRule := p_serviceSubscribedAppRule
				}}
876
877
			}
		}
878
    	
879
880
881
882
883
884
    	/**
    	 * @desc Base primitiveContent for CREATE operation for Group resource
    	 * @param p_maxNrOfMembers Max number of members
    	 * @param p_memberIds Member IDs
    	 * @param p_accessControlPolicyIDs ACP IDs for the Group
    	 * @param p_name Resource name
885
    	 */
886
    	template (value) Group_optional m_contentCreateGroup (	in template (value) XSD.NonNegativeInteger p_maxNrOfMembers,
887
888
    															in template (value) ListOfURIs p_memberIds,
    															in template (omit) AcpType p_accessControlPolicyIDs,
889
890
891
    															in template (omit) MemberType p_memberType := omit,
    															in template (omit) ConsistencyStrategy p_consistencyStrategy := omit,
    															in template (omit) ListOfURIs p_membersAccessControlPolicyIDs := omit,
892
893
																in template (omit) XSD.String p_name := c_defaultResourceName) := {
			resourceName := p_name,//O
894
895
896
897
898
899
900
901
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			accessControlPolicyIDs := p_accessControlPolicyIDs,//O
			expirationTime := omit,//O
902
    		dynamicAuthorizationConsultationIDs := omit, //O
903
904
905
			announceTo := omit,//O
			announcedAttribute := omit,//O
			creator := omit,//O
906
			memberType := p_memberType,//O
907
908
909
			currentNrOfMembers := omit,//NP
			maxNrOfMembers := p_maxNrOfMembers,//M
			memberIDs := p_memberIds,//M
910
			membersAccessControlPolicyIDs := p_membersAccessControlPolicyIDs,//O
911
			memberTypeValidated := omit,//NP
912
			consistencyStrategy := p_consistencyStrategy,//O
913
914
915
			groupName := omit,//O
			choice := omit//NP
    	};    	
916
    	
917
918
919
920
    	/**
    	 * @desc Base primitiveContent for CREATE operation for PollingChannel resource
    	 * @param p_accessControlPolicyIDs ACP IDs for the PollingChannel
    	 * @param p_name Resource name
921
    	 */
922
    	template (value) PollingChannel_optional m_contentCreatePollingChannel (in template (omit) XSD.String p_name := c_defaultResourceName) := {
923
			resourceName := p_name,//O
924
925
926
927
928
929
            resourceType := omit,//NP
            resourceID := omit,//NP
            parentID := omit,//NP
            creationTime := omit,//NP
            lastModifiedTime := omit,//NP
            labels := omit,//O
930
            expirationTime := omit//O
931
    	};    	
932
    	
933
934
935
936
    	/**
    	 * @desc Base primitiveContent for CREATE operation for Schedule resource
    	 * @param p_scheduleElement Schedule
    	 * @param p_name Resource name
937
938
939
940
    	 */
    	template (value) Schedule_optional m_contentCreateSchedule (in template (value) ScheduleEntries p_scheduleElement,
																	in template (omit) XSD.String p_name := c_defaultResourceName) := {
			resourceName := p_name,//O
941
942
943
944
945
946
947
948
949
950
951
952
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			expirationTime := omit,//O
			announceTo := omit,//O
			announcedAttribute := omit,//O
			scheduleElement := p_scheduleElement,//M
			choice := omit//NP
    	};    	
953
    	
954
		template (value) ServiceSubscribedAppRule_optional m_contentCreateServiceSubscribedAppRule (in ListOfM2MID p_applicableCredIDs, in ListOfM2MID p_allowedApp_IDs, in ListOfM2MID p_allowedAEs) := {
955
956
957
958
959
960
961
962
963
964
965
966
967
968
		  	resourceName := omit,//TODO TS-0004 7.4.29.1 2 Missing attribute
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//O
    		dynamicAuthorizationConsultationIDs := omit, //O
			applicableCredIDs := p_applicableCredIDs,//O
			allowedApp_IDs := p_allowedApp_IDs,//O
			allowedAEs := p_allowedAEs,//O
			choice := omit //O
969
		}
970
    	
Miguel Angel Reina Ortega's avatar
Miguel Angel Reina Ortega committed
971

972
973
974
975
    	/**
    	 * @desc Base primitiveContent for CREATE operation for Subscription resource
    	 * @param p_notificationURI Notification URI
    	 * @param p_name Resource name
976
977
978
    	 */
    	template (value) Subscription_optional m_contentCreateSubscription (in template (value) ListOfURIs p_notificationURI,
																			in template (omit) XSD.String p_name := c_defaultResourceName) := {
979
			resourceName := p_name,//O
980
981
982
983
984
985
986
987
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
			accessControlPolicyIDs := omit,//O
			expirationTime := omit,//O