OneM2M_Templates.ttcn 145 KB
Newer Older
1 2 3 4 5 6 7
/**
 *  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.
 *  
8
 *  @author     oneM2M
9
 *  @version    $URL: https://oldforge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $
10
 *              $Id: OneM2M_Templates.ttcn 356 2017-08-21 12:25:14Z reinaortega $
11 12 13 14 15 16 17 18 19 20
 *  @desc       Module containing templates for oneM2M
 *
 */
module OneM2M_Templates {

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

23
		
24 25 26 27 28 29
	/**
	 * @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 
30
	 */
31 32 33 34 35
	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);	
	}

36 37

	/* Templates */
38
	
39
	group Primitives {
40 41 42 43
    	/** 
    	 * @desc Base template for request sending operations
    	 * @param p_requestPrimitive
    	 */
44
    	template (value) MsgOut m_request(in template (value) RequestPrimitive p_requestPrimitive, in template (omit) AttributeAux_list p_forcedFields := omit) := {
45
    		primitive := { requestPrimitive := p_requestPrimitive},
46
    		host := PX_SUT_ADDRESS,
47 48 49
    		xmlNamespace := PX_XML_NAMESPACE,
    		protocolBinding := PX_PROTOCOL_BINDING,
    		serialization := PX_SERIALIZATION, 
50
    		forcedFields := p_forcedFields
51
    	};
52 53 54 55 56
    	
		/** 
		 * @desc Base template for response sending operations
		 * @param p_responsePrimitive
		 */
57
		template (value) MsgOut m_response(in template (value) ResponsePrimitive p_responsePrimitive, in template (omit) AttributeAux_list p_forcedFields := omit) := {
58
			primitive := { responsePrimitive := p_responsePrimitive},
59
			host := PX_SUT_ADDRESS,
60 61 62
			xmlNamespace := PX_XML_NAMESPACE,
			protocolBinding := PX_PROTOCOL_BINDING,
			serialization := PX_SERIALIZATION, 
63
			forcedFields := p_forcedFields
64
		};
65 66 67 68 69 70 71 72 73 74 75 76 77 78
		
		/** 
		 * @desc Base template for response sending operations
		 * @param p_responsePrimitive
		 */
		template (value) MsgOut m_httpResponse(in template (value) ResponsePrimitive p_responsePrimitive, in template (omit) AttributeAux_list p_forcedFields := omit) := {
			primitive := { responsePrimitive := p_responsePrimitive},
			host := PX_SUT_ADDRESS,
			xmlNamespace := PX_XML_NAMESPACE,
			protocolBinding := "HTTP",
			serialization := PX_SERIALIZATION, 
			forcedFields := p_forcedFields
		};
		
79 80 81 82 83 84 85 86
    	template MsgIn mw_request(in template (present) RequestPrimitive p_requestPrimitive) := {
    		primitive := { requestPrimitive := p_requestPrimitive}
    	};
    	
		/** 
		 * @desc Base template for response receiving operations
		 * @param p_responsePrimitive
		 */
87
		template MsgIn mw_response(in template (present) ResponsePrimitive p_responsePrimitive := ?) := {
88 89 90
			primitive := { responsePrimitive := p_responsePrimitive}
		};
    	
91
	}//end of group primitives
