// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/api/auth.proto

package com.google.api;

/**
 * <pre>
 * Authentication rules for the service.
 * By default, if a method has any authentication requirements, every request
 * must include a valid credential matching one of the requirements.
 * It's an error to include more than one kind of credential in a single
 * request.
 * If a method doesn't have any auth requirements, request credentials will be
 * ignored.
 * </pre>
 *
 * Protobuf type {@code google.api.AuthenticationRule}
 */
public  final class AuthenticationRule extends
    com.google.protobuf.GeneratedMessageLite<
        AuthenticationRule, AuthenticationRule.Builder> implements
    // @@protoc_insertion_point(message_implements:google.api.AuthenticationRule)
    AuthenticationRuleOrBuilder {
  private AuthenticationRule() {
    selector_ = "";
    requirements_ = emptyProtobufList();
  }
  public static final int SELECTOR_FIELD_NUMBER = 1;
  private java.lang.String selector_;
  /**
   * <pre>
   * Selects the methods to which this rule applies.
   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
   * </pre>
   *
   * <code>string selector = 1;</code>
   * @return The selector.
   */
  @java.lang.Override
  public java.lang.String getSelector() {
    return selector_;
  }
  /**
   * <pre>
   * Selects the methods to which this rule applies.
   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
   * </pre>
   *
   * <code>string selector = 1;</code>
   * @return The bytes for selector.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString
      getSelectorBytes() {
    return com.google.protobuf.ByteString.copyFromUtf8(selector_);
  }
  /**
   * <pre>
   * Selects the methods to which this rule applies.
   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
   * </pre>
   *
   * <code>string selector = 1;</code>
   * @param value The selector to set.
   */
  private void setSelector(
      java.lang.String value) {
    value.getClass();
  
    selector_ = value;
  }
  /**
   * <pre>
   * Selects the methods to which this rule applies.
   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
   * </pre>
   *
   * <code>string selector = 1;</code>
   */
  private void clearSelector() {
    
    selector_ = getDefaultInstance().getSelector();
  }
  /**
   * <pre>
   * Selects the methods to which this rule applies.
   * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
   * </pre>
   *
   * <code>string selector = 1;</code>
   * @param value The bytes for selector to set.
   */
  private void setSelectorBytes(
      com.google.protobuf.ByteString value) {
    checkByteStringIsUtf8(value);
    selector_ = value.toStringUtf8();
    
  }

  public static final int OAUTH_FIELD_NUMBER = 2;
  private com.google.api.OAuthRequirements oauth_;
  /**
   * <pre>
   * The requirements for OAuth credentials.
   * </pre>
   *
   * <code>.google.api.OAuthRequirements oauth = 2;</code>
   */
  @java.lang.Override
  public boolean hasOauth() {
    return oauth_ != null;
  }
  /**
   * <pre>
   * The requirements for OAuth credentials.
   * </pre>
   *
   * <code>.google.api.OAuthRequirements oauth = 2;</code>
   */
  @java.lang.Override
  public com.google.api.OAuthRequirements getOauth() {
    return oauth_ == null ? com.google.api.OAuthRequirements.getDefaultInstance() : oauth_;
  }
  /**
   * <pre>
   * The requirements for OAuth credentials.
   * </pre>
   *
   * <code>.google.api.OAuthRequirements oauth = 2;</code>
   */
  private void setOauth(com.google.api.OAuthRequirements value) {
    value.getClass();
  oauth_ = value;
    
    }
  /**
   * <pre>
   * The requirements for OAuth credentials.
   * </pre>
   *
   * <code>.google.api.OAuthRequirements oauth = 2;</code>
   */
  @java.lang.SuppressWarnings({"ReferenceEquality"})
  private void mergeOauth(com.google.api.OAuthRequirements value) {
    value.getClass();
  if (oauth_ != null &&
        oauth_ != com.google.api.OAuthRequirements.getDefaultInstance()) {
      oauth_ =
        com.google.api.OAuthRequirements.newBuilder(oauth_).mergeFrom(value).buildPartial();
    } else {
      oauth_ = value;
    }
    
  }
  /**
   * <pre>
   * The requirements for OAuth credentials.
   * </pre>
   *
   * <code>.google.api.OAuthRequirements oauth = 2;</code>
   */
  private void clearOauth() {  oauth_ = null;
    
  }

  public static final int ALLOW_WITHOUT_CREDENTIAL_FIELD_NUMBER = 5;
  private boolean allowWithoutCredential_;
  /**
   * <pre>
   * If true, the service accepts API keys without any other credential.
   * This flag only applies to HTTP and gRPC requests.
   * </pre>
   *
   * <code>bool allow_without_credential = 5;</code>
   * @return The allowWithoutCredential.
   */
  @java.lang.Override
  public boolean getAllowWithoutCredential() {
    return allowWithoutCredential_;
  }
  /**
   * <pre>
   * If true, the service accepts API keys without any other credential.
   * This flag only applies to HTTP and gRPC requests.
   * </pre>
   *
   * <code>bool allow_without_credential = 5;</code>
   * @param value The allowWithoutCredential to set.
   */
  private void setAllowWithoutCredential(boolean value) {
    
    allowWithoutCredential_ = value;
  }
  /**
   * <pre>
   * If true, the service accepts API keys without any other credential.
   * This flag only applies to HTTP and gRPC requests.
   * </pre>
   *
   * <code>bool allow_without_credential = 5;</code>
   */
  private void clearAllowWithoutCredential() {
    
    allowWithoutCredential_ = false;
  }

  public static final int REQUIREMENTS_FIELD_NUMBER = 7;
  private com.google.protobuf.Internal.ProtobufList<com.google.api.AuthRequirement> requirements_;
  /**
   * <pre>
   * Requirements for additional authentication providers.
   * </pre>
   *
   * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
   */
  @java.lang.Override
  public java.util.List<com.google.api.AuthRequirement> getRequirementsList() {
    return requirements_;
  }
  /**
   * <pre>
   * Requirements for additional authentication providers.
   * </pre>
   *
   * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
   */
  public java.util.List<? extends com.google.api.AuthRequirementOrBuilder> 
      getRequirementsOrBuilderList() {
    return requirements_;
  }
  /**
   * <pre>
   * Requirements for additional authentication providers.
   * </pre>
   *
   * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
   */
  @java.lang.Override
  public int getRequirementsCount() {
    return requirements_.size();
  }
  /**
   * <pre>
   * Requirements for additional authentication providers.
   * </pre>
   *
   * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
   */
  @java.lang.Override
  public com.google.api.AuthRequirement getRequirements(int index) {
    return requirements_.get(index);
  }
  /**
   * <pre>
   * Requirements for additional authentication providers.
   * </pre>
   *
   * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
   */
  public com.google.api.AuthRequirementOrBuilder getRequirementsOrBuilder(
      int index) {
    return requirements_.get(index);
  }
  private void ensureRequirementsIsMutable() {
    com.google.protobuf.Internal.ProtobufList<com.google.api.AuthRequirement> tmp = requirements_;
    if (!tmp.isModifiable()) {
      requirements_ =
          com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
     }
  }

  /**
   * <pre>
   * Requirements for additional authentication providers.
   * </pre>
   *
   * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
   */
  private void setRequirements(
      int index, com.google.api.AuthRequirement value) {
    value.getClass();
  ensureRequirementsIsMutable();
    requirements_.set(index, value);
  }
  /**
   * <pre>
   * Requirements for additional authentication providers.
   * </pre>
   *
   * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
   */
  private void addRequirements(com.google.api.AuthRequirement value) {
    value.getClass();
  ensureRequirementsIsMutable();
    requirements_.add(value);
  }
  /**
   * <pre>
   * Requirements for additional authentication providers.
   * </pre>
   *
   * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
   */
  private void addRequirements(
      int index, com.google.api.AuthRequirement value) {
    value.getClass();
  ensureRequirementsIsMutable();
    requirements_.add(index, value);
  }
  /**
   * <pre>
   * Requirements for additional authentication providers.
   * </pre>
   *
   * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
   */
  private void addAllRequirements(
      java.lang.Iterable<? extends com.google.api.AuthRequirement> values) {
    ensureRequirementsIsMutable();
    com.google.protobuf.AbstractMessageLite.addAll(
        values, requirements_);
  }
  /**
   * <pre>
   * Requirements for additional authentication providers.
   * </pre>
   *
   * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
   */
  private void clearRequirements() {
    requirements_ = emptyProtobufList();
  }
  /**
   * <pre>
   * Requirements for additional authentication providers.
   * </pre>
   *
   * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
   */
  private void removeRequirements(int index) {
    ensureRequirementsIsMutable();
    requirements_.remove(index);
  }

  public static com.google.api.AuthenticationRule parseFrom(
      java.nio.ByteBuffer data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return com.google.protobuf.GeneratedMessageLite.parseFrom(
        DEFAULT_INSTANCE, data);
  }
  public static com.google.api.AuthenticationRule parseFrom(
      java.nio.ByteBuffer data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return com.google.protobuf.GeneratedMessageLite.parseFrom(
        DEFAULT_INSTANCE, data, extensionRegistry);
  }
  public static com.google.api.AuthenticationRule parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return com.google.protobuf.GeneratedMessageLite.parseFrom(
        DEFAULT_INSTANCE, data);
  }
  public static com.google.api.AuthenticationRule parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return com.google.protobuf.GeneratedMessageLite.parseFrom(
        DEFAULT_INSTANCE, data, extensionRegistry);
  }
  public static com.google.api.AuthenticationRule parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return com.google.protobuf.GeneratedMessageLite.parseFrom(
        DEFAULT_INSTANCE, data);
  }
  public static com.google.api.AuthenticationRule parseFrom(
      byte[] data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return com.google.protobuf.GeneratedMessageLite.parseFrom(
        DEFAULT_INSTANCE, data, extensionRegistry);
  }
  public static com.google.api.AuthenticationRule parseFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageLite.parseFrom(
        DEFAULT_INSTANCE, input);
  }
  public static com.google.api.AuthenticationRule parseFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageLite.parseFrom(
        DEFAULT_INSTANCE, input, extensionRegistry);
  }
  public static com.google.api.AuthenticationRule parseDelimitedFrom(java.io.InputStream input)
      throws java.io.IOException {
    return parseDelimitedFrom(DEFAULT_INSTANCE, input);
  }
  public static com.google.api.AuthenticationRule parseDelimitedFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
  }
  public static com.google.api.AuthenticationRule parseFrom(
      com.google.protobuf.CodedInputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageLite.parseFrom(
        DEFAULT_INSTANCE, input);
  }
  public static com.google.api.AuthenticationRule parseFrom(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageLite.parseFrom(
        DEFAULT_INSTANCE, input, extensionRegistry);
  }

  public static Builder newBuilder() {
    return (Builder) DEFAULT_INSTANCE.createBuilder();
  }
  public static Builder newBuilder(com.google.api.AuthenticationRule prototype) {
    return (Builder) DEFAULT_INSTANCE.createBuilder(prototype);
  }

  /**
   * <pre>
   * Authentication rules for the service.
   * By default, if a method has any authentication requirements, every request
   * must include a valid credential matching one of the requirements.
   * It's an error to include more than one kind of credential in a single
   * request.
   * If a method doesn't have any auth requirements, request credentials will be
   * ignored.
   * </pre>
   *
   * Protobuf type {@code google.api.AuthenticationRule}
   */
  public static final class Builder extends
      com.google.protobuf.GeneratedMessageLite.Builder<
        com.google.api.AuthenticationRule, Builder> implements
      // @@protoc_insertion_point(builder_implements:google.api.AuthenticationRule)
      com.google.api.AuthenticationRuleOrBuilder {
    // Construct using com.google.api.AuthenticationRule.newBuilder()
    private Builder() {
      super(DEFAULT_INSTANCE);
    }


    /**
     * <pre>
     * Selects the methods to which this rule applies.
     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
     * </pre>
     *
     * <code>string selector = 1;</code>
     * @return The selector.
     */
    @java.lang.Override
    public java.lang.String getSelector() {
      return instance.getSelector();
    }
    /**
     * <pre>
     * Selects the methods to which this rule applies.
     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
     * </pre>
     *
     * <code>string selector = 1;</code>
     * @return The bytes for selector.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSelectorBytes() {
      return instance.getSelectorBytes();
    }
    /**
     * <pre>
     * Selects the methods to which this rule applies.
     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
     * </pre>
     *
     * <code>string selector = 1;</code>
     * @param value The selector to set.
     * @return This builder for chaining.
     */
    public Builder setSelector(
        java.lang.String value) {
      copyOnWrite();
      instance.setSelector(value);
      return this;
    }
    /**
     * <pre>
     * Selects the methods to which this rule applies.
     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
     * </pre>
     *
     * <code>string selector = 1;</code>
     * @return This builder for chaining.
     */
    public Builder clearSelector() {
      copyOnWrite();
      instance.clearSelector();
      return this;
    }
    /**
     * <pre>
     * Selects the methods to which this rule applies.
     * Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
     * </pre>
     *
     * <code>string selector = 1;</code>
     * @param value The bytes for selector to set.
     * @return This builder for chaining.
     */
    public Builder setSelectorBytes(
        com.google.protobuf.ByteString value) {
      copyOnWrite();
      instance.setSelectorBytes(value);
      return this;
    }

    /**
     * <pre>
     * The requirements for OAuth credentials.
     * </pre>
     *
     * <code>.google.api.OAuthRequirements oauth = 2;</code>
     */
    @java.lang.Override
    public boolean hasOauth() {
      return instance.hasOauth();
    }
    /**
     * <pre>
     * The requirements for OAuth credentials.
     * </pre>
     *
     * <code>.google.api.OAuthRequirements oauth = 2;</code>
     */
    @java.lang.Override
    public com.google.api.OAuthRequirements getOauth() {
      return instance.getOauth();
    }
    /**
     * <pre>
     * The requirements for OAuth credentials.
     * </pre>
     *
     * <code>.google.api.OAuthRequirements oauth = 2;</code>
     */
    public Builder setOauth(com.google.api.OAuthRequirements value) {
      copyOnWrite();
      instance.setOauth(value);
      return this;
      }
    /**
     * <pre>
     * The requirements for OAuth credentials.
     * </pre>
     *
     * <code>.google.api.OAuthRequirements oauth = 2;</code>
     */
    public Builder setOauth(
        com.google.api.OAuthRequirements.Builder builderForValue) {
      copyOnWrite();
      instance.setOauth(builderForValue.build());
      return this;
    }
    /**
     * <pre>
     * The requirements for OAuth credentials.
     * </pre>
     *
     * <code>.google.api.OAuthRequirements oauth = 2;</code>
     */
    public Builder mergeOauth(com.google.api.OAuthRequirements value) {
      copyOnWrite();
      instance.mergeOauth(value);
      return this;
    }
    /**
     * <pre>
     * The requirements for OAuth credentials.
     * </pre>
     *
     * <code>.google.api.OAuthRequirements oauth = 2;</code>
     */
    public Builder clearOauth() {  copyOnWrite();
      instance.clearOauth();
      return this;
    }

    /**
     * <pre>
     * If true, the service accepts API keys without any other credential.
     * This flag only applies to HTTP and gRPC requests.
     * </pre>
     *
     * <code>bool allow_without_credential = 5;</code>
     * @return The allowWithoutCredential.
     */
    @java.lang.Override
    public boolean getAllowWithoutCredential() {
      return instance.getAllowWithoutCredential();
    }
    /**
     * <pre>
     * If true, the service accepts API keys without any other credential.
     * This flag only applies to HTTP and gRPC requests.
     * </pre>
     *
     * <code>bool allow_without_credential = 5;</code>
     * @param value The allowWithoutCredential to set.
     * @return This builder for chaining.
     */
    public Builder setAllowWithoutCredential(boolean value) {
      copyOnWrite();
      instance.setAllowWithoutCredential(value);
      return this;
    }
    /**
     * <pre>
     * If true, the service accepts API keys without any other credential.
     * This flag only applies to HTTP and gRPC requests.
     * </pre>
     *
     * <code>bool allow_without_credential = 5;</code>
     * @return This builder for chaining.
     */
    public Builder clearAllowWithoutCredential() {
      copyOnWrite();
      instance.clearAllowWithoutCredential();
      return this;
    }

    /**
     * <pre>
     * Requirements for additional authentication providers.
     * </pre>
     *
     * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
     */
    @java.lang.Override
    public java.util.List<com.google.api.AuthRequirement> getRequirementsList() {
      return java.util.Collections.unmodifiableList(
          instance.getRequirementsList());
    }
    /**
     * <pre>
     * Requirements for additional authentication providers.
     * </pre>
     *
     * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
     */
    @java.lang.Override
    public int getRequirementsCount() {
      return instance.getRequirementsCount();
    }/**
     * <pre>
     * Requirements for additional authentication providers.
     * </pre>
     *
     * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
     */
    @java.lang.Override
    public com.google.api.AuthRequirement getRequirements(int index) {
      return instance.getRequirements(index);
    }
    /**
     * <pre>
     * Requirements for additional authentication providers.
     * </pre>
     *
     * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
     */
    public Builder setRequirements(
        int index, com.google.api.AuthRequirement value) {
      copyOnWrite();
      instance.setRequirements(index, value);
      return this;
    }
    /**
     * <pre>
     * Requirements for additional authentication providers.
     * </pre>
     *
     * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
     */
    public Builder setRequirements(
        int index, com.google.api.AuthRequirement.Builder builderForValue) {
      copyOnWrite();
      instance.setRequirements(index,
          builderForValue.build());
      return this;
    }
    /**
     * <pre>
     * Requirements for additional authentication providers.
     * </pre>
     *
     * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
     */
    public Builder addRequirements(com.google.api.AuthRequirement value) {
      copyOnWrite();
      instance.addRequirements(value);
      return this;
    }
    /**
     * <pre>
     * Requirements for additional authentication providers.
     * </pre>
     *
     * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
     */
    public Builder addRequirements(
        int index, com.google.api.AuthRequirement value) {
      copyOnWrite();
      instance.addRequirements(index, value);
      return this;
    }
    /**
     * <pre>
     * Requirements for additional authentication providers.
     * </pre>
     *
     * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
     */
    public Builder addRequirements(
        com.google.api.AuthRequirement.Builder builderForValue) {
      copyOnWrite();
      instance.addRequirements(builderForValue.build());
      return this;
    }
    /**
     * <pre>
     * Requirements for additional authentication providers.
     * </pre>
     *
     * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
     */
    public Builder addRequirements(
        int index, com.google.api.AuthRequirement.Builder builderForValue) {
      copyOnWrite();
      instance.addRequirements(index,
          builderForValue.build());
      return this;
    }
    /**
     * <pre>
     * Requirements for additional authentication providers.
     * </pre>
     *
     * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
     */
    public Builder addAllRequirements(
        java.lang.Iterable<? extends com.google.api.AuthRequirement> values) {
      copyOnWrite();
      instance.addAllRequirements(values);
      return this;
    }
    /**
     * <pre>
     * Requirements for additional authentication providers.
     * </pre>
     *
     * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
     */
    public Builder clearRequirements() {
      copyOnWrite();
      instance.clearRequirements();
      return this;
    }
    /**
     * <pre>
     * Requirements for additional authentication providers.
     * </pre>
     *
     * <code>repeated .google.api.AuthRequirement requirements = 7;</code>
     */
    public Builder removeRequirements(int index) {
      copyOnWrite();
      instance.removeRequirements(index);
      return this;
    }

    // @@protoc_insertion_point(builder_scope:google.api.AuthenticationRule)
  }
  @java.lang.Override
  @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
  protected final java.lang.Object dynamicMethod(
      com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
      java.lang.Object arg0, java.lang.Object arg1) {
    switch (method) {
      case NEW_MUTABLE_INSTANCE: {
        return new com.google.api.AuthenticationRule();
      }
      case NEW_BUILDER: {
        return new Builder();
      }
      case BUILD_MESSAGE_INFO: {
          java.lang.Object[] objects = new java.lang.Object[] {
            "selector_",
            "oauth_",
            "allowWithoutCredential_",
            "requirements_",
            com.google.api.AuthRequirement.class,
          };
          java.lang.String info =
              "\u0000\u0004\u0000\u0000\u0001\u0007\u0004\u0000\u0001\u0000\u0001\u0208\u0002\t" +
              "\u0005\u0007\u0007\u001b";
          return newMessageInfo(DEFAULT_INSTANCE, info, objects);
      }
      // fall through
      case GET_DEFAULT_INSTANCE: {
        return DEFAULT_INSTANCE;
      }
      case GET_PARSER: {
        com.google.protobuf.Parser<com.google.api.AuthenticationRule> parser = PARSER;
        if (parser == null) {
          synchronized (com.google.api.AuthenticationRule.class) {
            parser = PARSER;
            if (parser == null) {
              parser =
                  new DefaultInstanceBasedParser<com.google.api.AuthenticationRule>(
                      DEFAULT_INSTANCE);
              PARSER = parser;
            }
          }
        }
        return parser;
    }
    case GET_MEMOIZED_IS_INITIALIZED: {
      return (byte) 1;
    }
    case SET_MEMOIZED_IS_INITIALIZED: {
      return null;
    }
    }
    throw new UnsupportedOperationException();
  }


  // @@protoc_insertion_point(class_scope:google.api.AuthenticationRule)
  private static final com.google.api.AuthenticationRule DEFAULT_INSTANCE;
  static {
    AuthenticationRule defaultInstance = new AuthenticationRule();
    // New instances are implicitly immutable so no need to make
    // immutable.
    DEFAULT_INSTANCE = defaultInstance;
    com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
      AuthenticationRule.class, defaultInstance);
  }

  public static com.google.api.AuthenticationRule getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static volatile com.google.protobuf.Parser<AuthenticationRule> PARSER;

  public static com.google.protobuf.Parser<AuthenticationRule> parser() {
    return DEFAULT_INSTANCE.getParserForType();
  }
}

