27 karl 1.1 // Description: The Solution Exchange Standard (SES) defines an object model
28 // for the exchange of knowledge. The Service Incident Exchange
29 // Standard (SIS) adds a transaction model to SES.
30 // ===================================================================
31 // Author: DMTF Support Working Group
32 // Editor: John Chmaj, Microsoft Corp. - jchmaj@microsoft.com
33 // Editor: Dave Lawrence, Smart Technology Enablers - dlawrence@enablers.com
34 // 11/17/2000 Version 1.2j
35 // CR562: Changed property names using reserved words
36 // PRS_Resource.Type to ResourceType
37 // PRS_Attachment.Reference to AttachmentReference
38 // PRS_Attachment.Size to AttachmentSize
39 // PRS_Attachment.Object to AttachmentObject
40 // PRS_Statement.Role to StatementRole
41 // PRS_Statement.Operator to StatementOperator
42 // PRS_Revision.Date to RevisionDate
43 // PRS_Activity.New to NewKeys
44 // PRS_Transaction.State to TransactionState
45 // CR563: Added deprecated qualifier to deprecated properties
46 // PRS_Transaction.TransactionName
47 // PRS_Activity.ParameterList
48 karl 1.1 // Removed Description from PRS_Feature and PRS_Resource (already
49 // inherited from PRS_ExchangeElement)
50 // Added MinValue and MaxValue to the following:
51 // PRS_Problem.Likelihood
52 // PRS_Problem.Impact
53 // PRS_Resolution.Confidence
54 // PRS_Statement.Relevance
55 // Broke long lines over two lines
56 // 08/08/2000 Version 1.2i CR525
57 // Added missing Association qualifier to both PRS_ContactOrganization and
58 // PRS_ContactPerson.
59 // 05/02/2000 Version 1.2h
60 // Converted all CIM_Dependency children to use original property names:
61 // Antecedent and Dependent
62 // 03/07/2000 Version 1.2g
63 // Added Association qualifier to all association classes
64 // Added spaces to end of descriptions where they were missing
65 // Added Notification_Pending state to PRS_Transaction State property
66 // 02/03/2000 Version 1.2f
67 // Added definitions for PRS_SISServices method return values and
68 // CompletionStatus parameters as well as PRS_Transaction CompletionStatus
69 karl 1.1 // 01/26/2000 Version 1.2e
70 // Changed PRS_ExchangeElement description
71 // 01/21/2000 Version 1.2d
72 // Fixed spelling error in PRS_Category
73 // 01/20/2000 Version 1.2c
74 // Added ParameterList property back to PRS_Activity for backward
75 // compatibility
76 // Removed methods from PRS_Transaction and edited property descriptions
77 // Corrected data types of some properties to match specification (strings
78 // to uint8)
79 // Added some missing superclass references ( : CIM_Dependency)
80 // 01/17/2000 Version 1.2b
81 // Reformatted MOF and expanded description fields
82 // Incorporated SIS Transactions using CIM over HTTP
83 // Added properties and methods to PRS_Transaction
84 // Added DirtyFlag to PRS_ExchangeElement
85 // Added PRS_SISService
86 //
87 // ==================================================================
88
89
90 karl 1.1 // ==================================================================
91 // Pragmas
92 // ==================================================================
93
94 #pragma locale ("en_US")
95
96
97 // ==================================================================
98 // PRS_ExchangeElement
99 // ==================================================================
100
101 [
102 Abstract,
103 Description (
104 "PRS_ExchangeElement is an abstract base class for all classes "
105 "in the Solution and Service Incident object model. As an "
106 "abstract class it is never instantiated.\n"
107 "\n"
108 "PRS_ExchangeElement exists to provide a single anchor point "
109 "for associations that may be made to any Solution or Service "
110 "Incident object. For example, Administrative or Attachment "
111 karl 1.1 "instances may be associated with any object derived from "
112 "PRS_ExchangeElement. "
113 "To support this generic association capability, the PRS_AdminAssociation "
114 "and PRS_Attached associations both derive from the CIM_Dependency "
115 "association and override the Antecedent property of that class to be a "
116 "PRS_ExchangeElement REF. "
117 )
118 ]
119 class PRS_ExchangeElement : CIM_ManagedElement
120 {
121 [
122 Key,
123 Description (
124 "The PRSUniqueName property is a Globally Unique IDentifier "
125 "(GUID) also known as a Universally Unique IDentifier (UUID). "
126 "This property allows Solution and Service Incident objects "
127 "to be used by multiple Solutions or Service Incidents without "
128 "duplication. In addition, all Solution or Service Incidents "
129 "containing a unique object are updated when the object is "
130 "updated."
131 )
132 karl 1.1 ]
133 string PRSUniqueName;
134
135 [
136 ValueMap {"0", "1", "2", "3"},
137 Values {"Clean", "New", "Modified", "Deleted"},
138 Description(
139 "The DirtyFlag is used by the SISService Start Transaction "
140 "method to determine whether an ExchangeElement has "
141 "been created, modified or deleted since the last Transaction. "
142 "Any object not marked 'Clean' is included in the next "
143 "Transaction.\n"
144 "\n"
145 "It is the responsibility of the entity creating, modifying or "
146 "deleting the object derived from ExchangeElement to set this "
147 "property appropriately.\n"
148 "\n"
149 "This property value is set to 'Clean' by an invocation of the "
150 "Transaction Complete method with a Status parameter of zero (0)."
151 )
152 ]
153 karl 1.1 uint8 DirtyFlag;
154 };
155
156
157 // =================================================================
158 // PRS_Solution
159 // ==================================================================
160
161 [
162 Description (
163 "PRS_Solution is the root class of a set of associated classes "
164 "used to describe a single Solution. If a Solution is associated "
165 "with multiple Problems or Resolutions, all of the Problems "
166 "described are related to all of the Resolutions described. The "
167 "reverse is also true. All of the Resolutions described are "
168 "related to all of the Problems described in the Solution."
169 "\n"
170 "\n"
171 "PRS_Solution is directly associated to one or more of the "
172 "following classes:\n"
173 "\n"
174 karl 1.1 " PRS_Reference\n"
175 " PRS_Problem\n"
176 " PRS_Resolution\n"
177 "\n"
178 )
179 ]
180 class PRS_Solution : PRS_ExchangeElement
181 {
182 [
183 Description ("The Solution title.")
184 ]
185 string Title;
186
187 [
188 Description ("A brief description of the Solution.")
189 ]
190 string SolutionAbstract;
191
192 [
193 ValueMap {"0", "1", "2", "254", "255"},
194 Values {"Reference", "Diagnostic", "How To", "Other", "Unknown"},
195 karl 1.1 Description (
196 "The SolutionType suggests the type of knowledge contained "
197 "in the Solution. Depending on the type, the Solution may or "
198 "may not include particular objects. For example, a "
199 "'Reference' Solution describes non-diagnostic technical or "
200 "general information using PRS_Statement objects. A 'Diagnostic' "
201 "Solution includes one or more PRS_Problem and PRS_Resolution objects. "
202 "A 'How To' Solution describes how to solve a particular Problem "
203 "described by a PRS_Problem in a series of sequential steps within "
204 "a PRS_Resolution."
205 )
206 ]
207 uint8 SolutionType;
208 };
209
210
211 // ==================================================================
212 // PRS_SolutionElement
213 // ==================================================================
214
215 [
216 karl 1.1 Abstract,
217 Description (
218 "PRS_SolutionElement is an abstract base class for non-Category objects "
219 "directly associated with a Solution. This includes:\n"
220 "\n"
221 " PRS_Reference\n"
222 " PRS_Problem\n"
223 " PRS_Resolution\n"
224 "\n"
225 "PRS_SolutionElement provides a common reference for these "
226 "objects to be associated with PRS_Expression objects through "
227 "the SolutionExpression association.\n"
228 "\n"
229 "In addition, all of the derived objects may be retrieved with a "
230 "single query for the common super-class."
231 )
232 ]
233 class PRS_SolutionElement : PRS_ExchangeElement
234 {
235 };
236
237 karl 1.1
238 // ===================================================================
239 // PRS_Reference
240 // ===================================================================
241
242 [
243 Description (
244 "PRS_Reference is a placeholder to support links between "
245 "PRS_Expression objects and a PRS_Solution. It does not "
246 "have any properties. A 'Reference' "
247 "Solution uses PRS_Statement objects to describe general, "
248 "non-diagnostic knowledge and may not include any PRS_Problem "
249 "and PRS_Resolution instances. "
250 )
251 ]
252 class PRS_Reference : PRS_SolutionElement
253 {
254 };
255
256
257 // ===================================================================
258 karl 1.1 // PRS_Problem
259 // ===================================================================
260
261 [
262 Description (
263 "PRS_Problem is the root object of a set of associated objects "
264 "that describe a Problem. One or more Problems may be associated "
265 "with a Solution.\n"
266 "\n"
267 "The Problem is described by PRS_Statement and PRS_Product instances "
268 "indirectly associated to the PRS_Problem through a PRS_Expression."
269 )
270 ]
271 class PRS_Problem : PRS_SolutionElement
272 {
273 [
274 Description (
275 "The Likelihood describes the potential for the Problem to occur. "
276 "The value of this property shall be an integer value in the range of "
277 "0 to 100, inclusive."
278 ),
279 karl 1.1 MinValue(0), MaxValue(100)
280 ]
281 uint16 Likelihood;
282
283 [
284 Description (
285 "The Impact describes the severity of the problem. "
286 "The value of this property shall be an integer value in the range of "
287 "0 to 100, inclusive."
288 ),
289 MinValue(0), MaxValue(100)
290 ]
291 uint16 Impact;
292 };
293
294
295 // ===================================================================
296 // PRS_Resolution
297 // ===================================================================
298
299 [
300 karl 1.1 Description (
301 "PRS_Resolution is the root object of a set of associated objects "
302 "that describe a the resolution to a Problem. One or more Resolutions "
303 "may be associated with a Solution.\n"
304 "\n"
305 "The Resolution is described by PRS_Statement and PRS_Product instances "
306 "indirectly associated to the PRS_Resolution through a PRS_Expression."
307 )
308 ]
309 class PRS_Resolution : PRS_SolutionElement
310 {
311
312 [
313 Description (
314 "The Confidence describes the potential for the Resolution to correct "
315 "the Problem or Problems associated with the PRS_Solution. "
316 "The value of this property shall be an integer value in the range of "
317 "0 to 100, inclusive."
318 ),
319 MinValue(0), MaxValue(100)
320 ]
321 karl 1.1 uint16 Confidence;
322 };
323
324
325 // ===================================================================
326 // PRS_SolutionHasElement
327 // ===================================================================
328
329 [
330 Association,
331 Abstract,
332 Aggregation,
333 Description (
334 "PRS_SolutionHasElement is an abstract base class for associating "
335 "PRS_Solution with objects derived from PRS_SolutionElement. This "
336 "association class allows all PRS_Reference, PRS_Problem and "
337 "PRS_Resolution objects to be retrieved with a single query."
338 )
339 ]
340 class PRS_SolutionHasElement : CIM_Dependency
341 {
342 karl 1.1 [
343 Override ("Antecedent"),
344 Aggregate,
345 Description ("The PRS_Solution root object of the Solution."),
346 Min (1)
347 ]
348 PRS_Solution REF Antecedent;
349
350 [
351 Override ("Dependent"),
352 Description (
353 "The PRS_Reference, PRS_Problem or PRS_Resolution aggregated "
354 "into the Solution by this association."
355 )
356 ]
357 PRS_SolutionElement REF Dependent;
358 };
359
360
361 // ===================================================================
362 // PRS_SolutionReference
363 karl 1.1 // ===================================================================
364
365 [
366 Association,
367 Aggregation,
368 Description ("PRS_SolutionReference aggregates a Reference into a Solution.")
369 ]
370 class PRS_SolutionReference : PRS_SolutionHasElement
371 {
372 [
373 Override ("Dependent"),
374 Description ("The PRS_Reference aggregated into the Solution.")
375 ]
376 PRS_Reference REF Dependent;
377 };
378
379
380 // ===================================================================
381 // PRS_SolutionProblem
382 // ===================================================================
383
384 karl 1.1 [
385 Association,
386 Aggregation,
387 Description ("PRS_SolutionProblem aggregates a Problem into a Solution.")
388 ]
389 class PRS_SolutionProblem : PRS_SolutionHasElement
390 {
391 [
392 Override ("Dependent"),
393 Description ("The PRS_Problem aggregated into the Solution.")
394 ]
395 PRS_Problem REF Dependent;
396 };
397
398
399 // ===================================================================
400 // PRS_SolutionResolution
401 // ===================================================================
402
403 [
404 Association,
405 karl 1.1 Aggregation,
406 Description ("PRS_SolutionResolution aggregates a Resolution into a Solution.")
407 ]
408 class PRS_SolutionResolution : PRS_SolutionHasElement
409 {
410 [
411 Override ("Dependent"),
412 Description ("The PRS_Solution aggregated into the Solution.")
413 ]
414 PRS_Resolution REF Dependent;
415 };
416
417
418 // =================================================================
419 // PRS_Category
420 // ==================================================================
421
422 [
423 Description (
424 "PRS_Category is used to classify the components of a "
425 "Solution. Hierarchical classifications are created by associating "
426 karl 1.1 "PRS_CategoryParentChild with multiple PRS_Category instances."
427 )
428 ]
429 class PRS_Category : PRS_ExchangeElement
430 {
431 [
432 Description (
433 "The specific value for the category. For example, 'HP Laserjet' "
434 "would be a value for a category containing printer names. "
435 )
436 ]
437 string CategoryContents;
438
439 [
440 Description (
441 "The type of category. Used to give additional semantics to the "
442 "category. For example, a Category of Type 'Printers' would "
443 "qualify the list of category values for a list of printers.\n"
444 "\n"
445 "Note: the relationship of Category Type to Category Value "
446 "expresses no intrinsic hierarchy. If a tree of relationships "
447 karl 1.1 "exists to define categories and sub-categories, this should be "
448 "defined using CategoryParentChild associations."
449 )
450 ]
451 string CategoryType;
452 };
453
454
455 // ===================================================================
456 // PRS_SolutionCategory
457 // ===================================================================
458
459 [
460 Association,
461 Description (
462 "PRS_SolutionCategory associates PRS_Solution with a PRS_Category "
463 "for classification purposes."
464 )
465 ]
466 class PRS_SolutionCategory : CIM_Dependency
467 {
468 karl 1.1 [
469 Override ("Antecedent"),
470 Min(1),
471 Description ("The PRS_Solution being classified.")
472 ]
473 PRS_Solution REF Antecedent;
474
475 [
476 Override ("Dependent"),
477 Description (
478 "The specific PRS_Category being used to classify the Solution."
479 )
480 ]
481 PRS_Category REF Dependent;
482 };
483
484
485 // ===================================================================
486 // PRS_Categorization
487 // ===================================================================
488
489 karl 1.1 [
490 Association,
491 Description (
492 "PRS_Categorization associates PRS_Reference, PRS_Problem "
493 "or PRS_Resolution with a PRS_Category for classification purposes. "
494 "For example, a Category named 'Printing Issues' can be defined "
495 "for a Problem using the Categorization association between a "
496 "PRS_Problem and a PRS_Category. "
497 )
498 ]
499 class PRS_Categorization : CIM_Dependency
500 {
501 [
502 Override ("Antecedent"),
503 Description ("The PRS_Category used for classification.")
504 ]
505 PRS_Category REF Antecedent;
506
507 [
508 Override ("Dependent"),
509 Min(1),
510 karl 1.1 Description (
511 "The specific PRS_Reference, PRS_Problem or PRS_Resolution "
512 "classified by this association."
513 )
514 ]
515 PRS_SolutionElement REF Dependent;
516 };
517
518
519 // ===================================================================
520 // PRS_CategoryParentChild
521 // ===================================================================
522
523 [
524 Association,
525 Description("PRS_CategoryParentChild is used to define classification hierarchies.")
526 ]
527 class PRS_CategoryParentChild : CIM_Dependency
528 {
529 [
530 Override ("Antecedent"),
531 karl 1.1 Description ("The parent PRS_Category used for classification.")
532 ]
533 PRS_Category REF Antecedent;
534
535 [
536 Override ("Dependent"),
537 Description (
538 "The child PRS_Category used for classification."
539 )
540 ]
541 PRS_Category REF Dependent;
542 };
543
544
545 // =================================================================
546 // PRS_ExpressionElement
547 // ==================================================================
548
549 [
550 Abstract,
551 Description (
552 karl 1.1 "PRS_ExpressionElement is an abstract base class for PRS_Products "
553 "and PRS_Statements. It provides a common association point for objects "
554 "associated with PRS_Expressions."
555 )
556 ]
557 class PRS_ExpressionElement : PRS_ExchangeElement
558 {
559 };
560
561
562 // =================================================================
563 // PRS_Expression
564 // ==================================================================
565
566 [
567 Description (
568 "PRS_Expression defines a specific relationship between "
569 "PRS_ExpressionElements associated with PRS_SolutionElements. "
570 )
571 ]
572 class PRS_Expression : PRS_ExpressionElement
573 karl 1.1 {
574 [
575 Description (
576 "The operator to be used with the associated PRS_ExpressionElements. "
577 "The 'AND', 'OR' and 'NOT' operators are the only operators "
578 "currently defined. They must be defined as an uppercase string."
579 )
580 ]
581 string Relation;
582 };
583
584
585 // =================================================================
586 // PRS_Product
587 // ==================================================================
588
589 [
590 Description (
591 "PRS_Product is used to describe a single product to associate with a "
592 "PRS_Expression."
593 )
594 karl 1.1 ]
595 class PRS_Product : PRS_ExpressionElement
596 {
597 [
598 Description ("The vendor of the product.")
599 ]
600 string Vendor;
601
602 [
603 Description ("The make and or model of the product.")
604 ]
605 string ProductName;
606
607 [
608 Description ("The version of the product.")
609 ]
610 string Version;
611
612 [
613 Description (
614 "The order of relevance of this product to an associated "
615 karl 1.1 "PRS_SolutionElement. These include PRS_Reference, PRS_Problem "
616 "or PRS_Resolution."
617 )
618 ]
619 string Order;
620 };
621
622
623 // =================================================================
624 // PRS_Statement
625 // ==================================================================
626
627 [
628 Description (
629 "PRS_Statement contains the text describing a problem, any "
630 "relevant background information, and its resolution. Statements "
631 "are units of text ranging from brief sentences or phrases to "
632 "paragraphs or pages. There is no limit to the number of "
633 "PRS_Statements within a Solution, as long as they support the "
634 "intent and focus of their root class. Root classes include: "
635 "PRS_Reference, PRS_Problem or PRS_Resolution./n"
636 karl 1.1 "\n"
637 "PRS_Statements may be grouped together to build compound "
638 "'sentences'. For example,/n "
639 " StatementA = Printer output is blotchy./n "
640 " StatementB = Print jobs per day are less than 50./n "
641 "ExpressionA = StatementA AND StatementB."
642 )
643 ]
644 class PRS_Statement : PRS_ExpressionElement
645 {
646 [
647 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11",
648 "254", "255"
649 },
650 Values {"Description", "Symptom", "Error_Message", "Objective", "Evidence",
651 "Cause", "Work_Around", "Fix", "Answer", "Keyword", "Changes", "Title",
652 "Other", "Unknown"
653 },
654 Description (
655 "StatementRole describes how the PRS_Statement relates to the larger "
656 "context. "
657 karl 1.1 "For example, is the PRS_Statement describing a Fix or a Symptom? "
658 "'Description' is generic text without a specific diagnostic "
659 "application. "
660 "'Symptom' describes initial observable incident or behavior that "
661 "the user reports. "
662 "'Error_Message' is a specific type of symptom that the user "
663 "reports, describing a specific error condition reported. "
664 "'Objective' is what the user wants to accomplish, often "
665 "expressed as a positive condition. FOr example, how to print "
666 "on a network. "
667 "'Evidence' is information that is collected to diagnose the "
668 "problem after the symptom is reported. "
669 "'Cause' is a description of the underlying facts or factors "
670 "that engender or relate this behavior. "
671 "'Work_around' is information that lets the user work, but does "
672 "not correct the problem completely. "
673 "'Fix' is information that fixes the problem completely. "
674 "'Answer' is the information given to the user such as steps to "
675 "perform, wording to support their environment and understanding. "
676 "'Keyword' is a specific classification using defined words or "
677 "phrases. "
678 karl 1.1 "'Changes' describes a recent change in the environment which "
679 "could affect the problem or resolution. "
680 "'Title is the title applying to associated PRS_Statements. "
681 "Usually associated via an 'and' expression. "
682 )
683 ]
684 uint8 StatementRole;
685
686 [
687 Description ("The descriptive text used for the PRS_Statement.")
688 ]
689 string Text;
690
691 [
692 Description (
693 "When the PRS_Adminstrative object indicates Level 2 compliance, "
694 "StatementOperator describes the relationship between an associated "
695 "PRS_Feature and the FeatureValue property. This property is "
696 "ignored if there is no PRS_Feature associated with this "
697 "PRS_Statement."
698 )
699 karl 1.1 ]
700 string StatementOperator;
701
702 [
703 Description (
704 "When the PRS_Adminstrative object indicates Level 2 compliance, "
705 "FeatureValue is the specific value selected from the associated "
706 "PRS_Feature. This property is ignored if there is no PRS_Feature "
707 "associated with this PRS_Statement."
708 )
709 ]
710 string FeatureValue;
711
712 [
713 Description (
714 "Order is used to sequence PRS_Statements associated "
715 "with a single PRS_Expression to allow a Consumer to process "
716 "the information in the order desired by the Producer."
717 )
718 ]
719 string Order;
720 karl 1.1
721 [
722 Description (
723 "Importance of this Statement. "
724 "The value of this property shall be an integer value in the "
725 "range of 0 to 100, inclusive."
726 )
727 ]
728 uint16 Relevance;
729 };
730
731 // =================================================================
732 // PRS_Feature
733 // ==================================================================
734
735 [
736 Description (
737 "PRS_Feature is used for structured diagnostic data, including "
738 "specific data values like steps or conditions. For example, "
739 "consider a PRS_Statement with a Text property value of: \n"
740 "\n"
741 karl 1.1 " Print jobs per day are less than 50\n"
742 "\n"
743 "This could be described using a PRS_Feature as follows:\n"
744 "\n"
745 " Description: 'Print jobs per day' \n"
746 " Prompt: 'How many print jobs per day?' \n"
747 " ValidValues: '10' '50' '100' \n"
748 " DataType: 'Integer' \n"
749 "\n"
750 "and the associated PRS_Statement would contain:\n"
751 "\n"
752 " Operator: '<' \n"
753 " FeatureValue: '50' \n"
754 )
755 ]
756 class PRS_Feature : PRS_ExchangeElement
757 {
758 [
759 Description ("Prompt presented through user interface.")
760 ]
761 string Prompt;
762 karl 1.1
763 [
764 Description ("Valid values for this PRS_Feature.")
765 ]
766 string ValidValues;
767
768 [
769 ValueMap {"0", "1", "2", "3", "4", "5", "254", "255"},
770 Values {
771 "String", "Integer", "Float", "Date/Time", "Boolean",
772 "Binary", "Other", "Unknown"
773 },
774 Description ("Data Type used for PRS_Statement FeatureValue property")
775 ]
776 uint8 DataType;
777 };
778
779
780 // =================================================================
781 // PRS_Resource
782 // ==================================================================
783 karl 1.1
784 [
785 Description (
786 "Each PRS_Resolution may have an associated cost of implementation. "
787 "This cost may have several components such as time, material "
788 "costs, labor cost, etc. To capture these costs, a PRS_Resouce is "
789 "associated with a PRS_Resolution. For Service Incidents, one or "
790 "more PRS_Resource objects may be associated with an Activity."
791 )
792 ]
793 class PRS_Resource : PRS_ExchangeElement
794 {
795 string ResourceType;
796
797 [
798 Description ("Number of units of resource used.")
799 ]
800 uint16 Quantity;
801
802 [
803 Description ("Unit of measure for this resource.")
804 karl 1.1 ]
805 string Units;
806 };
807
808
809 // ===================================================================
810 // PRS_ExpressionLink
811 // ===================================================================
812
813 [
814 Association,
815 Aggregation,
816 Description (
817 "Associates PRS_Expression with PRS_ExpressionElements "
818 "such as PRS_Expression, PRS_Product, and PRS_Statement."
819 )
820 ]
821 class PRS_ExpressionLink : CIM_Dependency
822 {
823 [
824 Aggregate,
825 karl 1.1 Override ("Antecedent"),
826 Min(1),
827 Description ("The parent PRS_Expression.")
828 ]
829 PRS_Expression REF Antecedent;
830
831 [
832 Override ("Dependent"),
833 Min(1),
834 Description (
835 "The child PRS_ExpressionElement. Either PRS_Expression, "
836 "PRS_Product or PRS_Statement."
837 )
838 ]
839 PRS_ExpressionElement REF Dependent;
840 };
841
842
843 // ===================================================================
844 // PRS_ProductParentChild
845 // ===================================================================
846 karl 1.1
847 [
848 Association,
849 Aggregation,
850 Description (
851 "Products may exist in a hierarchy of relationships with related "
852 "Products. If a Producer deems these hierarchy relationships "
853 "are relevant to the current Problem or Resolution, then the "
854 "position of the Product in a hierarchy can be implied using one "
855 "of two types of relationships: 'is a' and 'has a'. An 'is a' "
856 "relationship implies a classification, such as versioning or typing. "
857 "A 'has a' relationship implies that one product contains another. "
858 "The PRS_ProductParentChild association is used to imply an 'is a' "
859 "hierarchy. Use the ProductComponent association to imply 'has a' "
860 "relationships.")
861 ]
862 class PRS_ProductParentChild : CIM_Dependency
863 {
864 [
865 Aggregate,
866 Override ("Antecedent"),
867 karl 1.1 Description ("The parent PRS_Product.")
868 ]
869 PRS_Product REF Antecedent;
870
871 [
872 Override ("Dependent"),
873 Description ("The child PRS_Product.")
874 ]
875 PRS_Product REF Dependent;
876 };
877
878
879 // ===================================================================
880 // PRS_ProductComponent
881 // ===================================================================
882
883 [
884 Association,
885 Aggregation,
886 Description (
887 "PRS_ProductComponent is used to describe 'has a' relationships "
888 karl 1.1 "between Products and their components parts. See "
889 "PRS_ProductParentChild for 'is a' relationships."
890 )
891 ]
892 class PRS_ProductComponent : CIM_Dependency
893 {
894 [
895 Aggregate,
896 Override ("Antecedent"),
897 Description ("The PRS_Product which contains the component.")
898 ]
899 PRS_Product REF Antecedent;
900
901 [
902 Override ("Dependent"),
903 Description ("The component PRS_Product.")
904 ]
905 PRS_Product REF Dependent;
906 };
907
908
909 karl 1.1 // ===================================================================
910 // PRS_ProductAsset
911 // ===================================================================
912
913 [
914 Association,
915 Description (
916 "PRS_ProductAsset is used to provide specific information about "
917 "a PRS_Product. PRS_ProductAsset associates this information to a "
918 "PRS_Product using one or more Statements associated to a "
919 "PRS_Expression."
920 )
921 ]
922 class PRS_ProductAsset : CIM_Dependency
923 {
924 [
925 Override ("Antecedent"),
926 Description ("The product.")
927 ]
928 PRS_Product REF Antecedent;
929
930 karl 1.1 [
931 Override ("Dependent"),
932 Description ("The expression.")
933 ]
934 PRS_Expression REF Dependent;
935 };
936
937
938 // ===================================================================
939 // PRS_StatementFeature
940 // ===================================================================
941
942 [
943 Association,
944 Description ("Associates PRS_Statement with PRS_Feature.")
945 ]
946 class PRS_StatementFeature : CIM_Dependency
947 {
948 [
949 Override ("Antecedent"),
950 Description ("The PRS_Statement.")
951 karl 1.1 ]
952 PRS_Statement REF Antecedent;
953
954 [
955 Override ("Dependent"),
956 Description ("The PRS_Feature.")
957 ]
958 PRS_Feature REF Dependent;
959 };
960
961
962 // ===================================================================
963 // PRS_FeatureResource
964 // ===================================================================
965
966 [
967 Association,
968 Description (
969 "Associates PRS_Feature with PRS_Resource. "
970 "Used to track specific labor and costs associated with specific "
971 "tasks defined in Feature objects. "
972 karl 1.1 )
973 ]
974 class PRS_FeatureResource : CIM_Dependency
975 {
976 [
977 Override ("Antecedent"),
978 Description ("The PRS_Feature.")
979 ]
980 PRS_Feature REF Antecedent;
981
982 [
983 Override ("Dependent"),
984 Description ("The PRS_Resource.")
985 ]
986 PRS_Resource REF Dependent;
987 };
988
989
990 // ===================================================================
991 // PRS_ResolutionResource
992 // ===================================================================
993 karl 1.1
994 [
995 Association,
996 Description ("Associates PRS_Resolution with PRS_Resource")
997 ]
998 class PRS_ResolutionResource : CIM_Dependency
999 {
1000 [
1001 Override ("Antecedent"),
1002 Description ("The PRS_Resource.")
1003 ]
1004 PRS_Resource REF Antecedent;
1005
1006 [
1007 Override ("Dependent"),
1008 Description ("The PRS_Resolution.")
1009 ]
1010 PRS_Resolution REF Dependent;
1011 };
1012
1013
1014 karl 1.1 // ===================================================================
1015 // PRS_Solution Expression
1016 // ===================================================================
1017
1018 [
1019 Association,
1020 Aggregation,
1021 Description (
1022 "Associates PRS_SolutionElements (PRS_Reference, PRS_Problem "
1023 "or PRS_Resolution) with PRS_Expression."
1024 )
1025 ]
1026 class PRS_SolutionExpression : CIM_Dependency
1027 {
1028 [
1029 Aggregate,
1030 Min (1),
1031 Override ("Antecedent"),
1032 Description ("The PRS_SolutionElement.")
1033 ]
1034 PRS_SolutionElement REF Antecedent;
1035 karl 1.1
1036 [
1037 Min (1),
1038 Override ("Dependent"),
1039 Description ("The PRS_Expression.")
1040 ]
1041 PRS_Expression REF Dependent;
1042 };
1043
1044
1045 // ===================================================================
1046 // PRS_Administrative
1047 // ===================================================================
1048
1049 [
1050 Description (
1051 "PRS_Administrative defines administrative information about "
1052 "associated objects. There must be at least one PRS_Administrative "
1053 "instance associated with a PRS_Solution. Administrative "
1054 "information is inherited from a parent object. \n"
1055 "\n"
1056 karl 1.1 "If the administrative information among objects within a Solution "
1057 "is not the same, additional PRS_Administrative instances may be "
1058 "associated with other objects within the Solution. All instances under "
1059 "a specific parent inherit their administrative information unless "
1060 "there is an PRS_Administrative instance associated with an instance.\n"
1061 "\n"
1062 "For example, if there is a PRS_Administrative instance associated "
1063 "with a PRS_Problem instance, all of the PRS_Statement and PRS_Product "
1064 "instances within the Problem use the same Administrative information "
1065 "as the PRS_Problem instance."
1066 )
1067 ]
1068 class PRS_Administrative : PRS_ExchangeElement
1069 {
1070 [
1071 Values {"0", "1", "2"},
1072 Description (
1073 "Level 0 means all information within a Reference, Problem or "
1074 "Resolution is conveyed by a single PRS_Statement.\n"
1075 "\n"
1076 "Level 1 means there may be multiple PRS_Statement instances "
1077 karl 1.1 "within a Reference, Problem or Resolution.\n"
1078 "\n"
1079 "Level 2 means that a PRS_Statement may be associated with "
1080 "a PRS_Feature instance within a Reference, Problem or Resolution."
1081 )
1082 ]
1083 uint16 ComplianceLevel;
1084
1085 [
1086 ValueMap {"0", "1", "2", "254", "255"},
1087 Values {"Draft", "Reviewed", "Published", "Other", "Unknown"},
1088 Description (
1089 "Editorial status of the document. "
1090 "If 'Draft', information is complete, but unedited. "
1091 "If 'Reviewed', an editorial review has been completed. "
1092 "If 'Published', information has been reviewed and approved "
1093 "for distribution."
1094 )
1095 ]
1096 uint8 DocumentStatus;
1097
1098 karl 1.1 [
1099 ValueMap {"0", "1", "2", "3", "254", "255"},
1100 Values {"Proprietary", "Internal", "Partner", "Public", "Other", "Unknown"},
1101 Description (
1102 "Intended distribution audience for the associated information. "
1103 "If 'Proprietary', information contains proprietary information "
1104 "and is not to be released externally. "
1105 "If 'Internal', information is for internal use only. "
1106 "If 'Partner', information is only available to contracted "
1107 "partners. "
1108 "If 'Public', information is available to anyone."
1109 )
1110 ]
1111 uint8 Distribution;
1112
1113 [
1114 Description ("Language used in the associated information.")
1115 ]
1116 string Language;
1117
1118 [
1119 karl 1.1 Description ("Copyright for the associated information.")
1120 ]
1121 string Copyright;
1122
1123 [
1124 Description ("Disclaimers about the associated information.")
1125 ]
1126 string Disclaimer;
1127
1128 [
1129 Description ("Usage rights for the associated information.")
1130 ]
1131 string Rights;
1132 };
1133
1134
1135 // ===================================================================
1136 // PRS_AdminAssociation
1137 // ===================================================================
1138
1139 [
1140 karl 1.1 Association,
1141 Description (
1142 "Associates PRS_Administrative with any object derived from "
1143 "PRS_ExchangeElement."
1144 )
1145 ]
1146 class PRS_AdminAssociation : CIM_Dependency
1147 {
1148
1149 [
1150 Min (1),
1151 Override ("Antecedent"),
1152 Description ("The PRS_ExchangeElement.")
1153 ]
1154 PRS_ExchangeElement REF Antecedent;
1155
1156 [
1157 Override ("Dependent"),
1158 Description ("The PRS_Administrative.")
1159 ]
1160 PRS_Administrative REF Dependent;
1161 karl 1.1 };
1162
1163
1164 // ===================================================================
1165 // PRS_Revision
1166 // ===================================================================
1167
1168 [
1169 Description ("PRS_Revision records changes to the content.")
1170 ]
1171 class PRS_Revision : PRS_ExchangeElement
1172 {
1173
1174 [
1175 Description ("The date of this revision.")
1176 ]
1177 datetime RevisionDate;
1178
1179 [
1180 ValueMap {"0", "1", "2", "254", "255"},
1181 Values {"Create", "Update", "Delete", "Other", "Unknown"},
1182 karl 1.1 Description ("The name of the specific revision being made.")
1183 ]
1184 uint8 ActivityName;
1185
1186 [
1187 ValueMap {"0", "1", "2", "254", "255"},
1188 Values {"Technical", "Editorial", "Administrative", "Other", "Unknown"},
1189 Description (
1190 "Type of revision activity. 'Technical' refers to a change "
1191 "in content. 'Editorial' refers to a change in language or style. "
1192 "'Administrative' refers to information about the object."
1193 )
1194 ]
1195 uint8 ActivityType;
1196
1197 [
1198 ValueMap {"0", "1", "2", "3", "254", "255"},
1199 Values {"Open", "Not Reviewed", "Reviewed", "Approved", "Other", "Unknown"},
1200 Description (
1201 "The current state of technical review. "
1202 "'Open' means created but not necessarily completed or resolved. "
1203 karl 1.1 "'Not Reviewed' means contents have to be reviewed for "
1204 "accuracy and consistency with other content. "
1205 "'Reviewed' means review has been completed. "
1206 "'Approved' means formally approval to certify the solution for "
1207 "the specific status the contents have at this time."
1208 )
1209 ]
1210 uint8 TechnicalStatus;
1211
1212 [
1213 ValueMap {"0", "1", "2", "3", "254", "255"},
1214 Values {"In_Progress", "Draft", "Reviewed", "Published", "Other", "Unknown"},
1215 Description (
1216 "The current state of editorial review. "
1217 "'In Progress' means the content is in the process of being developed. "
1218 "'Draft' means the content is complete but unedited. "
1219 "'Reviewed' means the review has been completed. "
1220 "'Published' means the contents have been released. "
1221 )
1222 ]
1223 uint8 EditorialStatus;
1224 karl 1.1
1225 [
1226 Description ("Text description of what was done in this revision.")
1227 ]
1228 string Description;
1229 };
1230
1231
1232 // ===================================================================
1233 // PRS_AdministrativeRevision
1234 // ===================================================================
1235
1236 [
1237 Association,
1238 Aggregation,
1239 Description ("Associates PRS_Administrative with PRS_Revision.")
1240 ]
1241 class PRS_AdministrativeRevision : CIM_Dependency
1242 {
1243 [
1244 Aggregate,
1245 karl 1.1 Override ("Antecedent"),
1246 Description ("The PRS_Administrative."),
1247 Min(1), Max(1)
1248 ]
1249 PRS_Administrative REF Antecedent;
1250
1251 [
1252 Override ("Dependent"),
1253 Description ("The PRS_Revision.")
1254 ]
1255 PRS_Revision REF Dependent;
1256 };
1257
1258
1259 // ===================================================================
1260 // PRS_Contact
1261 // ===================================================================
1262
1263 [
1264 Description (
1265 "PRS_Contact is used to anchor associations to PRS_Person and "
1266 karl 1.1 "PRS_Orgnaization. PRS_Contact is also used to anchor associations "
1267 "to PRS_Revision and PRS_Resolution as well as the "
1268 "PRS_ServiceIncident. "
1269 )
1270 ]
1271 class PRS_Contact : PRS_ExchangeElement
1272 {
1273 };
1274
1275
1276 // ===================================================================
1277 // PRS_ContactItem
1278 // ===================================================================
1279
1280 [
1281 Abstract,
1282 Description (
1283 "PRS_ContactItem is the abstract root class for PRS_Person and "
1284 "PRS_Organization. It provides a common anchor point for the "
1285 "PRS_ContactContactItem association. "
1286 )
1287 karl 1.1 ]
1288 class PRS_ContactItem : PRS_ExchangeElement
1289 {
1290 };
1291
1292
1293 // ===================================================================
1294 // PRS_AdministrativeContact
1295 // ===================================================================
1296
1297 [
1298 Association,
1299 Aggregation,
1300 Description ("Associates PRS_Administrative and PRS_Contact")
1301 ]
1302 class PRS_AdministrativeContact : CIM_Dependency
1303 {
1304 [
1305 Aggregate,
1306 Override ("Antecedent"),
1307 Description ("The PRS_Administrative."),
1308 karl 1.1 Min(1)
1309 ]
1310 PRS_Administrative REF Antecedent;
1311
1312 [
1313 Override ("Dependent"),
1314 Description ("The PRS_Contact."),
1315 Min(1)
1316 ]
1317 PRS_Contact REF Dependent;
1318 };
1319
1320
1321 // ===================================================================
1322 // PRS_RevisionContact
1323 // ===================================================================
1324
1325 [
1326 Association,
1327 Aggregation,
1328 Description ("Associates PRS_Revision and PRS_Contact")
1329 karl 1.1 ]
1330 class PRS_RevisionContact : CIM_Dependency
1331 {
1332 [
1333 Aggregate,
1334 Override ("Antecedent"),
1335 Description ("The PRS_Revision.")
1336 ]
1337 PRS_Revision REF Antecedent;
1338
1339 [
1340 Min(1),
1341 Override ("Dependent"),
1342 Description ("The PRS_Contact.")
1343 ]
1344 PRS_Contact REF Dependent;
1345 };
1346
1347
1348 // ===================================================================
1349 // PRS_Organization
1350 karl 1.1 // ===================================================================
1351
1352
1353 [
1354 Description (
1355 "PRS_Organization describes a PRS_Contact's organization name "
1356 "and business."
1357 )
1358 ]
1359 class PRS_Organization : PRS_ContactItem
1360 {
1361 [
1362 Description ("The name of the organization.")
1363 ]
1364 string Name;
1365
1366 [
1367 Description ("Description of organization's primary business.")
1368 ]
1369 string Business;
1370 };
1371 karl 1.1
1372
1373 // ===================================================================
1374 // PRS_Person
1375 // ===================================================================
1376
1377 [
1378 Description ("Information about a personal contact.")
1379 ]
1380 class PRS_Person : PRS_ContactItem
1381 {
1382 [
1383 Description ("Contact's first name.")
1384 ]
1385 string FirstName;
1386
1387 [
1388 Description ("Contact's last name.")
1389 ]
1390 string LastName;
1391
1392 karl 1.1 [
1393 Description ("How the contact is addressed, i.e. Dr., Mr., Ms., Mrs., etc.")
1394 ]
1395 string Salutation;
1396
1397 [
1398 Description ("Contact's business title.")
1399 ]
1400 string Title;
1401
1402 [ Description (
1403 "Description of the contact. For example, they may have responsibilities "
1404 "not apparent from their title."
1405 )
1406 ]
1407 string ContactType;
1408
1409 [
1410 ValueMap {"0", "1", "2", "3", "4", "254", "255"},
1411 Values {"Primary_Voice", "Alternate_Voice", "Fax", "Email", "URL", "Other",
1412 "Unknown"},
1413 karl 1.1 Description(
1414 "Contact's preferred communication method. See the PRS_Location "
1415 "Type property."
1416 )
1417 ]
1418 uint8 CommunicationMode;
1419 };
1420
1421
1422 // ===================================================================
1423 // PRS_ContactContactItem
1424 // ===================================================================
1425
1426 [
1427 Association,
1428 Abstract,
1429 Description (
1430 "Abstract root class to associate PRS_Person or PRS_Organization "
1431 "and PRS_Contact."
1432 )
1433 ]
1434 karl 1.1 class PRS_ContactContactItem : CIM_Dependency
1435 {
1436
1437 [
1438 Min (1),
1439 Override ("Antecedent"),
1440 Description ("The PRS_Contact.")
1441 ]
1442 PRS_Contact REF Antecedent;
1443
1444 [
1445 Min (1),
1446 Override ("Dependent"),
1447 Description (
1448 "The PRS_ContactItem, either PRS_Person or PRS_Organization. "
1449 "There is always at least one PRS_ContactItem, however it may be "
1450 "either a PRS_Person or PRS_Organization. For that reason, there "
1451 "is a minimum cardinality of one for this property, but a minimum "
1452 "cardinality of zero in the classes derived from this class."
1453 )
1454 ]
1455 karl 1.1 PRS_ContactItem REF Dependent;
1456 };
1457
1458
1459 // ===================================================================
1460 // PRS_ContactOrganization
1461 // ===================================================================
1462
1463 [
1464 Association,
1465 Description ("Associates PRS_Contact and PRS_Organization")
1466 ]
1467 class PRS_ContactOrganization : PRS_ContactContactItem
1468 {
1469 [
1470 Min(0),
1471 Override ("Dependent"),
1472 Description ("The PRS_Organization.")
1473 ]
1474 PRS_Organization REF Dependent;
1475 };
1476 karl 1.1
1477
1478 // ===================================================================
1479 // PRS_ContactPerson
1480 // ===================================================================
1481
1482 [
1483 Association,
1484 Description ("Associates PRS_Contact and PRS_Person")
1485 ]
1486 class PRS_ContactPerson : PRS_ContactContactItem
1487 {
1488 [
1489 Min(0),
1490 Override ("Dependent"),
1491 Description ("The PRS_Person.")
1492 ]
1493 PRS_Person REF Dependent;
1494 };
1495
1496
1497 karl 1.1 // ===================================================================
1498 // PRS_Address
1499 // ===================================================================
1500
1501 [
1502 Description ("Provides address information for PRS_ContactItem")
1503 ]
1504 class PRS_Address : PRS_ExchangeElement
1505 {
1506 [
1507 ValueMap {"0", "1", "2", "3", "254", "255"},
1508 Values {"Primary", "Shipping", "Billing", "Service", "Other", "Unknown"},
1509 Description ("The type of address.")
1510 ]
1511 uint8 AddressType;
1512
1513 [
1514 Description ("First line of address information.")
1515 ]
1516 string Address1;
1517
1518 karl 1.1 [
1519 Description ("Second line of address information.")
1520 ]
1521 string Address2;
1522
1523 [
1524 Description ("Third line of address information.")
1525 ]
1526 string Address3;
1527
1528 [
1529 Description ("Fourth line of address information.")
1530 ]
1531 string Address4;
1532
1533 [
1534 Description ("The city.")
1535 ]
1536 string City;
1537
1538 [
1539 karl 1.1 Description ("The specific region, such as state or province.")
1540 ]
1541 string Region;
1542
1543 [
1544 Description ("The country's postal code for the address")
1545 ]
1546 string PostalCode;
1547
1548 [
1549 Description ("The time zone of the address.")
1550 ]
1551 string TimeZone;
1552
1553 [
1554 Description ("The country code, based on ISO/IEC 3166.")
1555 ]
1556 string Country;
1557 };
1558
1559
1560 karl 1.1 // ===================================================================
1561 // PRS_ContactItemAddress
1562 // ===================================================================
1563
1564 [
1565 Association,
1566 Description ("Associates PRS_ContactItem with PRS_Address.")
1567 ]
1568 class PRS_ContactItemAddress : CIM_Dependency
1569 {
1570
1571 [
1572 Min(1),
1573 Override ("Antecedent"),
1574 Description ("The PRS_ContactItem.")
1575 ]
1576 PRS_ContactItem REF Antecedent;
1577
1578 [
1579 Override ("Dependent"),
1580 Description ("The PRS_Address.")
1581 karl 1.1 ]
1582 PRS_Address REF Dependent;
1583 };
1584
1585
1586 // ===================================================================
1587 // PRS_Location
1588 // ===================================================================
1589
1590 [
1591 Description ("PRS_Location describes the location of a a PRS_Address.")
1592 ]
1593 class PRS_Location : PRS_ExchangeElement
1594 {
1595
1596 [
1597 ValueMap {"0", "1", "2", "3", "4", "254", "255"},
1598 Values {"Primary_Voice", "Alternate_Voice", "Fax", "Email", "URL", "Other",
1599 "Unknown"},
1600 Description ("The type of location.")
1601 ]
1602 karl 1.1 uint8 LocationType;
1603
1604 [
1605 Description ("The specific location.")
1606 ]
1607 string LocationID;
1608 };
1609
1610
1611 // ===================================================================
1612 // PRS_Address Location
1613 // ===================================================================
1614
1615 [
1616 Association,
1617 Description ("Associates PRS_Address and PRS_Location.")
1618 ]
1619 class PRS_AddressLocation : CIM_Dependency
1620 {
1621 [
1622 Override ("Antecedent"),
1623 karl 1.1 Min(1),
1624 Description ("The PRS_Address.")
1625
1626 ]
1627 PRS_Address REF Antecedent;
1628
1629 [
1630 Override ("Dependent"),
1631 Description ("The PRS_Location")
1632 ]
1633 PRS_Location REF Dependent;
1634 };
1635
1636
1637 // ===================================================================
1638 // PRS_Attachment
1639 // ===================================================================
1640
1641 [
1642 Description (
1643 "PRS_Attachment describes file attachments. A PRS_Attachment may be "
1644 karl 1.1 "associated to any object derived from PRS_ExchangeElement. "
1645 "PRS_Attachment is used to attach objects of any type including binary "
1646 "files, ASCII documents, or URLs. "
1647 "Only one object may be attached per PRS_Attachment. \n"
1648 "/n"
1649 "The actual attachment carried by the Attachment object is included "
1650 "in one of two methods: by reference or by value as an embedded object. "
1651 "A by reference method links indirectly to the attachment through the use of "
1652 "a string identifier, e.g. a file name. An embedded object method "
1653 "means the actual binary data is included in PRS_Attachment."
1654 )
1655 ]
1656 class PRS_Attachment : PRS_ExchangeElement
1657 {
1658 [
1659 Description (
1660 "If the attachment is not embedded, where the attachment "
1661 "is located."
1662 )
1663 ]
1664 string AttachmentReference;
1665 karl 1.1
1666 [
1667 Description ("Protocol required to read the attachment (e.g., http).")
1668 ]
1669 string Protocol;
1670
1671 [
1672 Description ("The file format of the attachment.")
1673 ]
1674 string Format;
1675
1676 [
1677 Description ("The size of the attachment in bytes.")
1678 ]
1679 string AttachmentSize;
1680
1681 [
1682 Description ("The attachment itself, if embedded.")
1683 ]
1684 string AttachmentObject;
1685
1686 karl 1.1 [
1687 ValueMap {"0", "1", "2", "254", "255"},
1688 Values {"Instructions", "Background", "Log", "Unknown", "Undefined"},
1689 Description (
1690 "The purpose of the attachment, related to the diagnosis. "
1691 "'Instructions' are compilable code. "
1692 "'Background' are descriptive information. "
1693 "'Log' is information captured in a log file. "
1694 )
1695 ]
1696 uint8 AttachmentType;
1697
1698 [
1699 Description (
1700 "The displayable attachment identifier. Used to define what will "
1701 "appear as the name of the attachment, as opposed to the specific "
1702 "attachment file name or URL. "
1703 )
1704 ]
1705 string AttachmentName;
1706 };
1707 karl 1.1
1708
1709 // ===================================================================
1710 // PRS_Attached
1711 // ===================================================================
1712
1713 [
1714 Association,
1715 Description ("Associates PRS_Attachment with PRS_ExchangeElement.")
1716 ]
1717 class PRS_Attached : CIM_Dependency
1718 {
1719 [
1720 Override ("Antecedent"),
1721 Description ("The PRS_Attachment.")
1722 ]
1723 PRS_Attachment REF Antecedent;
1724
1725 [
1726 Override ("Dependent"),
1727 Min(1),
1728 karl 1.1 Description ("The PRS_ExchangeElement.")
1729 ]
1730 PRS_ExchangeElement REF Dependent;
1731 };
1732
1733
1734 // ===================================================================
1735 // ===================================================================
1736 // Service Incident Exchange information
1737 // ===================================================================
1738 // ===================================================================
1739
1740 // ===================================================================
1741 // ServiceIncident
1742 // ===================================================================
1743
1744 [
1745 Description (
1746 "PRS_ServiceIncident contains the fundamental information related to "
1747 "a specific incident : its identity, status, priority, etc. "
1748 "The actual incident data, including specific transactions and "
1749 karl 1.1 "resolution information, is contained in the objects associated "
1750 "with PRS_ServiceIncident. These include specific Problem, "
1751 "Resolution and Activity related objects accrued through the "
1752 "Transaction workflow."
1753 )
1754 ]
1755 class PRS_ServiceIncident : PRS_ExchangeElement
1756 {
1757
1758 [
1759 Description (
1760 "The unique identifier for this incident assigned by the Requester"
1761 )
1762 ]
1763 string RequesterID;
1764
1765 [
1766 Description (
1767 "The unique identifier for this incident assigned by the Provider")
1768 ]
1769 string ProviderID;
1770 karl 1.1
1771 [
1772 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "254", "255"},
1773 Values {
1774 "Beginning_State", "Not_Entitled", "Entitled",
1775 "Problem_Submitted", "Open_Requester", "Open_Provider",
1776 "Closed_Pending_Confirmation", "Closed", "Other", "Unknown"
1777 },
1778 Description (
1779 "The state of the incident within the Service Incident Exchange "
1780 "Standard transaction model."
1781 )
1782 ]
1783 uint8 CurrentState;
1784
1785 [
1786 Values {"1", "2", "3", "4", "5"},
1787 Description (
1788 "The severity of the incident as defined by the Requester. "
1789 "One is the most severe and five is the least severe. "
1790 )
1791 karl 1.1 ]
1792 uint8 RequesterSeverity;
1793
1794 [
1795 Values {"1", "2", "3", "4", "5"},
1796 Description (
1797 "The priority of the incident as defined by the Requester. "
1798 "One is the highest priority and five is the lowest priority."
1799 )
1800 ]
1801 uint8 ProviderPriority;
1802
1803 [
1804 Description (
1805 "The explicit time the Requester expects a response. "
1806 )
1807 ]
1808 datetime ResponseTime;
1809
1810 [
1811 Description (
1812 karl 1.1 "Status of the incident according to the workflow"
1813 )
1814 ]
1815 string WorkflowStatus;
1816
1817 [
1818 Description (
1819 "Additional general information about the incident"
1820 )
1821 ]
1822 string Comment;
1823
1824 [
1825 ValueMap {"0", "1", "254", "255"},
1826 Values {"Yes", "No", "Other", "Unknown"},
1827 Description (
1828 "Is the Requester entitled to service or not? "
1829 )
1830 ]
1831 uint8 Entitled;
1832
1833 karl 1.1 [
1834 ValueMap {"0", "1", "254", "255"},
1835 Values {"Yes", "No", "Other", "Unknown"},
1836 Description (
1837 "Was the last transaction was accepted or rejected? "
1838 )
1839 ]
1840 uint8 Acknowledge;
1841
1842 [
1843 Description(
1844 "The use of the TransactionName property is deprecated. New Service "
1845 "Incidents should use the LastTransaction property and set this "
1846 "property to NULL. "
1847 ),
1848
1849 Deprecated {
1850 "PRS_ServiceIncident.LastTransaction"
1851 }
1852 ]
1853 string TransactionName;
1854 karl 1.1 [
1855 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "254",
1856 "255"},
1857 Values {
1858 "Service_Request", "Entitlement", "Problem_Submittal",
1859 "Accept_Problem", "Problem_Resolution", "Request_Problem_Information",
1860 "Provide_Problem_Information", "Provide_Admin_Information",
1861 "Query_Incident", "Confirm_Close", "Reject_Resolution", "Request_Closure",
1862 "Other", "Unknown"},
1863 Description(
1864 "The name of the last transaction which was acknowledged."
1865 )
1866 ]
1867 uint8 LastTransaction;
1868
1869 };
1870
1871
1872 // ===================================================================
1873 // PRS_Service Requester
1874 // ===================================================================
1875 karl 1.1
1876 [
1877 Association,
1878 Description (
1879 "PRS_ServiceRequester associates a PRS_Service Incident with "
1880 "a PRS_Contact representing the entity requesting service. "
1881 "Note that the Contact class is used for both Requesters and "
1882 "Providers, the context is determined by which association exists. "
1883 )
1884 ]
1885 class PRS_ServiceRequester : CIM_Dependency
1886 {
1887 [
1888 Override("Antecedent"),
1889 Description ("The PRS_ServiceIncident.")
1890 ]
1891 PRS_ServiceIncident REF Antecedent;
1892
1893 [
1894 Min (1), Max (1),
1895 Override("Dependent"),
1896 karl 1.1 Description ("The PRS_Contact")
1897 ]
1898 PRS_Contact REF Dependent;
1899 };
1900
1901
1902 // ===================================================================
1903 // PRS_ServiceProvider
1904 // ===================================================================
1905
1906 [
1907 Association,
1908 Description (
1909 "Associates PRS_ServiceIncident to PRS_Contact to describe the "
1910 "Service Provider. "
1911 )
1912 ]
1913 class PRS_ServiceProvider : CIM_Dependency
1914 {
1915
1916 [
1917 karl 1.1 Override("Antecedent"),
1918 Description ("The PRS_ServiceIncident.")
1919 ]
1920 PRS_ServiceIncident REF Antecedent;
1921
1922 [
1923 Min (1), Max (1),
1924 Override("Dependent"),
1925 Description ("The PRS_Contact.")
1926 ]
1927 PRS_Contact REF Dependent;
1928 };
1929
1930
1931 // ===================================================================
1932 // PRS_ServiceProblem
1933 // ===================================================================
1934
1935 [
1936 Association,
1937 Description (
1938 karl 1.1 "Associates PRS_ServiceIncident to PRS_Problem to describe the "
1939 "Problem being submitted to the Service Provider."
1940 )
1941 ]
1942 class PRS_ServiceProblem : CIM_Dependency
1943 {
1944 [
1945 Min (1),
1946 Override("Antecedent"),
1947 Description ("The PRS_ServiceIncident.")
1948 ]
1949 PRS_ServiceIncident REF Antecedent;
1950
1951 [
1952 Max (1),
1953 Override("Dependent"),
1954 Description ("The PRS_Problem.")
1955 ]
1956 PRS_Problem REF Dependent;
1957 };
1958
1959 karl 1.1
1960 // ===================================================================
1961 // PRS_ServiceResolutionSolution
1962 // ===================================================================
1963
1964 [
1965 Association,
1966 Aggregation,
1967 Description (
1968 "Associates PRS_ServiceIncident to PRS_Solution to describe the "
1969 "Resolutions proposed by the Service Provider. "
1970 )
1971 ]
1972 class PRS_ServiceResolutionSolution : CIM_Dependency
1973 {
1974
1975 [
1976 Aggregate,
1977 Override("Antecedent"),
1978 Description ("The PRS_ServiceIncident.")
1979 ]
1980 karl 1.1 PRS_ServiceIncident REF Antecedent;
1981
1982 [
1983 Override("Dependent"),
1984 Description (
1985 "The PRS_Solution. PRS_Solution must be associated with at least "
1986 "one Resolution. "
1987 )
1988 ]
1989 PRS_Solution REF Dependent;
1990 };
1991
1992
1993 // ===================================================================
1994 // PRS_Agreement
1995 // ===================================================================
1996
1997 [
1998 Description (
1999 "The agreement or contract referenced for entitlement to service."
2000 )
2001 karl 1.1 ]
2002 class PRS_Agreement : PRS_ExchangeElement
2003 {
2004
2005 [
2006 Description (
2007 "The identifier for the contract between the Request and "
2008 "the Provider. This property is set by the Requester "
2009 "prior to submitting a Service Request. "
2010 )
2011 ]
2012 string ContractID;
2013
2014 [
2015 Description (
2016 "A brief description of the contract."
2017 )
2018 ]
2019 string AgreementType;
2020 };
2021
2022 karl 1.1
2023 // ===================================================================
2024 // PRS_ServiceAgreement
2025 // ===================================================================
2026
2027 [
2028 Association,
2029 Description ("Associates PRS_ServiceIncident to PRS_Agreement. ")
2030 ]
2031 class PRS_ServiceAgreement : CIM_Dependency
2032 {
2033
2034 [
2035 Override("Antecedent"),
2036 Description ("The PRS_ServiceIncident.")
2037 ]
2038 PRS_ServiceIncident REF Antecedent;
2039
2040 [
2041 Min (1), Max (1),
2042 Override("Dependent"),
2043 karl 1.1 Description ("The PRS_Agreement.")
2044 ]
2045 PRS_Agreement REF Dependent;
2046 };
2047
2048
2049 // ===================================================================
2050 // PRS_Activity
2051 // ===================================================================
2052
2053 [
2054 Description (
2055 "Describes the date of each transaction and the objects involved. "
2056 )
2057 ]
2058 class PRS_Activity : PRS_ExchangeElement
2059 {
2060
2061 [
2062 Description (
2063 "The key fields for the objects in the associated Transaction. "
2064 karl 1.1 "The use of this property is deprecated. The PRS_SISService "
2065 "StartSISTransaction method uses the New, Modified and Deleted "
2066 "properties instead of this field. This field is set to NULL "
2067 "by the StartSISTransaction method if the other properties are "
2068 "used. "
2069 ),
2070
2071 Deprecated {
2072 "PRS_Activity.NewKeys",
2073 "PRS_Activity.Deleted",
2074 "PRS_Activity.Modified"
2075 }
2076 ]
2077 string ParameterList;
2078
2079 [
2080 Description (
2081 "The key fields for the objects added in the associated Transaction. "
2082 "This property is set by the PRS_SISService StartSISTransaction method."
2083 )
2084 ]
2085 karl 1.1 string NewKeys;
2086
2087 [
2088 Description (
2089 "The key fields for objects deleted in the associated Transaction. "
2090 "This property is set by the PRS_SISService StartSISTransaction method."
2091 )
2092 ]
2093 string Deleted;
2094
2095 [
2096 Description (
2097 "The key fields for objects modified in the associated Transaction. "
2098 "This property is set by the PRS_SISService StartSISTransaction method."
2099 )
2100 ]
2101 string Modified;
2102
2103 [
2104 Description (
2105 "The date of the Activity. This property is set by the PRS_SISService "
2106 karl 1.1 "StartSISTranasaction method. "
2107 )
2108 ]
2109 datetime LocalDate;
2110
2111 [
2112 Description ("Description of the activity performed. ")
2113 ]
2114 string ActionLog;
2115 };
2116
2117
2118 // ===================================================================
2119 // PRS_Transaction
2120 // ===================================================================
2121
2122 [
2123 Description (
2124 "PRS_Transaction represents a single transaction of the Service "
2125 "Incident workflow. A PRS_Transaction instance is created by the "
2126 "PRS_SISService StartTransaction method. "
2127 karl 1.1 )
2128 ]
2129 class PRS_Transaction : PRS_ExchangeElement
2130 {
2131 [
2132 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "254",
2133 "255"},
2134 Values {
2135 "Service_Request", "Entitlement", "Problem_Submittal",
2136 "Accept_Problem", "Problem_Resolution", "Request_Problem_Information",
2137 "Provide_Problem_Information", "Provide_Admin_Information",
2138 "Query_Incident", "Confirm_Close", "Reject_Resolution", "Request_Closure",
2139 "Other", "Unknown"
2140 },
2141 Description (
2142 "The specific SIS transaction represented by this PRS_Transaction instance. "
2143 )
2144 ]
2145 uint8 TransactionType;
2146
2147 [
2148 karl 1.1 ValueMap {"0", "1", "2", "3"},
2149 Values {"Open", "Working", "Closed", "Notification_Pending"},
2150 Description (
2151 "The current state of this transaction. This value is manipulated "
2152 "by the PRS_SISService:StartSISTransaction and SetSISTransactionComplete "
2153 "method implementations. This property is not intended to be written "
2154 "by management applications."
2155 )
2156 ]
2157 uint8 TransactionState;
2158
2159 [
2160 Description (
2161 "The status of the transaction after it has reached the 'Closed' "
2162 "state. A CompletionStatus of zero (0) means the tranasaction "
2163 "completed successfully. A non-zero CompletionStatus indicates the "
2164 "transaction did not complete successfully. Non-zero values are "
2165 "implementation-specific. While the transaction is 'Open' or "
2166 "'Working' the CompletionStatus property shall be zero (0). "
2167 "See the description for PRS_SISService "
2168 "for the definition of the contents of this property. "
2169 karl 1.1 )
2170 ]
2171 uint32 CompletionStatus;
2172 };
2173
2174
2175 // ===================================================================
2176 // PRS_SISService
2177 // ===================================================================
2178
2179 [
2180 Description (
2181 "The PRS_SISService is used as a class factory for PRS_Transactions."
2182 )
2183 ]
2184 class PRS_SISService : CIM_Service
2185 {
2186 [
2187 Description (
2188 "When invoked on a local system, this method validates the objects "
2189 "in the local repository are sufficient for the indicated "
2190 karl 1.1 "TransactionType. If not, an error is returned and no additional "
2191 "processing is performed. If the repository is successfully "
2192 "validated, this method creates a PRS_Transaction instance for "
2193 "return to the caller.\n"
2194 "\n"
2195 "This method also reviews the repository looking for new, modified "
2196 "or deleted objects. As these objects are located, the keys for "
2197 "these objects are appended to the related strings in the PRS_Activity "
2198 "instance specified by a parameter to this method.\n"
2199 "\n"
2200 "After all the appropriate new, modified or deleted objects have "
2201 "been located, this method invokes the PRS_SISService StartSISTransaction "
2202 "method on the remote system specified by the objects related to the "
2203 "Service Incident associated with the PRS_Activity instance specified "
2204 "as a method parameter. The TransactionType and PRS_Activity REF "
2205 "is forward to the remote system as method parameters as well as the "
2206 "PRS_Transaction REF for the instance created by this method.\n"
2207 "\n"
2208 "The remote system creates a child namespace using the PRS_Transaction REF "
2209 "for the name. The local system than transfers all of the New, Modified "
2210 "and Deleted objects to namespace on the remote system. Once all objects "
2211 karl 1.1 "have been successfully transferred, the PRS_SISService EndSISTransaction "
2212 "method is invoked on the remote system with a Status value of zero to "
2213 "indicate the remote system should attempt to commit the transaction to "
2214 "the remote repository./n"
2215 "/n"
2216 "The remote system passes the results of the remote commit back to the "
2217 "originating system by invoking the PRS_SISService SetSISTransactionComplete "
2218 "method on the system that originated the SIS transaction. The "
2219 "CompletionStatus method parameter indicates whether the remote commit was "
2220 "successful. If the CompletionStatis is zero, the remote commit was "
2221 "successfult. If it was unsuccessful, the objects were not applied to the "
2222 "remote repository and the CompletionStatus is not zero indicating the error. "
2223 "The local invocation of the SetSISTransactionComplete method updates the "
2224 "specified PRS_Transaction's State to Closed and the Status to the valid "
2225 "provided by the remote system as the CompletionStatus method parameter.\n"
2226 "\n"
2227 "In order to promote extensibility, the uint32 values used for return codes "
2228 "method CompletionStatus parameters are mapped into three "
2229 "significant sections. The first describes the type of value being reported. "
2230 "These include Error versus Notification and Standard versus "
2231 "Vendor-specific.\n"
2232 karl 1.1 "\n"
2233 "The second section describes the source of the value. These include Method, "
2234 "Operating System, Repository, or Transport. In addition, this section "
2235 "indicates whether the value was created locally or remotely.\n"
2236 "\n"
2237 "The third section is the specific return value.\n"
2238 "\n"
2239 "If all 32 bits of the return value are reset, the method completed "
2240 "successfully. Any other value indicates an error condition or notification. "
2241 "If D31 is set, the method did not complete successfully. If D31 is reset, "
2242 "but the rest of the return value is non-zero, this is a Notification that "
2243 "the operation did complete successfully, but the source of the value feels "
2244 "there is a condition that caller needs to be aware exists.\n"
2245 "\n"
2246 "If D30 is set, the return value is vendor specific. If D30 is reset, the "
2247 "return value is defined by the standard.\n"
2248 "\n"
2249 "If D29 is set, the return value was generated by a remote system. If D29 is "
2250 "reset, the return value was generated locally. The bit is always set or "
2251 "reset by the local system. The local system sets the bit if it receives a "
2252 "non-zero return value from a remote method invocation.\n"
2253 karl 1.1 "\n"
2254 "Bit D28 is reserved for future and shall be reset on all return values.\n"
2255 "\n"
2256 "When there is an error or notification, D24 through D27 indicate the source "
2257 "of the error. The following sources are currently defined (D24 is the least "
2258 "significant bit below):\n"
2259 "\n"
2260 " 0000 Method\n"
2261 " 0001 Operating System\n"
2262 " 0010 Repository\n"
2263 " 0011 Transport\n"
2264 " All remaining values are reserved.\n"
2265 "\n"
2266 "Bits D16 through D23 are reserved for future use and shall be reset to "
2267 "zero.\n"
2268 "\n"
2269 "Bits D0 through D15 indicate the specific return value. If zero, all other "
2270 "bits in the return value must be zero, indicating successful completion of "
2271 "the method (or Transaction). "
2272 )
2273 ]
2274 karl 1.1 uint32 StartSISTransaction (
2275 [
2276 ValueMap {
2277 "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11",
2278 "254", "255"
2279 },
2280 Values {
2281 "Service_Request", "Entitlement", "Problem_Submittal",
2282 "Accept_Problem", "Problem_Resolution", "Request_Problem_Information",
2283 "Provide_Problem_Information", "Provide_Admin_Information",
2284 "Query_Incident", "Confirm_Close", "Reject_Resolution", "Request_Closure",
2285 "Other", "Unknown"
2286 },
2287 IN
2288 ]
2289 uint8 TransactionType,
2290
2291 [IN] PRS_Activity REF ActivityRef,
2292
2293 [IN, OUT] PRS_Transaction REF TransactionRef
2294 );
2295 karl 1.1 [
2296 Description(
2297 "The EndSISTransaction method is used to handle committing or aborting "
2298 "a transaction. For commit, the method is invoked by a remote system "
2299 "when all of the objects associated to the transaction have been "
2300 "placed in the child namespace created by StartSISTransaction.\n"
2301 "\n"
2302 "For abort, the method cleans up the child namespace and closes the "
2303 "specified PRS_Transaction, setting the CompletionStatus to the method "
2304 "parameter of the same name. "
2305 )
2306 ]
2307 uint32 EndSISTransaction (
2308 [
2309 IN,
2310 Description(
2311 "Status indicates whether the transaction is to "
2312 "be committed or aborted. If Status is zero, the transaction is "
2313 "to be committed. If Status is non-zero, it indicates the "
2314 "transaction is to be aborted. If the transaction is being "
2315 "aborted, the Status field is passed back to the originating system "
2316 karl 1.1 "as the CompletionStatus parameter for the PRS_SISService "
2317 "SetSISTransactionComplete method. See the description for "
2318 "PRS_SISService "
2319 "for the definition of the contents of this property. "
2320 )
2321 ]
2322 uint32 Status,
2323 [
2324 IN,
2325 Description(
2326 "TransactionRef identifies the PRS_Transaction to commit or abort. "
2327 "If this property is NULL or does not identify an 'Open' transaction, "
2328 "this method returns an error. "
2329 )
2330 ]
2331 PRS_Transaction REF TransactionRef
2332 );
2333 [
2334 Description(
2335 "SetSISCompletionStatus is used to signal the system that originated an "
2336 "SIS transaction that the remote system has completed processing of the "
2337 karl 1.1 "transaction. If the processing was successful, as indicated by the "
2338 "CompletionStatus method parameter, the local system resets the DirtyFlag "
2339 "for all of the objects identified in the PRS_Activity instance associated "
2340 "to the PRS_Transaction specified. "
2341 )
2342 ]
2343 uint32 SetSISCompletionStatus ( [
2344 IN,
2345 Description(
2346 "CompletionStatus is used to set the CompletionStatus field of the "
2347 "specified PRS_Transaction. If zero, the SIS transaction was "
2348 "completed successfully. If non-zero, an error occurred and the "
2349 "objects provided by StartSISTransaction were not submitted to the "
2350 "remote repository. See the description for PRS_SISService "
2351 "for the definition of the contents of this property. "
2352 )
2353 ]
2354 uint32 CompletionStatus,
2355 [
2356 IN,
2357 Description(
2358 karl 1.1 "TransactionRef identifies the PRS_Transaction that has completed. "
2359 "If this property is NULL or does not identify an 'Open' transaction, "
2360 "this method returns an error. "
2361 )
2362 ]
2363 PRS_Transaction REF TransactionRef
2364 );
2365 };
2366
2367
2368 // ===================================================================
2369 // PRS_Service Activity
2370 // ===================================================================
2371
2372 [
2373 Association,
2374 Aggregation,
2375 Description ("Associates PRS_ServiceIncident to PRS_Activity.")
2376 ]
2377 class PRS_ServiceActivity : CIM_Dependency
2378 {
2379 karl 1.1
2380 [
2381 Aggregate,
2382 Min(1), Max (1),
2383 Override("Antecedent"),
2384 Description ("The PRS_ServiceIncident.")
2385 ]
2386 PRS_ServiceIncident REF Antecedent;
2387
2388 [
2389 Override("Dependent"),
2390 Description ("The PRS_Activity.")
2391 ]
2392 PRS_Activity REF Dependent;
2393 };
2394
2395
2396 // ===================================================================
2397 // PRS_ActivityContact
2398 // ===================================================================
2399
2400 karl 1.1 [
2401 Association,
2402 Description ("Associates PRS_Activity with PRS_Contact.")
2403 ]
2404 class PRS_ActivityContact : CIM_Dependency
2405 {
2406
2407 [
2408 Override("Antecedent"),
2409 Description ("The PRS_Activity.")
2410 ]
2411 PRS_Activity REF Antecedent;
2412
2413 [
2414 Max (1),
2415 Override("Dependent"),
2416 Description ("The PRS_Contact.")
2417 ]
2418 PRS_Contact REF Dependent;
2419 };
2420
2421 karl 1.1
2422 // ===================================================================
2423 // PRS_Activity Resource
2424 // ===================================================================
2425
2426 [
2427 Association,
2428 Aggregation,
2429 Description ("Associates PRS_Activity with PRS_Resource")
2430 ]
2431 class PRS_ActivityResource : CIM_Dependency
2432 {
2433
2434 [
2435 Aggregate,
2436 Min (1), Max (1),
2437 Override("Antecedent"),
2438 Description ("The PRS_Activity.")
2439 ]
2440 PRS_Activity REF Antecedent;
2441
2442 karl 1.1 [
2443 Override("Dependent"),
2444 Description ("The PRS_Resource.")
2445 ]
2446 PRS_Resource REF Dependent;
2447 };
2448
2449
2450 // ===================================================================
2451 // Activity Transaction
2452 // ===================================================================
2453
2454 [
2455 Association,
2456 Description ("Associates PRS_Activity with PRS_Transaction.")
2457 ]
2458 class PRS_ActivityTransaction : CIM_Dependency
2459 {
2460 [
2461 Min (1), Max (1),
2462 Override("Antecedent"),
2463 karl 1.1 Description ("The PRS_Activity.")
2464 ]
2465 PRS_Activity REF Antecedent;
2466
2467 [
2468 Min (1), Max (1),
2469 Override("Dependent"),
2470 Description ("The PRS_Transaction.")
2471 ]
2472 PRS_Transaction REF Dependent;
2473 };
2474
2475
2476 // ===================================================================
2477 // end of file
2478 // ===================================================================
2479
2480
2481
2482
2483
|