92 93 94 95
	
	group RequestPrimitives { 
		
		group Retrieve {
96

97 98 99 100
			/**
			 * @desc Base RETRIEVE request primitive
			 * @param p_targetResourceAddress Target resource address
			 * @param p_originator Originator (from)
101
			 */
102
			template (value) RequestPrimitive m_retrieve(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) := {
103
				operation := int2,
104
				to_ := p_targetResourceAddress,
105
				from_ := p_originator,
106
				requestIdentifier := "m_retrieve" & f_rnd(1, 1000000),
107
				resourceType := omit,
108
				primitiveContent := omit,
109
				roleIDs := omit, 
110 111 112 113 114 115 116 117 118 119 120
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
121 122 123
				discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
124
				localTokenIDs := omit,
125
				tokenRequestIndicator := omit
126 127
			};
        	
128 129 130 131
			/**
			 * @desc Base Receive RETRIEVE request primitive
			 * @param p_targetResourceAddress Target resource address
			 */
132
			template RequestPrimitive mw_retrieve(XSD.ID p_targetResourceAddress) := {
133 134 135 136
				operation := int2,
				to_ := p_targetResourceAddress,
				from_ := ?,
				requestIdentifier := ?,
137
				resourceType := omit,
138
				primitiveContent := *,
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
				roleIDs := *, 
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
				discoveryResultType := *,
				tokens := *,
				tokenIDs := *,
				localTokenIDs := *,
				tokenRequestIndicator := *
			};
        	
158 159 160 161 162
			/**
			 * @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)
			 */
163
			template (value) RequestPrimitive m_retrieveAttributeToOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) := {
164
        		operation := int2,
165
        		to_ := p_targetResourceAddress,
166
        		from_ := p_originator,
167 168
        		requestIdentifier := "m_retrieveResourceAttributeOptionTo" & f_rnd(1, 1000000),
        		resourceType := omit,
169
				primitiveContent := omit, 
170
				roleIDs := omit,
171 172 173 174 175 176 177 178 179 180 181
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
182 183 184
				discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
185
				localTokenIDs := omit,
186
				tokenRequestIndicator := omit
187 188
        	};
        	
189 190 191 192 193
			/**
			 * @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)
194
			 */
195
			template (value) RequestPrimitive m_retrieveAttributeContentOption(XSD.ID p_targetResourceAddress, in template (value) AttributeList_1 p_attributeList, in XSD.ID p_originator) := {
196
				operation := int2,
197
				to_ := p_targetResourceAddress,
198
				from_ := p_originator,
199 200
				requestIdentifier := "m_retrieveResourceAttributeContentOption" & f_rnd(1, 1000000),
				resourceType := omit,
201
				primitiveContent := {attributeList := p_attributeList},
202
				roleIDs := omit,
203 204 205 206 207 208 209 210 211 212 213
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
214 215 216
				discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
217
				localTokenIDs := omit,
218
				tokenRequestIndicator := omit
219
			};
220 221 222 223 224 225 226
			
			/**
			  * @desc RETRIEVE request primtive containing the Filter Criteria in the filterCriteria field
			  * @param p_targetResourceAddress Target resource address 
			  * @param p_filterCriteria FilterCriteria
			  * @param p_originator Originator (from)
		     */
227
			template (value) RequestPrimitive m_retrieveFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterUsage p_filterUsage) modifies m_retrieve := {
228 229
				requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
				filterCriteria := {
230 231 232 233 234 235 236 237 238 239 240 241 242 243
					createdBefore := omit,
					createdAfter := omit,
					modifiedSince := omit,
					unmodifiedSince := omit,
					stateTagSmaller := omit,
					stateTagBigger := omit,
					expireBefore := omit,
					expireAfter := omit,
					labels := omit,
					resourceType := omit,
					sizeAbove := omit,
					sizeBelow := omit,
					contentType_list := {},
					attribute_list := {},
244
					filterUsage := p_filterUsage,
245 246 247 248 249 250 251
					limit := omit,
					semanticsFilter_list := {},
					filterOperation := omit,
					contentFilterSyntax := omit,
					contentFilterQuery := omit,
					level := omit,
					offset := omit
252 253 254
				}
			};
			
255 256 257 258 259 260 261 262 263 264 265
			/**
			  * @desc RETRIEVE request primtive containing the Filter Criteria in the filterCriteria field
			  * @param p_targetResourceAddress Target resource address 
			  * @param p_filterCriteria FilterCriteria
			  * @param p_originator Originator (from)
			 */
			template (value) RequestPrimitive m_retrieveFilterCriteria(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterCriteria p_filterCriteria) modifies m_retrieve := {
				requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
				filterCriteria := p_filterCriteria
			};
			
Pramod Kulkarni's avatar
Pramod Kulkarni committed
266 267 268 269 270 271 272
			/**
			  * @desc RETRIEVE request primtive containing the Filter Criteria in the filterCriteria field
			  * @param p_targetResourceAddress Target resource address 
			  * @param p_originator Originator (from)
			  * @param p_filterUsage FilterUsage
			  * @param p_labels Labels
			 */
273
			template (value) RequestPrimitive m_retrieveFilterUsageOptionLabel(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) FilterUsage p_filterUsage, in Labels p_labels) modifies m_retrieve := {
Pramod Kulkarni's avatar
Pramod Kulkarni committed
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290
				requestIdentifier := "m_retrieveResourceFilterUsageOptionLabel" & f_rnd(1, 1000000),
				filterCriteria := {
					createdBefore := omit,
					createdAfter := omit,
					modifiedSince := omit,
					unmodifiedSince := omit,
					stateTagSmaller := omit,
					stateTagBigger := omit,
					expireBefore := omit,
					expireAfter := omit,
					labels := p_labels,
					resourceType := omit,
					sizeAbove := omit,
					sizeBelow := omit,
					contentType_list := {},
					attribute_list := {},
					filterUsage := p_filterUsage, 
291 292 293 294 295 296 297
					limit := omit,
					semanticsFilter_list := {},
					filterOperation := omit,
					contentFilterSyntax := omit,
					contentFilterQuery := omit,
					level := omit,
					offset := omit
Pramod Kulkarni's avatar
Pramod Kulkarni committed
298 299
				}
			};
