OneM2M_Templates.ttcn 73.1 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 167 2016-11-18 10:54:25Z 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 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
				tokenReqIndicator := 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
				tokenReqIndicator := 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
				tokenReqIndicator := 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
				tokenReqIndicator := 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
				tokenReqIndicator := 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 362 363
				tokenReqIndicator := omit

			};
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
				tokenReqIndicator := *
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) XSD.NCName 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) 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}}
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, {"/" & PX_CSE_NAME & "/" & "NotInitialized"}, omit)}}	//TODO: p_resourceId
502 503
				}
			};
504
        	
505
        	template (value) RequestPrimitive m_createGroup(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name, in template (omit) AcpType p_accessControlPolicyIDs, in template (value) XSD.AnyURI p_memberId ) modifies m_create := {
506
        		to_ := p_parentResourceAddress,
507
        		from_ := PX_AE_ID_STEM,
508
        		requestIdentifier := "m_createGroup" & f_rnd(1, 1000000),
509
        		resourceType := int9,
510
        		primitiveContent := {
511
        			any_1 := {{Group_optional := m_contentCreateGroup (1, {"/" & PX_CSE_NAME & "/" & valueof(p_memberId)}, p_accessControlPolicyIDs)}}	//TODO: p_resourceId
512
        		}
513 514
        	};
        	
515 516 517 518
       	
			/**
			 * @desc Base CREATE request primitive for PollingChannel resource
			 */
519
			template (value) RequestPrimitive m_createPollingChannelBase modifies m_create := {
520
				requestIdentifier := "m_createPollingChannel" & f_rnd(1, 1000000),
521 522
				resourceType := int15,
				primitiveContent := {
523
					any_1 := {{PollingChannel_optional := m_contentCreatePollingChannel (-)}}	
524 525
				}
			};
526
        	
527
        	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 := {
528
        		to_ := p_parentResourceAddress,
529
        		from_ := p_originatorId,
530
        		requestIdentifier := "m_createPollingChannel" & f_rnd(1, 1000000),
531
        		resourceType := int15,
532
        		primitiveContent := {
533
        			any_1 := {{PollingChannel_optional := m_contentCreatePollingChannel ()}}	
534
        		}
535 536
        	};
        	
537 538 539
			/**
			 * @desc Base CREATE request primitive for Schedule resource
			 */
540
        	template (value) RequestPrimitive m_createScheduleBase modifies m_create := {
541
        		requestIdentifier := "m_createSchedule" & f_rnd(1, 1000000),
542
        		resourceType := int18,
543
        		primitiveContent := {
544
        			any_1 := {{Schedule_optional := m_contentCreateSchedule ({{"0,0,0 1 2,1,1,*"}})}}	
545
        		}
546 547
        	};
        	
548
        	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 := {
549
        		to_ := p_parentResourceAddress,
550
        		from_ := PX_AE_ID_STEM,
551
        		requestIdentifier := "m_createSchedule" & f_rnd(1, 1000000),
552
        		resourceType := int18,
553
        		primitiveContent := {
554
        			any_1 := {{Schedule_optional := m_contentCreateSchedule (p_scheduleElement)}}	
555
        		}
556 557
        	};
        	
558
			//Added by @Naum
559
			template (value) RequestPrimitive m_createServiceSubscribedAppRule (in ListOfM2MID p_applicableCredIDs, in ListOfM2MID p_allowedApp_IDs, in ListOfM2MID p_allowedAEs) modifies m_create := {
560
				from_ := PX_AE_ID_STEM,
561 562
				requestIdentifier := "m_createServiceSubscribedAppRule" & f_rnd(1, 1000000),
				resourceType := int19,//FIXME Is this the correct value?
563
				primitiveContent := {
564
					any_1 := {{ServiceSubscribedAppRule_optional := m_contentCreateServiceSubscribedAppRule (p_applicableCredIDs, p_allowedApp_IDs, p_allowedAEs)}}
565
				}
566
			};
567
        	
568 569 570 571
       	
			/**
			 * @desc Base CREATE request primitive for Subscription resource
			 */
572
			template (value) RequestPrimitive m_createSubscriptionBase modifies m_create := {
573
				requestIdentifier := "m_createSubscription" & f_rnd(1, 1000000),
574
				resourceType := int23,
575
				primitiveContent := {
576
					any_1 := {{Subscription_optional := m_contentCreateSubscription ({"Not Initialized"})}}	
577
				}
578 579
			};
        	
580
        	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 := {
581
        		to_ := p_parentResourceAddress,
582
        		from_ := PX_AE_ID_STEM,
583
        		requestIdentifier := "m_createSubscription" & f_rnd(1, 1000000),
584
        		resourceType := int23,
585
        		primitiveContent := {
586
					any_1 := {{Subscription_optional := m_contentCreateSubscription (p_notificationURI, p_name)}}	
587
        		}
588
        	};
589
        	
590 591 592 593 594 595 596 597 598 599 600 601 602 603
			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)}}	
				}
			};
        	
604
        	//@Martin
605 606
        	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
