OneM2M_Templates.ttcn 87.5 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 229 2017-03-16 08:00:30Z reinaortega $
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
	group Primitives {
41
42
43
44
    	/** 
    	 * @desc Base template for request sending operations
    	 * @param p_requestPrimitive
    	 */
45
    	template (value) MsgOut m_request(in template (value) RequestPrimitive p_requestPrimitive, in template (omit) AttributeAux_list p_forcedFields := omit) := {
46
    		primitive := { requestPrimitive := p_requestPrimitive},
47
    		host := PX_SUT_ADDRESS,
48
49
50
    		xmlNamespace := PX_XML_NAMESPACE,
    		protocolBinding := PX_PROTOCOL_BINDING,
    		serialization := PX_SERIALIZATION, 
51
    		forcedFields := p_forcedFields
52
    	};
53
54
55
56
57
    	
		/** 
		 * @desc Base template for response sending operations
		 * @param p_responsePrimitive
		 */
58
		template (value) MsgOut m_response(in template (value) ResponsePrimitive p_responsePrimitive, in template (omit) AttributeAux_list p_forcedFields := omit) := {
59
			primitive := { responsePrimitive := p_responsePrimitive},
60
			host := PX_SUT_ADDRESS,
61
62
63
			xmlNamespace := PX_XML_NAMESPACE,
			protocolBinding := PX_PROTOCOL_BINDING,
			serialization := PX_SERIALIZATION, 
64
			forcedFields := p_forcedFields
65
		};
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 p_locationUpdatePeriod) modifies m_update := {
oneM2MTester Develop Team's avatar
oneM2MTester Develop Team committed
326
        	  	to_ 				:= p_locResourceAddress,
327
328
329
        	  	from_				:= PX_AE_ID_STEM, //AE originator id e.g.
        	  	requestIdentifier	:= "m_updateLocationPolicy",
        	  	primitiveContent	:= {        	    
330
        	    			any_1 := {{ LocationPolicy_optional := m_contentUpdateLocationPolicy(p_accessControlPolicyIds, p_locationUpdatePeriod) }}
331
332
        		}
			  };
333
        	
334
335
336
    	}//end group Update
    	
    	group Create {
337
338
339
340
341

			template (value) RequestPrimitive m_create := {
				operation := int1,
				to_ := "NotInitialized",
				from_ := "NotInitialized",
342
				requestIdentifier := testcasename() & "-m_create" & f_rnd(1, 1000000),
343
344
				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
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
			/**
			 * @desc Base Reception template for create operation
			 */
			template RequestPrimitive mw_create(template XSD.ID p_from := *, template XSD.ID p_to := ?) := {
				operation := int1,
				to_ := ?,
				from_ := p_from,
				requestIdentifier := ?,
				resourceType := ?,
				primitiveContent := {
					any_1 := ?	
				},
				roleIDs := *,
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
				discoveryResultType := *,
				tokens := *,
				tokenIDs := *,
				localTokenIDs := *,
				tokenRequestIndicator := *
			}
			
396
397
398
399
400
401
402
403
404
405
406
			
			/**
			 * @desc Base CREATE request primitive for AE resource (AUX)
			 */
			template RequestPrimitive m_createAEAnnc(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) XSD.ID p_to := omit, template (omit) XSD.ID p_from := omit, XSD.ID p_appId, XSD.ID p_stemId := "") := {
				operation := int1,
				to_ := p_to,
				from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"
				requestIdentifier := testcasename() & "-m_createAEAnnc" & f_rnd(1, 1000000),
				resourceType := int10002,
				primitiveContent := {
407
					any_1 := {{AEAnnc_optional := m_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds, p_appId, valueof(p_to) & "/" & p_stemId)}}	
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
				},
				roleIDs := omit,
				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,
				localTokenIDs := omit,
				tokenRequestIndicator := omit
			};
			
428
429
430
			/**
			 * @desc Base CREATE request primitive for AE resource (AUX)
			 */
431
			//Added by @Naum
432
			template RequestPrimitive mw_createAEAnnc(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) XSD.ID p_to := omit, template (omit) XSD.ID p_from := omit, XSD.ID p_appId, XSD.ID p_stemId := "") := {
433
				operation := int1,
434
				to_ := p_to,
435
436
437
438
				from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"
				requestIdentifier := ?,
				resourceType := int10002,
				primitiveContent := {
439
					any_1 := {{AEAnnc_optional := mw_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds, p_appId, valueof(p_to) & "/" & p_stemId)}}	
440
				},