300 301 302 303 304 305
			/**
			  * @desc RETRIEVE request primtive containing the Discovery Type in the discoveryResultType field and Filter Criteria in the filterCriteria field
			  * @param p_targetResourceAddress Target resource address 
			  * @param p_filterCriteria FilterCriteria
			  * @param p_originator Originator (from)
			 */
306
			template (value) RequestPrimitive m_retrieveDiscResTypeFilterUsageOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator, in template (value) DiscResType p_discResType, in template (value) FilterUsage p_filterUsage) modifies m_retrieve := {
307 308
				requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
				filterCriteria := {
309 310 311 312 313 314 315 316 317 318 319 320 321 322
					createdBefore := omit,
					createdAfter := omit,
					modifiedSince := omit,
					unmodifiedSince := omit,
					stateTagSmaller := omit,
					stateTagBigger := omit,
					expireBefore := omit,
					expireAfter := omit,
					labels := omit,
					resourceType := omit,
					sizeAbove := omit,
					sizeBelow := omit,
					contentType_list := {},
					attribute_list := {},
323
					filterUsage := p_filterUsage,
324 325 326 327 328 329 330
					limit := omit,
					semanticsFilter_list := {},
					filterOperation := omit,
					contentFilterSyntax := omit,
					contentFilterQuery := omit,
					level := omit,
					offset := omit
331 332 333 334 335 336 337 338 339 340
				},
				discoveryResultType := p_discResType
			};
			
			/**
				  * @desc RETRIEVE request primtive containing the Discovery Type in the discoveryResultType field and Filter Criteria in the filterCriteria field
				  * @param p_targetResourceAddress Target resource address 
				  * @param p_filterCriteria FilterCriteria
				  * @param p_originator Originator (from)
				 */
341
				template (value) RequestPrimitive m_retrieveInvalidFormatOption(XSD.ID p_targetResourceAddress, in XSD.ID p_originator) modifies m_retrieve := {
342 343
					requestIdentifier := "m_retrieveResourceFilterUsageOption" & f_rnd(1, 1000000),
					filterCriteria := {
344 345 346 347 348 349 350 351 352 353 354 355 356 357
						createdBefore := omit,
						createdAfter := omit,
						modifiedSince := omit,
						unmodifiedSince := omit,
						stateTagSmaller := omit,
						stateTagBigger := omit,
						expireBefore := omit,
						expireAfter := omit,
						labels := omit,
						resourceType := omit,
						sizeAbove := omit,
						sizeBelow := omit,
						contentType_list := {},
						attribute_list := {},
358
						filterUsage := omit,
359 360 361 362 363 364 365
						limit := omit,
						semanticsFilter_list := {},
						filterOperation := omit,
						contentFilterSyntax := omit,
						contentFilterQuery := omit,
						level := omit,
						offset := omit
366 367 368
					}
				};
			
369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387
			/**
			  * @desc FilterCriteria empty template
			 */
			template (value) FilterCriteria m_filterCriteria := {
				createdBefore := omit,
				createdAfter := omit,
				modifiedSince := omit,
				unmodifiedSince := omit,
				stateTagSmaller := omit,
				stateTagBigger := omit,
				expireBefore := omit,
				expireAfter := omit,
				labels := omit,
				resourceType := omit,
				sizeAbove := omit,
				sizeBelow := omit,
				contentType_list := {},
				attribute_list := {},
				filterUsage := omit,
388 389 390 391 392 393 394 395
				limit := omit,
				semanticsFilter_list := {},
				filterOperation := omit,
				contentFilterSyntax := omit,
				contentFilterQuery := omit,
				level := omit,
				offset := omit
				
396 397 398
			}
			
			
399
			
