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





var security = require('./../../../../v23/security');

module.exports = {};



// Types:
var _type1 = new vdl.Type();
var _type2 = new vdl.Type();
var _typeBlessingRootResponse = new vdl.Type();
_type1.kind = vdl.kind.LIST;
_type1.name = "";
_type1.elem = vdl.types.STRING;
_type2.kind = vdl.kind.LIST;
_type2.name = "";
_type2.elem = new security.Caveat()._type;
_typeBlessingRootResponse.kind = vdl.kind.STRUCT;
_typeBlessingRootResponse.name = "v.io/x/ref/services/identity.BlessingRootResponse";
_typeBlessingRootResponse.fields = [{name: "Names", type: _type1}, {name: "PublicKey", type: vdl.types.STRING}];
_type1.freeze();
_type2.freeze();
_typeBlessingRootResponse.freeze();
module.exports.BlessingRootResponse = (vdl.registry.lookupOrCreateConstructor(_typeBlessingRootResponse));




// Consts:



// Errors:



// Services:

  
    
function OAuthBlesser(){}
module.exports.OAuthBlesser = OAuthBlesser;

    
      
OAuthBlesser.prototype.blessUsingAccessToken = function(ctx, serverCall, token) {
  throw new Error('Method BlessUsingAccessToken not implemented');
};
    
      
OAuthBlesser.prototype.blessUsingAccessTokenWithCaveats = function(ctx, serverCall, token, caveats) {
  throw new Error('Method BlessUsingAccessTokenWithCaveats not implemented');
};
     

    
OAuthBlesser.prototype._serviceDescription = {
  name: 'OAuthBlesser',
  pkgPath: 'v.io/x/ref/services/identity',
  doc: "// OAuthBlesser exchanges OAuth access tokens for\n// an email address from an OAuth-based identity provider and uses the email\n// address obtained to bless the client.\n//\n// OAuth is described in RFC 6749 (http://tools.ietf.org/html/rfc6749),\n// though the Google implementation also has informative documentation at\n// https://developers.google.com/accounts/docs/OAuth2\n//\n// WARNING: There is no binding between the channel over which the access token\n// was obtained (typically https) and the channel used to make the RPC (a\n// vanadium virtual circuit).\n// Thus, if Mallory possesses the access token associated with Alice's account,\n// she may be able to obtain a blessing with Alice's name on it.",
  embeds: [],
  methods: [
    
      
    {
    name: 'BlessUsingAccessToken',
    doc: "// BlessUsingAccessToken uses the provided access token to obtain the email\n// address and returns a blessing along with the email address.",
    inArgs: [{
      name: 'token',
      doc: "",
      type: vdl.types.STRING
    },
    ],
    outArgs: [{
      name: 'blessing',
      doc: "",
      type: new security.WireBlessings()._type
    },
    {
      name: 'email',
      doc: "",
      type: vdl.types.STRING
    },
    ],
    inStream: null,
    outStream: null,
    tags: []
  },
    
      
    {
    name: 'BlessUsingAccessTokenWithCaveats',
    doc: "",
    inArgs: [{
      name: 'token',
      doc: "",
      type: vdl.types.STRING
    },
    {
      name: 'caveats',
      doc: "",
      type: _type2
    },
    ],
    outArgs: [{
      name: 'blessing',
      doc: "",
      type: new security.WireBlessings()._type
    },
    {
      name: 'email',
      doc: "",
      type: vdl.types.STRING
    },
    ],
    inStream: null,
    outStream: null,
    tags: []
  },
     
  ]
};

  
    
function MacaroonBlesser(){}
module.exports.MacaroonBlesser = MacaroonBlesser;

    
      
MacaroonBlesser.prototype.bless = function(ctx, serverCall, macaroon) {
  throw new Error('Method Bless not implemented');
};
     

    
MacaroonBlesser.prototype._serviceDescription = {
  name: 'MacaroonBlesser',
  pkgPath: 'v.io/x/ref/services/identity',
  doc: "// MacaroonBlesser returns a blessing given the provided macaroon string.",
  embeds: [],
  methods: [
    
      
    {
    name: 'Bless',
    doc: "// Bless uses the provided macaroon (which contains email and caveats)\n// to return a blessing for the client.",
    inArgs: [{
      name: 'macaroon',
      doc: "",
      type: vdl.types.STRING
    },
    ],
    outArgs: [{
      name: 'blessing',
      doc: "",
      type: new security.WireBlessings()._type
    },
    ],
    inStream: null,
    outStream: null,
    tags: []
  },
     
  ]
};

   
 



@@ -2133,18 +2133,18 @@
 cess
+%5Cn//
  token
-%5Cn//
  was
@@ -2211,15 +2211,15 @@
  RPC
- (a
 %5Cn//
+ (a
  van
@@ -2241,20 +2241,16 @@
 ircuit).
-%5Cn//
  Thus, i
@@ -2285,16 +2285,20 @@
 ss token
+%5Cn//
  associa
@@ -2321,21 +2321,16 @@
  account
-,%5Cn//
  she may
@@ -2359,24 +2359,28 @@
 lessing with
+%5Cn//
  Alice's nam
@@ -2387,16 +2387,147 @@
 e on it.
+%5Cn//%5Cn// TODO(ataly): Get rid of this service once all clients have been%5Cn// switched to use the HTTP OAuthBlessingHandler service.
 %22,%0A  emb

Update w.r.t. CL 14481