441
				roleIDs := *,
442
443
444
445
446
447
448
449
450
451
452
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
453
454
455
				discoveryResultType := *,
				tokens := *,
				tokenIDs := *,
456
				localTokenIDs := *,
457
				tokenRequestIndicator := *
458
			};
459
460

			//Added by @Naum
461
			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 := {
462
				from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"
463
				requestIdentifier := testcasename() & "-m_createAe" & f_rnd(1, 1000000),
464
465
				resourceType := int2,
				primitiveContent := {
466
					any_1 := {{AE_optional := m_contentCreateAe(p_accessControlPolicyIds,p_resourceName, p_appId, p_poaList)}}	
467
				}
468
			};
469
        	
470
471
472
473
474
475
476
477
478
479
			/**
			 * @desc Reception template for AE registration
			 */
			template RequestPrimitive mw_createAe(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int2,
				primitiveContent := {
					any_1 := {{AE_optional := ?}}	
				}
			};  
			        	
480
        	template (value) RequestPrimitive m_createAeAux(template (omit) AcpType p_accessControlPolicyIds := omit, in template (omit) PoaList p_poaList) modifies m_create := {
481
        		from_ := PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"//@Martin
482
        		requestIdentifier := testcasename() & "-m_createAe" & f_rnd(1, 1000000),
483
        		resourceType := int2,
484
        		primitiveContent := {
485
        			any_1 := {{AE_optional := m_contentCreateAe(p_accessControlPolicyIds, c_aeAuxName, -, p_poaList)}}	
486
487
        		}
			};
488
        	
489
490
491
			/**
			 * @desc Base CREATE request primitive for AccessControlPolicy resource
			 */
492
			template (value) RequestPrimitive m_createAcpBase modifies m_create := {
493
				requestIdentifier := testcasename() & "-m_createAcp" & f_rnd(1, 1000000),
494
				resourceType := int1,
495
				primitiveContent := {
496
					any_1 := {{AccessControlPolicy_optional := m_contentCreateAcp ()}}
497
				}
498
499
			};
				
500
        	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 := {
501
        		to_ := p_parentResourceAddress,
502
        		from_ := PX_AE_ID_STEM,
503
        		requestIdentifier := testcasename() & "-m_createAcp" & f_rnd(1, 1000000),
504
        		resourceType := int1,
505
        		primitiveContent := {
506
					any_1 := {{AccessControlPolicy_optional := m_contentCreateAcp (p_name, p_acor, p_allowedOperations)}}
507
        		}
508
509
        	};
        	
510
511
512
513
       	
			/**
			 * @desc Base CREATE request primitive for AccessControlPolicy resource (AUX)
			 */
514
        	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 := {
515
        		from_ := PX_SUPER_USER,
516
        		requestIdentifier := testcasename() & "-m_createAcpAux" & f_rnd(1, 1000000),
517
        		resourceType := int1,
518
        		primitiveContent := {
519
        			any_1 := {{AccessControlPolicy_optional := m_contentCreateAcp (p_acpName, p_acor, p_allowedOperations)}}	
520
        		}
521
522
        	};
        	
523
			//Added by @Naum
524
			template (value) RequestPrimitive m_createCSEBase (in ServiceSubscribedAppRule p_serviceSubscribedAppRule) modifies m_create := {
525
				from_ := PX_AE_ID_STEM,
526
				requestIdentifier := testcasename() & "-m_createCSE" & f_rnd(1, 1000000),
527
				resourceType := int1,//FIXME Is this the value for CSEBase? In any case, this template is not used at all
528
529
				primitiveContent := {
					any_1 := {{CSEBase_optional := m_contentCreateCSEBase (p_serviceSubscribedAppRule)}}
530
				}
531
532
			};
        	
533
534
535
536
       	
			/**
			 * @desc Base CREATE request primitive for Container resource
			 */
537
			template (value) RequestPrimitive m_createContainerBase modifies m_create := {
538
				requestIdentifier := testcasename() & "-m_createContainer" & f_rnd(1, 1000000),
539
				resourceType := int3,
540
541
				primitiveContent := {
					
542
					any_1 := {{Container_optional := m_contentCreateContainer}}
543
				}
544
545
			};
	