400 401 402
    	}//end group Retrieve

    	group Update {
403 404
    		
    		template (value) RequestPrimitive m_update := {
405 406
				operation := int3,
				to_ := "NotInitialized",
407
				from_ := "NotInitialized",
408
				requestIdentifier := "m_update",
409
				resourceType := omit,
410
				primitiveContent:= omit,
411
				roleIDs := omit, 
412 413 414 415 416 417 418 419 420 421 422
				originatingTimestamp := omit,
				requestExpirationTimestamp := omit,
				resultExpirationTimestamp := omit,
				operationExecutionTime := omit,
				responseType := omit,
				resultPersistence := omit,
				resultContent := omit,
				eventCategory := omit,
				deliveryAggregation := omit,
				groupRequestIdentifier := omit,
				filterCriteria := omit,
423 424 425
				discoveryResultType := omit,
				tokens := omit,
				tokenIDs := omit,
426
				localTokenIDs := omit,
427
				tokenRequestIndicator := omit
428
			};
429
        	
430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456
						
			template RequestPrimitive mw_update(template XSD.ID p_from := *, template XSD.ID p_to := ?) := {
				operation := int3,
				to_ := p_to,
				from_ := p_from,
				requestIdentifier := ?,
				resourceType := ?,
				primitiveContent:= ?,
				roleIDs := *, 
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
				discoveryResultType := *, 
				tokens := *,
				tokenIDs := *,
				localTokenIDs := *,
				tokenRequestIndicator := *
			};
        	
457 458 459 460
			/**
			 * @desc Base UPDATE request primitive for Ae resource
			 */
			template (value) RequestPrimitive m_updateAeBase modifies m_update:= {
461
				requestIdentifier := "m_updateAe",
462
				primitiveContent:= {aE := m_contentUpdateAe}
463
			};
464
						
465 466 467 468 469 470 471 472 473
			/**
			 * @desc Reception template for update Ae resource
			 */
			template RequestPrimitive mw_updateAe(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_update := {
				resourceType := int2,
				primitiveContent:= {aE := ?}
			};
			 
        	
474 475 476 477
			/**
			 * @desc Base UPDATE request primitive for Container resource
			 */
			template (value) RequestPrimitive m_updateContainerBase modifies m_update:= {
478
				requestIdentifier := "m_updateContainer",
479
				primitiveContent:= {container := m_contentUpdateContainer}
480
			};
481
			
482 483 484 485 486 487 488 489
			/**
			 * @desc Base Reception template for update Container
			 */
			template RequestPrimitive mw_updateContainer(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_update := {
				resourceType := int3,
				primitiveContent := {container := ?}
			}; 
			
Antonio Castillo Verdugo's avatar
Antonio Castillo Verdugo committed
490 491 492 493
			/**
			 * @desc Base UPDATE request primitive for ContentInstance resource
			 */
			template (value) RequestPrimitive m_updateContentInstanceBase modifies m_update:= {
494
				requestIdentifier := "m_updateContentInstance",
495
				primitiveContent:= {contentInstance := m_contentUpdateContentInstance}
Antonio Castillo Verdugo's avatar
Antonio Castillo Verdugo committed
496 497
			};
			
498 499 500
			/**
			 * @desc Base UPDATE request primitive for AccessControlPolicy resource
			 */        				
501
			template (value) RequestPrimitive m_updateAcpBase modifies m_update := {
502
				requestIdentifier := "m_updateAcp",
503
				primitiveContent:= {accessControlPolicy := m_contentUpdateAcp}
504 505
			};
			
506
			template (value) RequestPrimitive m_updateAcpPrivileges(in template(omit) SetOfAcrs p_privileges := omit, in template(omit) SetOfAcrs p_selfPrivileges := omit) modifies m_update := {
507
				requestIdentifier := "m_updateAcp",
508
				primitiveContent:= {accessControlPolicy := m_contentUpdateAcpPrivileges(p_privileges, p_selfPrivileges)}
509 510
			};
			
511 512 513
			/**
			 * @desc Base UPDATE request primitive for Group resource
			 */
514
			template (value) RequestPrimitive m_updateGroupBase modifies m_update := {
515
				requestIdentifier := "m_updateGroup",
516
				primitiveContent:= {group_ := m_contentUpdateGroup}
517 518
			};
			
519 520 521 522
			/**
			 * @desc Base UPDATE request primitive for CSEBase resource
			 */
			template (value) RequestPrimitive m_updateCSEBaseBase modifies m_update := {
523
				requestIdentifier := "m_updateGroup",
524
				primitiveContent:= {cSEBase := m_contentUpdateCSEBase}
525 526
			};
			
527 528 529
			/**
			 * @desc Base UPDATE request primitive for Schedule resource
			 */
530
			template (value) RequestPrimitive m_updateScheduleBase modifies m_update := {
531
				requestIdentifier := "m_updateSchedule",
532
				primitiveContent:= {schedule := m_contentUpdateSchedule}
533 534
			};
			
535 536 537
			/**
			 * @desc Base UPDATE request primitive for PollingChannel resource
			 */
538
			template (value) RequestPrimitive m_updatePollingChannelBase modifies m_update := {
539
				requestIdentifier := "m_updatePollingChannel",
540
				primitiveContent:= {pollingChannel := m_contentUpdatePollingChannel}
541 542
			};
			
543 544 545
			/**
			 * @desc Base UPDATE request primitive for Subscription resource
			 */
546
			template (value) RequestPrimitive m_updateSubscriptionBase modifies m_update := {
547
				requestIdentifier := "m_updateSubscription",
548
				primitiveContent:= {subscription := m_contentUpdateSubscription}
549
			};
550
			
551
			template (value) RequestPrimitive m_updateLocationPolicy(XSD.ID p_locResourceAddress, in template (omit) AcpType p_accessControlPolicyIds, in template (value) XSD.Duration p_locationUpdatePeriod) modifies m_update := {
oneM2MTester Develop Team's avatar
oneM2MTester Develop Team committed
552
        	  	to_ 				:= p_locResourceAddress,
553
        	  	requestIdentifier	:= "m_updateLocationPolicy",
554
        	  	primitiveContent	:= {locationPolicy := m_contentUpdateLocationPolicy(p_accessControlPolicyIds, p_locationUpdatePeriod)}
555
			  };
556
        	
557
        	template (value) RequestPrimitive m_updateNodeBase modifies m_update := {
558
				requestIdentifier := "m_updateNode",
559 560 561 562
				primitiveContent:= {node := m_contentUpdateNode}
        	}
        	
        	template (value) RequestPrimitive m_updateRemoteCSEBase modifies m_update := {
563
			   requestIdentifier := "m_updateRemoteCSEBase",
564 565 566
        	   primitiveContent := {remoteCSE := m_contentUpdateRemoteCSE}
        	}
        	
567
			template (value) RequestPrimitive m_updateAEAnncBase modifies m_update:= {
568
				requestIdentifier := testcasename() & "-m_updateAEAnnc",
569
				resourceType := int10002,
570
				primitiveContent := {aEAnnc := m_contentUpdateAEAnnc}
571
			};
572 573 574
    	}//end group Update
    	
    	group Create {
575 576 577 578 579

			template (value) RequestPrimitive m_create := {
				operation := int1,
				to_ := "NotInitialized",
				from_ := "NotInitialized",
580
				requestIdentifier := testcasename() & "-m_create",
581 582
				resourceType := omit,
				primitiveContent := omit,
583
				roleIDs := omit,
584 585 586 587 588 589 590 591 592 593 594 595 596 597
				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,
598
				localTokenIDs := omit,
599
				tokenRequestIndicator := omit
600 601

			};
602
        	
603 604 605 606 607
			/**
			 * @desc Base Reception template for create operation
			 */
			template RequestPrimitive mw_create(template XSD.ID p_from := *, template XSD.ID p_to := ?) := {
				operation := int1,
608
				to_ := p_to,
609 610 611
				from_ := p_from,
				requestIdentifier := ?,
				resourceType := ?,
612
				primitiveContent := ?,
613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631
				roleIDs := *,
				originatingTimestamp := *,
				requestExpirationTimestamp := *,
				resultExpirationTimestamp := *,
				operationExecutionTime := *,
				responseType := *,
				resultPersistence := *,
				resultContent := *,
				eventCategory := *,
				deliveryAggregation := *,
				groupRequestIdentifier := *,
				filterCriteria := *,
				discoveryResultType := *,
				tokens := *,
				tokenIDs := *,
				localTokenIDs := *,
				tokenRequestIndicator := *
			}
			
632 633
			
			/**
634 635 636 637 638 639
			 * @desc Base CREATE request primitive for AEAnnc resource
			 * @param p_accessControlPolicyIds
			 * @param p_to
			 * @param p_from
			 * @param p_appId
			 * @param p_stemId
640
			 */
641
			template (value) 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 := "") modifies m_create:= {
642 643
				to_ := p_to,
				from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"
644
				requestIdentifier := testcasename() & "-m_createAEAnnc",
645
				resourceType := int10002,
646
				primitiveContent := {aEAnnc := m_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds, p_appId, valueof(p_to) & "/" & p_stemId)}
647 648
			};
			
649
			/**
650
			 * @desc Reception template for CREATE AEAnnc
651
			 */
652
			template RequestPrimitive mw_createAEAnnc(template (omit) XSD.ID p_from := omit, template (omit) XSD.ID p_to := omit, template (omit) AcpType p_accessControlPolicyIds := omit, template XSD.AnyURI p_link := ?) modifies mw_create := {
653
				resourceType := int10002,
654
				primitiveContent := {aEAnnc := mw_contentCreateAEAnnc({"Credential-ID:None"}, p_accessControlPolicyIds)}
655
			};
656

657
			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 := {
658
				from_ := p_from,//PX_AE_ID_STEM,//TODO We should use omit, "s", or "c"
659
				requestIdentifier := testcasename() & "-m_createAe",
660
				resourceType := int2,
661
				primitiveContent := {aE := m_contentCreateAe(p_accessControlPolicyIds,p_resourceName, p_appId, p_poaList)}
662
			};
663
        	
664 665 666
			/**
			 * @desc Reception template for AE registration
			 */
667
			template RequestPrimitive mw_createAe(template XSD.ID p_from := *, template XSD.ID p_to := ?, template AE_optional p_ae := ?) modifies mw_create := {
668
				resourceType := int2,
669
				primitiveContent := {aE := p_ae}
670 671
			};  
			        	
672
        	template (value) RequestPrimitive m_createAeAux(template (omit) AcpType p_accessControlPolicyIds := omit, in template (omit) PoaList p_poaList) modifies m_create := {
673
        		from_ := PX_AE1_ID_STEM,//TODO We should use omit, "s", or "c"
674
				requestIdentifier := testcasename() & "-m_createAe",
675
        		resourceType := int2,
676
        		primitiveContent := {aE := m_contentCreateAe(p_accessControlPolicyIds, c_aeAuxName, -, p_poaList)}
677
			};
678
        	
679 680 681
			/**
			 * @desc Base CREATE request primitive for AccessControlPolicy resource
			 */
682
			template (value) RequestPrimitive m_createAcpBase modifies m_create := {
683
				requestIdentifier := testcasename() & "-m_createAcp",
684
				resourceType := int1,
685
				primitiveContent := {accessControlPolicy := m_contentCreateAcp ()}
686 687
			};
				
688
        	template (value) RequestPrimitive m_createAcp(XSD.ID p_parentResourceAddress, in template (omit)  XSD.String p_name := c_defaultAccessControlPolicyResourceName, in template (value) ListOfURIs p_acor := PX_ACOR, in template (value) AccessControlOperations p_allowedOperations := int63) modifies m_create := {
689
        		to_ := p_parentResourceAddress,
690
				requestIdentifier := testcasename() & "-m_createAcp",
691
        		resourceType := int1,
692
        		primitiveContent := {accessControlPolicy := m_contentCreateAcp (p_name, p_acor, p_allowedOperations)}
693 694
        	};
        	
695 696 697 698 699 700 701
			/**
			 * @desc Reception template for CREATE AcpAnnc
			 */
			template RequestPrimitive mw_createAccessControlPolicyAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				to_ := p_to,
				from_ := p_from,
				resourceType := int10002,
702
				primitiveContent := {accessControlPolicyAnnc := mw_contentCreateAcpAnnc(-)}
703 704
			};
        	
