// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// This file was auto-generated by the vanadium vdl tool.
var vdl = require('vanadium').vdl;






module.exports = {};



// Types:
var _typeId = new vdl.Type();
_typeId.kind = vdl.kind.ARRAY;
_typeId.name = "v.io/v23/uniqueid.Id";
_typeId.len = 16;
_typeId.elem = vdl.types.BYTE;
_typeId.freeze();
module.exports.Id = (vdl.registry.lookupOrCreateConstructor(_typeId));




// Consts:



// Errors:



// Services:

   
 