607 608
        	  	resourceType		:= int10,
        	  	primitiveContent	:= {        	    
609
        	    			any_1 := {{ LocationPolicy_optional := m_contentCreateLocationPolicy(locationSource, p_accessControlPolicyIDs, locationUpdatePeriod, locationTargetID, locationServerAddress) }}
610 611
        	  	},
			  	resultContent := int1//default
612
        	};
613
        	//@Martin
614
        	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 := {
615 616
        	  requestIdentifier	:= "m_createNotification" & f_rnd(1, 1000000),
        	  primitiveContent	:= {	
617
        	    			any_1 :=	{{ Notification := m_contentCreateNotification(resourcePresentation, notifEventType, subscriptionReference, notifForwardingURI)}}        	    
618 619 620 621
        	  },
        	  resultContent		:= int1 //default
        	  
        	};
622
        	
623
        	
624 625 626 627
    	}//end group Create
    	
    	group Delete {
    	
628
        	template (value) RequestPrimitive m_deleteRequest(XSD.ID p_resourceAddress) := {
629
        		operation := int4,
630
        		to_ := p_resourceAddress,
631
        		from_ := PX_SUPER_USER,
632
        		requestIdentifier := "m_deleteResource" & f_rnd(1, 1000000),
633
        		resourceType := omit,
634
        		primitiveContent := omit, 
635
				roleIDs := omit, 
636 637 638 639 640 641 642 643 644 645 646
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
647 648 649
				discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
650
				localTokenIDs := omit, 
651
				tokenReqIndicator := omit
652 653 654

        	};
        	
655 656 657 658 659 660 661
			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, 
662
				roleIDs := omit, 
663 664 665 666 667 668 669 670 671 672 673
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
674 675 676
				discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
677
				localTokenIDs := omit,
678
				tokenReqIndicator := omit
679

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

			
    		
    	}//end of group Notify
758 759 760 761
	}//end group RequestPrimitives
	
	group ContentCreate {
		
Miguel Angel Reina Ortega's avatar
Miguel Angel Reina Ortega committed
762

763
			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) := {
764 765 766 767 768 769 770 771 772
    		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
773
    		dynamicAuthorizationConsultationIDs := omit, //TODO Check whether it is optional or mandatory for create operation
774 775 776 777 778 779 780 781 782
			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
783
			e2eSecInfo := omit, //TODO Check whether it is optional or mandatory for create operation
784 785
			choice := omit//NP
		};	
786
		
Miguel Angel Reina Ortega's avatar
Miguel Angel Reina Ortega committed
787 788 789 790 791
    	/**
    	 * @desc Base primitiveContent for CREATE operation for AE resource
    	 * @param p_name Resource name
    	 * @param p_accessControlPolicyIDs ACP IDs for the AE
    	 */
792
    	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
793

794 795 796 797 798 799 800 801 802
			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
803
    		dynamicAuthorizationConsultationIDs := omit, //O
804 805 806
    		announceTo := omit,//O
    		announcedAttribute := omit,//O
    		appName := omit,//O
807
			app_ID := p_appId,//M
808
    		aE_ID := omit,//NP
809
    		pointOfAccess := p_poaList, //O {"http://127.0.0.1:1400/monitor"},//{"http://192.168.1.92:18080/notifications/AE"}, // TODO: Check this => AE PoA
810 811
    		ontologyRef := omit,//O
    		nodeLink := omit,//NP
812
    		requestReachability := true,//M
813
    		contentSerialization := omit,//O
814
			e2eSecInfo := omit, //O
815 816
    		choice := omit//NP
    	};	
817
    	
818 819 820 821 822
    	/**
    	 * @desc Base primitiveContent for CREATE operation for AccessControlPolicy resource
    	 * @param p_name Resource name
    	 * @param p_acor Allowed originators
    	 * @param p_allowedOperations Allowed operations
823
    	 */
824 825 826 827 828 829 830 831 832 833 834
    	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
835
			privileges := {
836
				accessControlRule_list := {valueof(m_createAcr(p_acor, p_allowedOperations))}
837
			},//M
838
			selfPrivileges := {
839
				accessControlRule_list := {valueof(m_createAcr(p_acor, int63))}
840 841
			},//M
			choice := omit //NP
842
		};
843 844 845 846 847 848 849
		
		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,
			accessControlContexts_list := omit,
			accessControlAuthenticationFlag := omit
		}
850
    	
851 852
		//added by @Naum
		template (value) CSEBase_optional m_contentCreateCSEBase (in ServiceSubscribedAppRule p_serviceSubscribedAppRule) := {
853
			resourceName := omit,
854
			resourceType := omit,
855 856 857 858 859 860 861 862 863 864 865
			resourceID := omit,
			parentID := omit,
			creationTime := omit,
			lastModifiedTime := omit,
			labels := omit,
			accessControlPolicyIDs := omit,
			cseType := omit,
			cSE_ID := omit,
			supportedResourceType := omit,
			pointOfAccess := omit,
			nodeLink := omit,
866
			e2eSecInfo := omit, 
867 868 869 870
			choice := {
				choice_list := {{
				  serviceSubscribedAppRule := p_serviceSubscribedAppRule
				}}
871 872
			}
		}
873
    	
874 875 876 877 878 879
    	/**
    	 * @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
880
    	 */
881
    	template (value)