705 706 707 708
       	
			/**
			 * @desc Base CREATE request primitive for AccessControlPolicy resource (AUX)
			 */
709
        	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 := {
710
				requestIdentifier := testcasename() & "-m_createAcpAux",
711
        		resourceType := int1,
712
        		primitiveContent := {accessControlPolicy := m_contentCreateAcp (p_acpName, p_acor, p_allowedOperations)}
713 714
        	};
        	
715
			/*template (value) RequestPrimitive m_createCSEBase (in ServiceSubscribedAppRule p_serviceSubscribedAppRule) modifies m_create := {
716
				from_ := PX_SUPER_USER,
717
				requestIdentifier := testcasename() & "-m_createCSE" & f_rnd(1, 1000000),
718
				resourceType := int1,//FIXME Is this the value for CSEBase? In any case, this template is not used at all
719
				primitiveContent := {cSEBase := m_contentCreateCSEBase (p_serviceSubscribedAppRule)}
720 721 722 723 724 725
			};*/
			
			/**
			 * @desc Base CREATE request primitive for CSEBase resource
			 */
			template (value) RequestPrimitive m_createCSEBaseBase modifies m_create := {
726
				requestIdentifier := testcasename() & "-m_createCSEBase",
727
				resourceType := int5,
728
				primitiveContent := {cSEBase := m_contentCreateCSEBase}
729 730
			};
        	
