// 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('../../../../../../../../vdl');






module.exports = {};



// Types:
var _typeCaveat = new vdl.Type();
_typeCaveat.kind = vdl.kind.STRUCT;
_typeCaveat.name = "v.io/x/ref/services/wspr/internal/account.Caveat";
_typeCaveat.fields = [{name: "Type", type: vdl.types.STRING}, {name: "Args", type: vdl.types.STRING}];
_typeCaveat.freeze();
module.exports.Caveat = (vdl.registry.lookupOrCreateConstructor(_typeCaveat));




// Consts:



// Errors:



// Services:

   
 