546
    		template (value) RequestPrimitive m_createContainer(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_resourceName := c_defaultResourceName) modifies m_create := {
547
    			to_ := p_parentResourceAddress,
548
    			from_ := PX_AE_ID_STEM,
549
    			requestIdentifier := testcasename() & "-m_createContainer" & f_rnd(1, 1000000),
550
    			resourceType := int3,
551
    			primitiveContent := {
552
    				any_1 := {{Container_optional := m_contentCreateContainer(p_resourceName)}}
553
    			}
554
555
    		};
        	
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
			/**
			 * @desc Reception template for CREATE Container
			 */
			template RequestPrimitive mw_createContainer(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int3,
				primitiveContent := {
					any_1 := {{Container_optional := ?}}	
				}
			};  
			
			/**
			 * @desc Reception template for CREATE FlexContainer
			 */
			template RequestPrimitive mw_createFlexContainer(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int28, 
				primitiveContent := {
					any_1 := {{FlexContainer_optional := ?}}	
				}
			};  
			
			/**
			 * @desc Reception template for CREATE GenericInterworkingOperationInstance
			 */
			template RequestPrimitive mw_createGenericIwkOpInstance(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int28,  // FIXME: not found in TS004
				primitiveContent := {
					any_1 := {{GenericInterworkingOperationInstance_optional := ?}}	
				}
			}; 
        	
586
587
588
589
590
591
592
593
594
595
596
597
			/**
			 * @desc Base CREATE request primitive for Content Instance resource
			 */
			template (value) RequestPrimitive m_createContentInstanceBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createContentInstance" & f_rnd(1, 1000000),
				resourceType := int3,
				primitiveContent := {
			
					any_1 := {{ContentInstance_optional := m_contentCreateContentInstance}}
				}
			};
    		
598
    		template (value) RequestPrimitive m_createContentInstance(XSD.ID p_parentResourceAddress, XSD.String p_primitiveContent) modifies m_create := {
599
    			to_ := p_parentResourceAddress,
600
    			from_ := "admin:admin",
601
    			requestIdentifier := testcasename() & "-m_createContentInstance" & f_rnd(1, 1000000),
602
    			resourceType := int4,
603
    			primitiveContent := {
604
    				any_1 := {{ContentInstance_optional := m_contentCreateContentInstance(p_primitiveContent)}}	
605
    			}
606
607
    		};
    		
608
609
610
611
       	
			/**
			 * @desc Base CREATE request primitive for Group resource
			 */
612
			template (value) RequestPrimitive m_createGroupBase modifies m_create := {
613
				requestIdentifier := testcasename() & "-m_createGroup" & f_rnd(1, 1000000),
614
615
				resourceType := int9,
				primitiveContent := {
616
					any_1 := {{Group_optional := m_contentCreateGroup (1, {"NotInitialized"}, omit, omit)}}	//TODO: p_resourceId
617
618
				}
			};
619
        	