731 732 733 734
       	
			/**
			 * @desc Base CREATE request primitive for Container resource
			 */
735
			template (value) RequestPrimitive m_createContainerBase modifies m_create := {
736
				requestIdentifier := testcasename() & "-m_createContainer",
737
				resourceType := int3,
738
				primitiveContent := {container := m_contentCreateContainer}
739
			};
740
			
741 742 743
			/**
			 * @desc Base CREATE request primitive for remoteCSE resource
			 */
744
			template (value) RequestPrimitive m_createRemoteCSEBase(template (omit) AcpType p_accessControlPolicyIds := omit, template (omit) ResourceName p_resourceName :=  c_defaultRemoteCSEResourceName, in template (omit) XSD.AnyURI p_cSEBase := PX_CSE1_ID, in template (omit) XSD.ID p_cSE_ID := PX_CSE1_ID) modifies m_create := {
745
				requestIdentifier := testcasename() & "-m_createRemoteCSE",
746
				resourceType := int16,
747
				primitiveContent := {remoteCSE := m_contentCreateRemoteCSE(p_resourceName, p_accessControlPolicyIds,p_cSEBase, p_cSE_ID)}
748 749
			};
			
750
			/**
Antonio Castillo Verdugo's avatar
Antonio Castillo Verdugo committed
751 752 753 754 755
			 * @desc Reception template for CREATE RemoteCSE
			 */
			template RequestPrimitive mw_createRemoteCSE(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int16,
				primitiveContent := {remoteCSE := ?}	//{remoteCSE := m_contentCreateRemoteCSE(p_resourceName, p_accessControlPolicyIds,p_cSEBase, p_cSE_ID)}
756
			};			
