No, the spec talks about how one is to use a TEMPLATE, that only certain ATTRIBUTEs of a TEMPLATE should apply to objects CREATEd/REGISTERed via reference to that TEMPLATE. Since a TEMPLATE is a MANAGED OBJECT, it may have any or all of the ATTRIBUTES defined in the spec (like InitialDate, for example), and one may operate on these attributes via such mechanisms as AddAttribute/ModifyAttribute/DeleteAttributes, all operations defined on MANAGED OBJECTS. What we have been discussing is a more useable model that would simply have a GET of a TEMPLATE return the attributes that should apply to other objects, rather than just vaguely saying that will return some attributes. So if we note that the maximal set of attributes returned on a GET is the list in 2.2.6, it would seem to me that we have crisply clarified the behavior of a GET of a TEMPLATE, which was as far as I thought necessary. And we could either do it in the section on TEMPLATEs or in the section on GET. In either case, it's a little awkward.
The behavior of REGISTER of a TEMPLATE is one that seems to be troubling you now. The spec allows for attributes to arrive from either other TEMPLATEs or from individual ATTRIBUTEs on the register request, or from a blob of attributes, and describes the order of succession in that process. If you are asserting that ATTRIBUTEs for a TEMPLATE can only be in that last blob, then you are asking for a larger breaking change than I was willing to consider. You are free to propose such a thing, but it's not part of this proposal.
Bruce A Rich brich at-sign us dot ibm dot com
From: Tim Hudson <>
To: Bruce Rich/Austin/IBM@IBMUS
Cc: John Leiseboer <>, "" <>
Date: 09/04/2012 03:00 PM
Subject: Re: [kmip-interop-tech] Re: KMIP templates
Sent by: <>
On 5/09/2012 4:25 AM, Bruce Rich wrote:
Tim,
The spec does not use the term "value" in either Register or Get, so I would not want to introduce a new term now. However, the spec does list the attributes applicable to objects created using the Template. So my amended proposal is now
I still think you are basically not resolving the confusion with that approach. Get should return something from Section 2.2 of the specification and in fact if you read it that is what it currently states. "This operation requests that the server returns the Managed Object specified by its Unique Identifier". And what is Section 2.2 - "Managed Object". That is about as well defined as you can get in terms of the specification.
Get should not be interpreting parts of a Managed Object to return or handling anything on an object type specific basis.
Where the confusion exists is that you provide attributes in the Template when registering and attributes in the template attribute list and only the attributes in the Template (the managed object) itself should be returned.
The whole area of "mess" is actually in section 2.2.6 and not elsewhere.
Whatever a user places in the Template managed object in the Register is what SHALL be returned by the Get. That is clear, simple, and what the current specification states.
The specification is unclear on what you are meant to do with attributes provided in the template attribute list in a Register and whether or not it is reasonable to include attributes for the template as distinct from attributes that the template provides to objects that reference it in the template itself. That's what we need to sort out.
Tim.