620
        	template (value) RequestPrimitive m_createGroup(in template (value) XSD.NonNegativeInteger p_maxNrOfMembers,
621
															in template (value) ListOfURIs p_memberIds := {"NotInitialized"},
622
															in template (omit) AcpType p_accessControlPolicyIds,
623
624
625
626
															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 := {
627
        		requestIdentifier := testcasename() & "-m_createGroup" & f_rnd(1, 1000000),
628
        		resourceType := int9,
629
        		primitiveContent := {
630
        			any_1 := {{Group_optional := m_contentCreateGroup (p_maxNrOfMembers, p_memberIds, p_accessControlPolicyIds, p_memberType, p_consistencyStrategy, p_membersAccessControlPolicyIDs, p_name)}}	//TODO: p_resourceId
631
        		}
632
633
        	};
        	
634
635
636
637
       	
			/**
			 * @desc Base CREATE request primitive for PollingChannel resource
			 */
638
			template (value) RequestPrimitive m_createPollingChannelBase modifies m_create := {
639
				requestIdentifier := testcasename() & "-m_createPollingChannel" & f_rnd(1, 1000000),
640
641
				resourceType := int15,
				primitiveContent := {
642
					any_1 := {{PollingChannel_optional := m_contentCreatePollingChannel (-)}}	
643
644
				}
			};
645
        	
646
        	template (value) RequestPrimitive m_createPollingChannel(XSD.ID p_parentResourceAddress, in template (value)XSD.ID p_originatorId) modifies m_create := {
647
        		to_ := p_parentResourceAddress,
648
        		from_ := p_originatorId,
649
        		requestIdentifier := testcasename() & "-m_createPollingChannel" & f_rnd(1, 1000000),
650
        		resourceType := int15,
651
        		primitiveContent := {
652
        			any_1 := {{PollingChannel_optional := m_contentCreatePollingChannel ()}}	
653
        		}
654
655
        	};
        	
656
657
658
			/**
			 * @desc Base CREATE request primitive for Schedule resource
			 */
659
        	template (value) RequestPrimitive m_createScheduleBase modifies m_create := {
660
        		requestIdentifier := testcasename() & "-m_createSchedule" & f_rnd(1, 1000000),
661
        		resourceType := int18,
662
        		primitiveContent := {
663
        			any_1 := {{Schedule_optional := m_contentCreateSchedule ({{"0,0,0 1 2,1,1,*"}})}}	
664
        		}
665
666
        	};
        	
667
        	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 := {
668
        		to_ := p_parentResourceAddress,
669
        		from_ := PX_AE_ID_STEM,
670
        		requestIdentifier := testcasename() & "-m_createSchedule" & f_rnd(1, 1000000),
671
        		resourceType := int18,
672
        		primitiveContent := {
673
        			any_1 := {{Schedule_optional := m_contentCreateSchedule (p_scheduleElement, p_name)}}	
674
        		}
675
676
        	};
        	
677
			//Added by @Naum
678
			template (value) RequestPrimitive m_createServiceSubscribedAppRule (in ListOfM2MID p_applicableCredIDs, in ListOfM2MID p_allowedAppIDs, in ListOfM2MID p_allowedAEs) modifies m_create := {
679
				from_ := PX_AE_ID_STEM,
680
				requestIdentifier := testcasename() & "-m_createServiceSubscribedAppRule" & f_rnd(1, 1000000),
681
				resourceType := int19,//FIXME Is this the correct value?
682
				primitiveContent := {
683
					any_1 := {{ServiceSubscribedAppRule_optional := m_contentCreateServiceSubscribedAppRule (p_applicableCredIDs, p_allowedAppIDs, p_allowedAEs)}}
684
				}
685
			};
686
        	
687
688
689
690
       	
			/**
			 * @desc Base CREATE request primitive for Subscription resource
			 */
691
			template (value) RequestPrimitive m_createSubscriptionBase modifies m_create := {
692
				requestIdentifier := testcasename() & "-m_createSubscription" & f_rnd(1, 1000000),
693
				resourceType := int23,
694
				primitiveContent := {
695
					any_1 := {{Subscription_optional := m_contentCreateSubscription ({"NotInitialized"})}}	
696
				}
697
698
			};
        	
699
        	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 := {
700
        		to_ := p_parentResourceAddress,
701
        		from_ := PX_AE_ID_STEM,
702
        		requestIdentifier := testcasename() & "-m_createSubscription" & f_rnd(1, 1000000),
703
        		resourceType := int23,
704
        		primitiveContent := {
705
					any_1 := {{Subscription_optional := m_contentCreateSubscription (p_notificationURI, p_name)}}	
706
        		}
707
        	};
708
        	
709
710
711
712
713
714
715
716
717
718
719
720
721
722
			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)}}	
				}
			};
        	
723
        	//@Martin
724
725
        	template (value) RequestPrimitive m_createLocationPolicy(in template (value) LocationSource p_locationSource, in template (omit) AcpType p_accessControlPolicyIds, in template (omit) XSD.Duration p_locationUpdatePeriod, in template (omit) NodeID p_locationTargetID, in template (omit) XSD.AnyURI p_locationServerAddress) modifies m_create := {
        		
726
        	  	requestIdentifier	:= testcasename() & "-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
727
728
        	  	resourceType		:= int10,
        	  	primitiveContent	:= {        	    
729
        	    			any_1 := {{ LocationPolicy_optional := m_contentCreateLocationPolicy(p_locationSource, p_accessControlPolicyIds, p_locationUpdatePeriod, p_locationTargetID, p_locationServerAddress) }}
730
731
        	  	},
			  	resultContent := int1//default
732
        	};
733
        	//@Martin