Antonio Castillo Verdugo's avatar
Antonio Castillo Verdugo committed
757
			
758 759 760 761 762 763 764 765
			/**
			 * @desc CREATE request primitive for remoteCSE resource
			 */
			template RequestPrimitive mw_createRemoteCSEBase(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int16,
				primitiveContent := ?//{remoteCSE := m_contentCreateRemoteCSE(p_resourceName, p_accessControlPolicyIds,p_cSEBase, p_cSE_ID)}
			};
			
766 767 768 769
			/**
			 * @desc CREATE request primitive for Container resource wiht no resourceName provided
			 */
			template (value) RequestPrimitive m_createContainer_noResourceName modifies m_createContainerBase := {
770
				primitiveContent := {container := m_contentCreateContainer(omit)}
771
			};
772
	
773
    		template (value) RequestPrimitive m_createContainer(XSD.ID p_parentResourceAddress, in template (omit) XSD.String p_resourceName := c_defaultContainerResourceName) modifies m_create := {
774
    			to_ := p_parentResourceAddress,
775
				requestIdentifier := testcasename() & "-m_createContainer",
776
    			resourceType := int3,
777
    			primitiveContent := {container := m_contentCreateContainer(p_resourceName)}
778 779
    		};
        	
780 781 782 783 784
			/**
			 * @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,
785
				primitiveContent := {container := ?}
786 787
			};  
			
788
			/**
Antonio Castillo Verdugo's avatar
Antonio Castillo Verdugo committed
789
			 * @desc Base Reception template for CREATE ContainerAnnc
790
			 */
Antonio Castillo Verdugo's avatar
Antonio Castillo Verdugo committed
791
			template RequestPrimitive mw_createContainerAnncBase(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
792
				resourceType := int10003,
793
				primitiveContent := {containerAnnc := mw_contentCreateContainerAnncBase}
Antonio Castillo Verdugo's avatar
Antonio Castillo Verdugo committed
794
			};
795
			
796 797 798 799 800
			/**
			 * @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, 
801
				primitiveContent := {flexContainer := ?}
802 803 804 805 806 807 808
			};  
			
			/**
			 * @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
809
				primitiveContent := {genericInterworkingOperationInstance := ?}
810 811
			}; 
        	
812 813 814 815
			/**
			 * @desc Base CREATE request primitive for Content Instance resource
			 */
			template (value) RequestPrimitive m_createContentInstanceBase modifies m_create := {
816
				requestIdentifier := testcasename() & "-m_createContentInstance",
817
				resourceType := int4,
818
				primitiveContent := {contentInstance := m_contentCreateContentInstance}
819
			};
820 821 822 823 824
				
			/**
			 * @desc CREATE request primitive for Content Instance resource with no resourceName provided
			 */
			template (value) RequestPrimitive m_createContentInstance_noResourceName modifies m_createContentInstanceBase := {
825
				primitiveContent := {contentInstance := m_contentCreateContentInstance(omit)}
826
			};
