Re: [netmod] attributes in draft-lhotka-netmod-yang-json

Martin Bjorklund <mbj@tail-f.com> Wed, 26 March 2014 13:34 UTC

Return-Path: <mbj@tail-f.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AF3F91A0339 for <netmod@ietfa.amsl.com>; Wed, 26 Mar 2014 06:34:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level:
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wu5dwjnmuDY6 for <netmod@ietfa.amsl.com>; Wed, 26 Mar 2014 06:34:42 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [109.74.15.94]) by ietfa.amsl.com (Postfix) with ESMTP id 43A061A0334 for <netmod@ietf.org>; Wed, 26 Mar 2014 06:34:42 -0700 (PDT)
Received: from localhost (138.162.241.83.in-addr.dgcsystems.net [83.241.162.138]) by mail.tail-f.com (Postfix) with ESMTPSA id 3C01137C320; Wed, 26 Mar 2014 14:34:40 +0100 (CET)
Date: Wed, 26 Mar 2014 14:34:40 +0100
Message-Id: <20140326.143440.588668936751872922.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHQdE5JwJBrQpGx_eFxr8ijGvKr0-_OuTUiPZH_bX+a1FQ@mail.gmail.com>
References: <CABCOCHRZLp52pgMhi0tKs3=vLZLkAQcw=iK4TG77BArSCK8-_g@mail.gmail.com> <m2lhw0hoxy.fsf@nic.cz> <CABCOCHQdE5JwJBrQpGx_eFxr8ijGvKr0-_OuTUiPZH_bX+a1FQ@mail.gmail.com>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Archived-At: http://mailarchive.ietf.org/arch/msg/netmod/_bBZe_vJO8w89pfRdsSzob63z7c
Cc: netmod@ietf.org
Subject: Re: [netmod] attributes in draft-lhotka-netmod-yang-json
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 26 Mar 2014 13:34:43 -0000

Hi,

Here's yet another attempt to handle attributes in JSON, without
changing the encoding for the case that there are no attributes
present.

In all examples, the attributes "inactive" and "etag" are present.

Attributes are encoded differently depending on the type of object:


leaf
----

Encode the attributes as a sibling to the leaf.


  leaf foo {
    type string;
  }

  "foo": "some value";
  "@foo": {
     "inactive": true,
     "etag": "...";
   }


list instance
-------------

Encode the attributes within the list instance.


  list bar {
    key name;
    leaf name {
      type string;
    }
    ...
  }

  "bar": [
     {
        "@bar": {
           "inactive": true,
           "etag": "..."
         }
         "name": "instance name";
      }]


container
---------

Encode the attributes within the container.


  container baz;

  "baz": {
     "@baz": {
        "inactive": true,
        "etag": "..."
       }
  }


leaf-list
---------

Encode the attributes as a sibling to the leaf-list, with an array of
same length as the leaf-list itself.


  leaf-list buzz {
     type string;
  }

  "buzz": [ "val1", "val2", "val3" ],
  "@buzz: [ null, 
            { "inactive": true,
              "etag": "..."
            }
            null]



/martin