public interface io.vertx.ext.auth.oauth2.providers.GoogleAuth extends io.vertx.ext.auth.oauth2.providers.OpenIDConnectAuth
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: io.vertx.ext.auth.oauth2.providers.GoogleAuth
  super_class: java.lang.Object
{
  public static io.vertx.ext.auth.oauth2.OAuth2Auth create(io.vertx.core.Vertx, java.lang.String, java.lang.String);
    descriptor: (Lio/vertx/core/Vertx;Ljava/lang/String;Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2Auth;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.vertx.core.Vertx vertx
        start local 1 // java.lang.String clientId
        start local 2 // java.lang.String clientSecret
         0: .line 30
            aload 0 /* vertx */
            aload 1 /* clientId */
            aload 2 /* clientSecret */
            new io.vertx.core.http.HttpClientOptions
            dup
            invokespecial io.vertx.core.http.HttpClientOptions.<init>:()V
            invokestatic io.vertx.ext.auth.oauth2.providers.GoogleAuth.create:(Lio/vertx/core/Vertx;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/http/HttpClientOptions;)Lio/vertx/ext/auth/oauth2/OAuth2Auth;
            areturn
        end local 2 // java.lang.String clientSecret
        end local 1 // java.lang.String clientId
        end local 0 // io.vertx.core.Vertx vertx
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0         vertx  Lio/vertx/core/Vertx;
            0    1     1      clientId  Ljava/lang/String;
            0    1     2  clientSecret  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      vertx         
      clientId      
      clientSecret  

  public static io.vertx.ext.auth.oauth2.OAuth2Auth create(io.vertx.core.Vertx, java.lang.String, java.lang.String, io.vertx.core.http.HttpClientOptions);
    descriptor: (Lio/vertx/core/Vertx;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/http/HttpClientOptions;)Lio/vertx/ext/auth/oauth2/OAuth2Auth;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.vertx.core.Vertx vertx
        start local 1 // java.lang.String clientId
        start local 2 // java.lang.String clientSecret
        start local 3 // io.vertx.core.http.HttpClientOptions httpClientOptions
         0: .line 42
            aload 0 /* vertx */
            new io.vertx.ext.auth.oauth2.OAuth2ClientOptions
            dup
            aload 3 /* httpClientOptions */
            invokespecial io.vertx.ext.auth.oauth2.OAuth2ClientOptions.<init>:(Lio/vertx/core/http/HttpClientOptions;)V
         1: .line 43
            ldc "https://accounts.google.com"
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setSite:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
         2: .line 44
            getstatic io.vertx.ext.auth.oauth2.OAuth2FlowType.AUTH_CODE:Lio/vertx/ext/auth/oauth2/OAuth2FlowType;
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setFlow:(Lio/vertx/ext/auth/oauth2/OAuth2FlowType;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
         3: .line 45
            ldc "https://www.googleapis.com/oauth2/v3/token"
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setTokenPath:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
         4: .line 46
            ldc "/o/oauth2/auth"
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setAuthorizationPath:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
         5: .line 47
            ldc "https://www.googleapis.com/oauth2/v3/tokeninfo"
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setIntrospectionPath:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
         6: .line 48
            ldc "https://www.googleapis.com/oauth2/v3/userinfo"
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setUserInfoPath:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
         7: .line 49
            ldc "https://www.googleapis.com/oauth2/v3/certs"
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setJwkPath:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
         8: .line 50
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
         9: .line 51
            ldc "alt"
            ldc "json"
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
        10: .line 50
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setUserInfoParameters:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
        11: .line 52
            ldc " "
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setScopeSeparator:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
        12: .line 53
            aload 1 /* clientId */
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setClientID:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
        13: .line 54
            aload 2 /* clientSecret */
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setClientSecret:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
        14: .line 42
            invokestatic io.vertx.ext.auth.oauth2.OAuth2Auth.create:(Lio/vertx/core/Vertx;Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;)Lio/vertx/ext/auth/oauth2/OAuth2Auth;
        15: .line 41
            areturn
        end local 3 // io.vertx.core.http.HttpClientOptions httpClientOptions
        end local 2 // java.lang.String clientSecret
        end local 1 // java.lang.String clientId
        end local 0 // io.vertx.core.Vertx vertx
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0              vertx  Lio/vertx/core/Vertx;
            0   16     1           clientId  Ljava/lang/String;
            0   16     2       clientSecret  Ljava/lang/String;
            0   16     3  httpClientOptions  Lio/vertx/core/http/HttpClientOptions;
    MethodParameters:
                   Name  Flags
      vertx              
      clientId           
      clientSecret       
      httpClientOptions  

  public static void discover(io.vertx.core.Vertx, io.vertx.ext.auth.oauth2.OAuth2ClientOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.ext.auth.oauth2.OAuth2Auth>>);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;Lio/vertx/core/Handler;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // io.vertx.core.Vertx vertx
        start local 1 // io.vertx.ext.auth.oauth2.OAuth2ClientOptions config
        start local 2 // io.vertx.core.Handler handler
         0: .line 71
            aload 1 /* config */
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.getSite:()Ljava/lang/String;
            ifnonnull 1
            ldc "https://accounts.google.com"
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 1 /* config */
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.getSite:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 3 /* site */
        start local 3 // java.lang.String site
         3: .line 74
            aload 0 /* vertx */
         4: .line 75
            new io.vertx.ext.auth.oauth2.OAuth2ClientOptions
            dup
            aload 1 /* config */
            invokespecial io.vertx.ext.auth.oauth2.OAuth2ClientOptions.<init>:(Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;)V
         5: .line 76
            aload 3 /* site */
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setSite:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
         6: .line 77
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
         7: .line 78
            ldc "alt"
            ldc "json"
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
         8: .line 77
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setUserInfoParameters:(Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
         9: .line 79
            ldc " "
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setScopeSeparator:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
        10: .line 80
            aload 2 /* handler */
        11: .line 73
            invokestatic io.vertx.ext.auth.oauth2.providers.OpenIDConnectAuth.discover:(Lio/vertx/core/Vertx;Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;Lio/vertx/core/Handler;)V
        12: .line 81
            return
        end local 3 // java.lang.String site
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.ext.auth.oauth2.OAuth2ClientOptions config
        end local 0 // io.vertx.core.Vertx vertx
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0    vertx  Lio/vertx/core/Vertx;
            0   13     1   config  Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
            0   13     2  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/auth/oauth2/OAuth2Auth;>;>;
            3   13     3     site  Ljava/lang/String;
    Signature: (Lio/vertx/core/Vertx;Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/ext/auth/oauth2/OAuth2Auth;>;>;)V
    MethodParameters:
         Name  Flags
      vertx    final
      config   final
      handler  final

  public static io.vertx.ext.auth.oauth2.OAuth2Auth create(io.vertx.core.Vertx, io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/core/json/JsonObject;)Lio/vertx/ext/auth/oauth2/OAuth2Auth;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.core.Vertx vertx
        start local 1 // io.vertx.core.json.JsonObject serviceAccountJson
         0: .line 89
            aload 0 /* vertx */
            aload 1 /* serviceAccountJson */
            new io.vertx.core.http.HttpClientOptions
            dup
            invokespecial io.vertx.core.http.HttpClientOptions.<init>:()V
            invokestatic io.vertx.ext.auth.oauth2.providers.GoogleAuth.create:(Lio/vertx/core/Vertx;Lio/vertx/core/json/JsonObject;Lio/vertx/core/http/HttpClientOptions;)Lio/vertx/ext/auth/oauth2/OAuth2Auth;
            areturn
        end local 1 // io.vertx.core.json.JsonObject serviceAccountJson
        end local 0 // io.vertx.core.Vertx vertx
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0               vertx  Lio/vertx/core/Vertx;
            0    1     1  serviceAccountJson  Lio/vertx/core/json/JsonObject;
    MethodParameters:
                    Name  Flags
      vertx               
      serviceAccountJson  

  public static io.vertx.ext.auth.oauth2.OAuth2Auth create(io.vertx.core.Vertx, io.vertx.core.json.JsonObject, io.vertx.core.http.HttpClientOptions);
    descriptor: (Lio/vertx/core/Vertx;Lio/vertx/core/json/JsonObject;Lio/vertx/core/http/HttpClientOptions;)Lio/vertx/ext/auth/oauth2/OAuth2Auth;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // io.vertx.core.Vertx vertx
        start local 1 // io.vertx.core.json.JsonObject serviceAccountJson
        start local 2 // io.vertx.core.http.HttpClientOptions httpClientOptions
         0: .line 99
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* privateKey */
        start local 3 // java.lang.StringBuilder privateKey
         1: .line 100
            aload 1 /* serviceAccountJson */
            ldc "private_key"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            ldc "\n"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 7
      StackMap locals: io.vertx.core.Vertx io.vertx.core.json.JsonObject io.vertx.core.http.HttpClientOptions java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* s */
        start local 4 // java.lang.String s
         3: .line 101
            ldc "-----BEGIN PRIVATE KEY-----"
            aload 4 /* s */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            ldc "-----END PRIVATE KEY-----"
            aload 4 /* s */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 102
            goto 6
         5: .line 104
      StackMap locals: io.vertx.core.Vertx io.vertx.core.json.JsonObject io.vertx.core.http.HttpClientOptions java.lang.StringBuilder java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 3 /* privateKey */
            aload 4 /* s */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 4 // java.lang.String s
         6: .line 100
      StackMap locals: io.vertx.core.Vertx io.vertx.core.json.JsonObject io.vertx.core.http.HttpClientOptions java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
         7: iload 5
            iload 6
            if_icmplt 2
         8: .line 108
            aload 0 /* vertx */
            new io.vertx.ext.auth.oauth2.OAuth2ClientOptions
            dup
            aload 2 /* httpClientOptions */
            invokespecial io.vertx.ext.auth.oauth2.OAuth2ClientOptions.<init>:(Lio/vertx/core/http/HttpClientOptions;)V
         9: .line 109
            getstatic io.vertx.ext.auth.oauth2.OAuth2FlowType.AUTH_JWT:Lio/vertx/ext/auth/oauth2/OAuth2FlowType;
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setFlow:(Lio/vertx/ext/auth/oauth2/OAuth2FlowType;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
        10: .line 110
            aload 1 /* serviceAccountJson */
            ldc "client_id"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setClientID:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
        11: .line 111
            ldc "https://accounts.google.com"
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setSite:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
        12: .line 112
            aload 1 /* serviceAccountJson */
            ldc "token_uri"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setTokenPath:(Ljava/lang/String;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
        13: .line 113
            new io.vertx.ext.auth.PubSecKeyOptions
            dup
            invokespecial io.vertx.ext.auth.PubSecKeyOptions.<init>:()V
        14: .line 114
            ldc "RS256"
            invokevirtual io.vertx.ext.auth.PubSecKeyOptions.setAlgorithm:(Ljava/lang/String;)Lio/vertx/ext/auth/PubSecKeyOptions;
        15: .line 115
            aload 3 /* privateKey */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.ext.auth.PubSecKeyOptions.setSecretKey:(Ljava/lang/String;)Lio/vertx/ext/auth/PubSecKeyOptions;
        16: .line 113
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.addPubSecKey:(Lio/vertx/ext/auth/PubSecKeyOptions;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
        17: .line 116
            new io.vertx.ext.jwt.JWTOptions
            dup
            invokespecial io.vertx.ext.jwt.JWTOptions.<init>:()V
        18: .line 117
            ldc "RS256"
            invokevirtual io.vertx.ext.jwt.JWTOptions.setAlgorithm:(Ljava/lang/String;)Lio/vertx/ext/jwt/JWTOptions;
        19: .line 118
            bipush 60
            invokevirtual io.vertx.ext.jwt.JWTOptions.setExpiresInMinutes:(I)Lio/vertx/ext/jwt/JWTOptions;
        20: .line 119
            aload 1 /* serviceAccountJson */
            ldc "token_uri"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.vertx.ext.jwt.JWTOptions.addAudience:(Ljava/lang/String;)Lio/vertx/ext/jwt/JWTOptions;
        21: .line 120
            aload 1 /* serviceAccountJson */
            ldc "client_email"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.vertx.ext.jwt.JWTOptions.setIssuer:(Ljava/lang/String;)Lio/vertx/ext/jwt/JWTOptions;
        22: .line 116
            invokevirtual io.vertx.ext.auth.oauth2.OAuth2ClientOptions.setJWTOptions:(Lio/vertx/ext/jwt/JWTOptions;)Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;
        23: .line 108
            invokestatic io.vertx.ext.auth.oauth2.OAuth2Auth.create:(Lio/vertx/core/Vertx;Lio/vertx/ext/auth/oauth2/OAuth2ClientOptions;)Lio/vertx/ext/auth/oauth2/OAuth2Auth;
        24: .line 107
            areturn
        end local 3 // java.lang.StringBuilder privateKey
        end local 2 // io.vertx.core.http.HttpClientOptions httpClientOptions
        end local 1 // io.vertx.core.json.JsonObject serviceAccountJson
        end local 0 // io.vertx.core.Vertx vertx
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   25     0               vertx  Lio/vertx/core/Vertx;
            0   25     1  serviceAccountJson  Lio/vertx/core/json/JsonObject;
            0   25     2   httpClientOptions  Lio/vertx/core/http/HttpClientOptions;
            1   25     3          privateKey  Ljava/lang/StringBuilder;
            3    6     4                   s  Ljava/lang/String;
    MethodParameters:
                    Name  Flags
      vertx               
      serviceAccountJson  
      httpClientOptions   
}
SourceFile: "GoogleAuth.java"
    RuntimeVisibleAnnotations: 
      io.vertx.codegen.annotations.VertxGen()