827
    		
828
    		template (value) RequestPrimitive m_createContentInstance(XSD.ID p_parentResourceAddress, XSD.String p_primitiveContent) modifies m_create := {
829
    			to_ := p_parentResourceAddress,
830
    			from_ := "admin:admin",
831
				requestIdentifier := testcasename() & "-m_createContentInstance",
832
    			resourceType := int4,
833
    			primitiveContent := {contentInstance := m_contentCreateContentInstance(-, p_primitiveContent)}
834 835
    		};
    		
836 837 838 839 840
			/**
			 * @desc Reception template for CREATE ContentInstanceAnnc
			 */
			template RequestPrimitive mw_createContentInstanceAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int10014,
841
				primitiveContent := {contentInstanceAnnc := ?}
842
			};  
Antonio Castillo Verdugo's avatar
Antonio Castillo Verdugo committed
843
			
844 845 846 847 848 849 850 851
			/**
			 * @desc Reception template for CREATE ContentInstance
			 */
			template RequestPrimitive mw_createContentInstance(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int4,
				primitiveContent := {contentInstance := ?}
			}; 
			
Antonio Castillo Verdugo's avatar
Antonio Castillo Verdugo committed
852 853 854 855 856
			/**
			 * @desc Base Reception template for CREATE ContentInstanceAnnc
			 */
			template RequestPrimitive mw_createContentInstanceAnncBase(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int10014,
857
				primitiveContent := {contentInstanceAnnc := mw_contentCreateContentInstanceAnncBase}
Antonio Castillo Verdugo's avatar
Antonio Castillo Verdugo committed
858
			};  
859 860 861 862 863 864 865 866 867
			
			/**
			 * @desc Base CREATE request primitive for Delivery resource
			 */
			/*template (value) RequestPrimitive m_createDeliveryBase modifies m_create := {
				requestIdentifier := testcasename() & "-m_createDelivery" & f_rnd(1, 1000000),
				resourceType := int6,
				primitiveContent := {delivery := m_contentCreateDelivery()}
			};*/
868
        	    		
869 870 871 872
       	
			/**
			 * @desc Base CREATE request primitive for Group resource
			 */
873
			template (value) RequestPrimitive m_createGroupBase modifies m_create := {
874
				requestIdentifier := testcasename() & "-m_createGroup",
875
				resourceType := int9,
876
				primitiveContent := {group_ := m_contentCreateGroup (1, {"NotInitialized"}, omit, omit)}	//TODO: p_resourceId
877
			};
878
        	
879
        	template (value) RequestPrimitive m_createGroup(in template (value) XSD.NonNegativeInteger p_maxNrOfMembers,
880
															in template (value) ListOfURIs p_memberIds := {"NotInitialized"},
881
															in template (omit) AcpType p_accessControlPolicyIds,
882 883 884 885
															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 := {
886
				requestIdentifier := testcasename() & "-m_createGroup",
887
        		resourceType := int9,
888
        		primitiveContent := {group_ := m_contentCreateGroup (p_maxNrOfMembers, p_memberIds, p_accessControlPolicyIds, p_memberType, p_consistencyStrategy, p_membersAccessControlPolicyIDs, p_name)}	//TODO: p_resourceId
889 890
        	};
        	
891 892 893 894 895
			/**
			 * @desc Reception template for CREATE GroupAnnc
			 */
			template RequestPrimitive mw_createGroupAnnc(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int10009,
896
				primitiveContent := {groupAnnc := ?}
897
			};  
Antonio Castillo Verdugo's avatar
Antonio Castillo Verdugo committed
898 899 900 901 902 903
			
			/**
			 * @desc Base Reception template for CREATE GroupAnnc
			 */
			template RequestPrimitive mw_createGroupAnncBase(template XSD.ID p_from := *, template XSD.ID p_to := ?) modifies mw_create := {
				resourceType := int10009,
904
				primitiveContent := {groupAnnc := mw_contentCreateGroupAnncBase}
Antonio Castillo Verdugo's avatar
Antonio Castillo Verdugo committed
905
			};
906
        	
907
			/**
908 909 910
			 * @desc Base CREATE request primitive for MgmtCmd resource
			 */
			template (value) RequestPrimitive m_createMgmtCmdBase modifies m_create := {
911
				requestIdentifier := testcasename() & "-m_createMgmtCmd",
912
				resourceType := int12,
913
				primitiveContent := {mgmtResource := m_contentCreateMgmtCmd (-,-)}