734
        	template (value) RequestPrimitive m_createNotification(in template (value) Representation p_resourcePresentation, in template (omit)NotificationEventType p_notifEventType, in template (omit) XSD.AnyURI p_subscriptionReference, in template (omit) XSD.AnyURI p_notifForwardingURI) modifies m_create := {
735
        	  requestIdentifier	:= testcasename() & "-m_createNotification" & f_rnd(1, 1000000),
736
        	  primitiveContent	:= {	
737
        	    			any_1 :=	{{ Notification := m_contentCreateNotification(p_resourcePresentation, p_notifEventType, p_subscriptionReference, p_notifForwardingURI)}}        	    
738
739
740
741
        	  },
        	  resultContent		:= int1 //default
        	  
        	};
742
        	
743
744
745
746
747
748
749
750
751
752
			/**
			 * @desc Reception template for SemanticDescriptor creation
			 */
			template RequestPrimitive mw_createSemanticDescriptor(template XSD.ID p_from := *, template XSD.ID p_to := ?, template SemanticDescriptor_optional p_semanticDescriptor := mw_contentCreateSemanticDescriptor) modifies mw_create := {
				resourceType := int24,
				primitiveContent := {
					any_1 := {{SemanticDescriptor_optional := p_semanticDescriptor}}	
				}
			};
			
753
754
755
756
    	}//end group Create
    	
    	group Delete {
    	
757
        	template (value) RequestPrimitive m_deleteRequest(XSD.ID p_resourceAddress) := {
758
        		operation := int4,
759
        		to_ := p_resourceAddress,
760
        		from_ := PX_SUPER_USER,
761
        		requestIdentifier := testcasename() & "-m_deleteResource" & f_rnd(1, 1000000),
762
        		resourceType := omit,
763
        		primitiveContent := omit, 
764
				roleIDs := omit, 
765
766
767
768
769
770
771
772
773
774
775
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
776
777
778
				discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
779
				localTokenIDs := omit, 
780
				tokenRequestIndicator := omit
781
782
783

        	};
        	
784
785
786
787
			template (value) RequestPrimitive m_delete(XSD.ID p_resourceAddress) := {
				operation := int4,
				to_ := p_resourceAddress,
				from_ := PX_AE_ID_STEM,
788
				requestIdentifier := testcasename() & "-m_deleteAe" & f_rnd(1, 1000000),
789
790
				resourceType := omit,
				primitiveContent := omit, 
791
				roleIDs := omit, 
792
793
794
795
796
797
798
799
800
801
802
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
803
804
805
				discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
806
				localTokenIDs := omit,
807
				tokenRequestIndicator := omit
808

809
810
			};
        	
811
    	}//end group Delete
812
813
814
815
816
817
818
819
820
821
822
823
824
    	
    	group Notify {
    		
			/**
			 * @desc Base NOTIFY request primitive
			 */
			template RequestPrimitive mw_notifyBase := {
				operation := int5,
				to_ := ?,
				from_ := *,
				requestIdentifier := ?,
				resourceType := *,
				primitiveContent := { any_1 := {{ Notification := mw_contentNotificationBase}} },
825
				roleIDs := *,
826
827
828
829
830
831
832
833
834
835
836
837
838
839
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
				discoveryResultType := *,
				tokens := *,
				tokenIDs := *,
840
				localTokenIDs := *,
841
				tokenRequestIndicator := *
842
843
844
845
846
847
848
849
850
851
852
853
			};
			
			/**
			 * @desc Base NOTIFY request primitive
			 */
			template RequestPrimitive mw_aggregatedNotifyBase := {
				operation := int5,
				to_ := ?,
				from_ := *,
				requestIdentifier := ?,
				resourceType := *,
				primitiveContent := { any_1 := {{ AggregatedNotification := ?}} },
854
				roleIDs := *,
855
856
857
858
859
860
861
862
863
864
865
866
867
868
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
				discoveryResultType := *,
				tokens := *,
				tokenIDs := *,
869
				localTokenIDs := *,
870
				tokenRequestIndicator := *
871
872
873
874
875
876
			};
			
			/**
			 * @desc Base NOTIFY request primitive
			 */
			
877
			template RequestPrimitive mw_notify(in template Notification p_notification) modifies mw_notifyBase := {
878
879
880
881
882
883
884
885
886
				primitiveContent := { 
					any_1 := {{ Notification := p_notification}}
				}
			};
			

			
    		
    	}//end of group Notify
887
888
889
890
	}//end group RequestPrimitives
	
	group ContentCreate {
		
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
		template AEAnnc_optional m_contentCreateAEAnnc (in template (omit)  Labels p_labels, in template (omit) AcpType p_accessControlPolicyIds, XSD.ID p_appId := PX_APP_ID, in template (omit) XSD.AnyURI p_nodeLink := omit) := {
			resourceName := omit,//O TODO 
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := p_labels,//O
			accessControlPolicyIDs := p_accessControlPolicyIds,//O
			expirationTime := omit,//O
			dynamicAuthorizationConsultationIDs := omit, //TODO Check whether it is optional or mandatory for create operation
			link := omit,//M TODO Put the right value
			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 := p_nodeLink,//NP
			requestReachability := true,//M
			contentSerialization := omit,//O
			e2eSecInfo := omit, //O TODO Check whether it is optional or mandatory for create operation
			choice := omit//NP
		};	
Miguel Angel Reina Ortega's avatar
Miguel Angel Reina Ortega committed
914

915
		template AEAnnc_optional mw_contentCreateAEAnnc (in template (omit)  Labels p_labels, in template (omit) AcpType p_accessControlPolicyIds, XSD.ID p_appId := PX_APP_ID, in template (omit) XSD.AnyURI p_nodeLink := omit) := {
916
    		resourceName := *,//O
917
918
919
920
921
    		resourceType := omit,//NP
    		resourceID := omit,//NP
    		parentID := omit,//NP
    		creationTime := omit,//NP
    		lastModifiedTime := omit,//NP
922
    		labels := p_labels,//O
923
924
    		accessControlPolicyIDs := p_accessControlPolicyIds,//O
    		expirationTime := *,//O
925
    		dynamicAuthorizationConsultationIDs := omit, //TODO Check whether it is optional or mandatory for create operation
926
927
			link := *,//O
			appName := *,//O
928
929
			app_ID := p_appId,//M
			aE_ID := omit,//NP
930
931
			pointOfAccess := *, //{"http://127.0.0.1:1400/monitor"},//O //{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA
			ontologyRef := *,//O
932
			nodeLink := p_nodeLink,//NP
933
934
935
			requestReachability := ?,//M
			contentSerialization := *,//O
			e2eSecInfo := omit, //O TODO Check whether it is optional or mandatory for create operation
936
937
			choice := omit//NP
		};	
938
		
Miguel Angel Reina Ortega's avatar
Miguel Angel Reina Ortega committed
939
940
941
    	/**
    	 * @desc Base primitiveContent for CREATE operation for AE resource
    	 * @param p_name Resource name
942
    	 * @param p_accessControlPolicyIds ACP IDs for the AE
Miguel Angel Reina Ortega's avatar
Miguel Angel Reina Ortega committed
943
    	 */
944
    	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
945

946
947
948
949
950
951
952
			resourceName := p_name,//O
			resourceType := omit,//NP
			resourceID := omit,//NP
			parentID := omit,//NP
			creationTime := omit,//NP
			lastModifiedTime := omit,//NP
			labels := omit,//O
953
			accessControlPolicyIDs := p_accessControlPolicyIds,//O
954
			expirationTime := omit,//O
955
    		dynamicAuthorizationConsultationIDs := omit, //O
956
957
958
    		announceTo := omit,//O
    		announcedAttribute := omit,//O
    		appName := omit,//O
959
			app_ID := p_appId,//M
960
    		aE_ID := omit,//NP
961
    		pointOfAccess := p_poaList, //O {"http://127.0.0.1:1400/monitor"},//{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA
962
963
    		ontologyRef := omit,//O
    		nodeLink := omit,//NP
964
    		requestReachability := true,//M
965
    		contentSerialization := omit,//O
966
			e2eSecInfo := omit, //O
967
968
    		choice := omit//NP
    	};	
969
    	
970
971
972
973
974
    	/**
    	 * @desc Base primitiveContent for CREATE operation for AccessControlPolicy resource
    	 * @param p_name Resource name
    	 * @param p_acor Allowed originators
    	 * @param p_allowedOperations Allowed operations
975
    	 */
976
977
978
979
980
981
982
983
984
985
986
    	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
987
			privileges := {