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

#ifndef PROTOBUF_INCLUDED_google_2fapi_2fauth_2eproto
#define PROTOBUF_INCLUDED_google_2fapi_2fauth_2eproto

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 3006001
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/unknown_field_set.h>
#include "google/api/annotations.pb.h"
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fapi_2fauth_2eproto 

namespace protobuf_google_2fapi_2fauth_2eproto {
// Internal implementation detail -- do not use these members.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[5];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors();
}  // namespace protobuf_google_2fapi_2fauth_2eproto
namespace google {
namespace api {
class AuthProvider;
class AuthProviderDefaultTypeInternal;
extern AuthProviderDefaultTypeInternal _AuthProvider_default_instance_;
class AuthRequirement;
class AuthRequirementDefaultTypeInternal;
extern AuthRequirementDefaultTypeInternal _AuthRequirement_default_instance_;
class Authentication;
class AuthenticationDefaultTypeInternal;
extern AuthenticationDefaultTypeInternal _Authentication_default_instance_;
class AuthenticationRule;
class AuthenticationRuleDefaultTypeInternal;
extern AuthenticationRuleDefaultTypeInternal _AuthenticationRule_default_instance_;
class OAuthRequirements;
class OAuthRequirementsDefaultTypeInternal;
extern OAuthRequirementsDefaultTypeInternal _OAuthRequirements_default_instance_;
}  // namespace api
}  // namespace google
namespace google {
namespace protobuf {
template<> ::google::api::AuthProvider* Arena::CreateMaybeMessage<::google::api::AuthProvider>(Arena*);
template<> ::google::api::AuthRequirement* Arena::CreateMaybeMessage<::google::api::AuthRequirement>(Arena*);
template<> ::google::api::Authentication* Arena::CreateMaybeMessage<::google::api::Authentication>(Arena*);
template<> ::google::api::AuthenticationRule* Arena::CreateMaybeMessage<::google::api::AuthenticationRule>(Arena*);
template<> ::google::api::OAuthRequirements* Arena::CreateMaybeMessage<::google::api::OAuthRequirements>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace google {
namespace api {

// ===================================================================

class Authentication : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.api.Authentication) */ {
 public:
  Authentication();
  virtual ~Authentication();

  Authentication(const Authentication& from);

  inline Authentication& operator=(const Authentication& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  Authentication(Authentication&& from) noexcept
    : Authentication() {
    *this = ::std::move(from);
  }

  inline Authentication& operator=(Authentication&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const Authentication& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const Authentication* internal_default_instance() {
    return reinterpret_cast<const Authentication*>(
               &_Authentication_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  void Swap(Authentication* other);
  friend void swap(Authentication& a, Authentication& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline Authentication* New() const final {
    return CreateMaybeMessage<Authentication>(NULL);
  }

  Authentication* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<Authentication>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const Authentication& from);
  void MergeFrom(const Authentication& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(Authentication* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated .google.api.AuthenticationRule rules = 3;
  int rules_size() const;
  void clear_rules();
  static const int kRulesFieldNumber = 3;
  ::google::api::AuthenticationRule* mutable_rules(int index);
  ::google::protobuf::RepeatedPtrField< ::google::api::AuthenticationRule >*
      mutable_rules();
  const ::google::api::AuthenticationRule& rules(int index) const;
  ::google::api::AuthenticationRule* add_rules();
  const ::google::protobuf::RepeatedPtrField< ::google::api::AuthenticationRule >&
      rules() const;

  // repeated .google.api.AuthProvider providers = 4;
  int providers_size() const;
  void clear_providers();
  static const int kProvidersFieldNumber = 4;
  ::google::api::AuthProvider* mutable_providers(int index);
  ::google::protobuf::RepeatedPtrField< ::google::api::AuthProvider >*
      mutable_providers();
  const ::google::api::AuthProvider& providers(int index) const;
  ::google::api::AuthProvider* add_providers();
  const ::google::protobuf::RepeatedPtrField< ::google::api::AuthProvider >&
      providers() const;

  // @@protoc_insertion_point(class_scope:google.api.Authentication)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::google::api::AuthenticationRule > rules_;
  ::google::protobuf::RepeatedPtrField< ::google::api::AuthProvider > providers_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fapi_2fauth_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class AuthenticationRule : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.api.AuthenticationRule) */ {
 public:
  AuthenticationRule();
  virtual ~AuthenticationRule();

  AuthenticationRule(const AuthenticationRule& from);

  inline AuthenticationRule& operator=(const AuthenticationRule& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  AuthenticationRule(AuthenticationRule&& from) noexcept
    : AuthenticationRule() {
    *this = ::std::move(from);
  }

  inline AuthenticationRule& operator=(AuthenticationRule&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const AuthenticationRule& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AuthenticationRule* internal_default_instance() {
    return reinterpret_cast<const AuthenticationRule*>(
               &_AuthenticationRule_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  void Swap(AuthenticationRule* other);
  friend void swap(AuthenticationRule& a, AuthenticationRule& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline AuthenticationRule* New() const final {
    return CreateMaybeMessage<AuthenticationRule>(NULL);
  }

  AuthenticationRule* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<AuthenticationRule>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const AuthenticationRule& from);
  void MergeFrom(const AuthenticationRule& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AuthenticationRule* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated .google.api.AuthRequirement requirements = 7;
  int requirements_size() const;
  void clear_requirements();
  static const int kRequirementsFieldNumber = 7;
  ::google::api::AuthRequirement* mutable_requirements(int index);
  ::google::protobuf::RepeatedPtrField< ::google::api::AuthRequirement >*
      mutable_requirements();
  const ::google::api::AuthRequirement& requirements(int index) const;
  ::google::api::AuthRequirement* add_requirements();
  const ::google::protobuf::RepeatedPtrField< ::google::api::AuthRequirement >&
      requirements() const;

  // string selector = 1;
  void clear_selector();
  static const int kSelectorFieldNumber = 1;
  const ::std::string& selector() const;
  void set_selector(const ::std::string& value);
  #if LANG_CXX11
  void set_selector(::std::string&& value);
  #endif
  void set_selector(const char* value);
  void set_selector(const char* value, size_t size);
  ::std::string* mutable_selector();
  ::std::string* release_selector();
  void set_allocated_selector(::std::string* selector);

  // .google.api.OAuthRequirements oauth = 2;
  bool has_oauth() const;
  void clear_oauth();
  static const int kOauthFieldNumber = 2;
  private:
  const ::google::api::OAuthRequirements& _internal_oauth() const;
  public:
  const ::google::api::OAuthRequirements& oauth() const;
  ::google::api::OAuthRequirements* release_oauth();
  ::google::api::OAuthRequirements* mutable_oauth();
  void set_allocated_oauth(::google::api::OAuthRequirements* oauth);

  // bool allow_without_credential = 5;
  void clear_allow_without_credential();
  static const int kAllowWithoutCredentialFieldNumber = 5;
  bool allow_without_credential() const;
  void set_allow_without_credential(bool value);

  // @@protoc_insertion_point(class_scope:google.api.AuthenticationRule)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::RepeatedPtrField< ::google::api::AuthRequirement > requirements_;
  ::google::protobuf::internal::ArenaStringPtr selector_;
  ::google::api::OAuthRequirements* oauth_;
  bool allow_without_credential_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fapi_2fauth_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class AuthProvider : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.api.AuthProvider) */ {
 public:
  AuthProvider();
  virtual ~AuthProvider();

  AuthProvider(const AuthProvider& from);

  inline AuthProvider& operator=(const AuthProvider& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  AuthProvider(AuthProvider&& from) noexcept
    : AuthProvider() {
    *this = ::std::move(from);
  }

  inline AuthProvider& operator=(AuthProvider&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const AuthProvider& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AuthProvider* internal_default_instance() {
    return reinterpret_cast<const AuthProvider*>(
               &_AuthProvider_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  void Swap(AuthProvider* other);
  friend void swap(AuthProvider& a, AuthProvider& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline AuthProvider* New() const final {
    return CreateMaybeMessage<AuthProvider>(NULL);
  }

  AuthProvider* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<AuthProvider>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const AuthProvider& from);
  void MergeFrom(const AuthProvider& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AuthProvider* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // string id = 1;
  void clear_id();
  static const int kIdFieldNumber = 1;
  const ::std::string& id() const;
  void set_id(const ::std::string& value);
  #if LANG_CXX11
  void set_id(::std::string&& value);
  #endif
  void set_id(const char* value);
  void set_id(const char* value, size_t size);
  ::std::string* mutable_id();
  ::std::string* release_id();
  void set_allocated_id(::std::string* id);

  // string issuer = 2;
  void clear_issuer();
  static const int kIssuerFieldNumber = 2;
  const ::std::string& issuer() const;
  void set_issuer(const ::std::string& value);
  #if LANG_CXX11
  void set_issuer(::std::string&& value);
  #endif
  void set_issuer(const char* value);
  void set_issuer(const char* value, size_t size);
  ::std::string* mutable_issuer();
  ::std::string* release_issuer();
  void set_allocated_issuer(::std::string* issuer);

  // string jwks_uri = 3;
  void clear_jwks_uri();
  static const int kJwksUriFieldNumber = 3;
  const ::std::string& jwks_uri() const;
  void set_jwks_uri(const ::std::string& value);
  #if LANG_CXX11
  void set_jwks_uri(::std::string&& value);
  #endif
  void set_jwks_uri(const char* value);
  void set_jwks_uri(const char* value, size_t size);
  ::std::string* mutable_jwks_uri();
  ::std::string* release_jwks_uri();
  void set_allocated_jwks_uri(::std::string* jwks_uri);

  // string audiences = 4;
  void clear_audiences();
  static const int kAudiencesFieldNumber = 4;
  const ::std::string& audiences() const;
  void set_audiences(const ::std::string& value);
  #if LANG_CXX11
  void set_audiences(::std::string&& value);
  #endif
  void set_audiences(const char* value);
  void set_audiences(const char* value, size_t size);
  ::std::string* mutable_audiences();
  ::std::string* release_audiences();
  void set_allocated_audiences(::std::string* audiences);

  // string authorization_url = 5;
  void clear_authorization_url();
  static const int kAuthorizationUrlFieldNumber = 5;
  const ::std::string& authorization_url() const;
  void set_authorization_url(const ::std::string& value);
  #if LANG_CXX11
  void set_authorization_url(::std::string&& value);
  #endif
  void set_authorization_url(const char* value);
  void set_authorization_url(const char* value, size_t size);
  ::std::string* mutable_authorization_url();
  ::std::string* release_authorization_url();
  void set_allocated_authorization_url(::std::string* authorization_url);

  // @@protoc_insertion_point(class_scope:google.api.AuthProvider)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr id_;
  ::google::protobuf::internal::ArenaStringPtr issuer_;
  ::google::protobuf::internal::ArenaStringPtr jwks_uri_;
  ::google::protobuf::internal::ArenaStringPtr audiences_;
  ::google::protobuf::internal::ArenaStringPtr authorization_url_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fapi_2fauth_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class OAuthRequirements : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.api.OAuthRequirements) */ {
 public:
  OAuthRequirements();
  virtual ~OAuthRequirements();

  OAuthRequirements(const OAuthRequirements& from);

  inline OAuthRequirements& operator=(const OAuthRequirements& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  OAuthRequirements(OAuthRequirements&& from) noexcept
    : OAuthRequirements() {
    *this = ::std::move(from);
  }

  inline OAuthRequirements& operator=(OAuthRequirements&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const OAuthRequirements& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OAuthRequirements* internal_default_instance() {
    return reinterpret_cast<const OAuthRequirements*>(
               &_OAuthRequirements_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  void Swap(OAuthRequirements* other);
  friend void swap(OAuthRequirements& a, OAuthRequirements& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline OAuthRequirements* New() const final {
    return CreateMaybeMessage<OAuthRequirements>(NULL);
  }

  OAuthRequirements* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<OAuthRequirements>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const OAuthRequirements& from);
  void MergeFrom(const OAuthRequirements& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(OAuthRequirements* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // string canonical_scopes = 1;
  void clear_canonical_scopes();
  static const int kCanonicalScopesFieldNumber = 1;
  const ::std::string& canonical_scopes() const;
  void set_canonical_scopes(const ::std::string& value);
  #if LANG_CXX11
  void set_canonical_scopes(::std::string&& value);
  #endif
  void set_canonical_scopes(const char* value);
  void set_canonical_scopes(const char* value, size_t size);
  ::std::string* mutable_canonical_scopes();
  ::std::string* release_canonical_scopes();
  void set_allocated_canonical_scopes(::std::string* canonical_scopes);

  // @@protoc_insertion_point(class_scope:google.api.OAuthRequirements)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr canonical_scopes_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fapi_2fauth_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class AuthRequirement : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:google.api.AuthRequirement) */ {
 public:
  AuthRequirement();
  virtual ~AuthRequirement();

  AuthRequirement(const AuthRequirement& from);

  inline AuthRequirement& operator=(const AuthRequirement& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  AuthRequirement(AuthRequirement&& from) noexcept
    : AuthRequirement() {
    *this = ::std::move(from);
  }

  inline AuthRequirement& operator=(AuthRequirement&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const AuthRequirement& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const AuthRequirement* internal_default_instance() {
    return reinterpret_cast<const AuthRequirement*>(
               &_AuthRequirement_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  void Swap(AuthRequirement* other);
  friend void swap(AuthRequirement& a, AuthRequirement& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline AuthRequirement* New() const final {
    return CreateMaybeMessage<AuthRequirement>(NULL);
  }

  AuthRequirement* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<AuthRequirement>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const AuthRequirement& from);
  void MergeFrom(const AuthRequirement& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(AuthRequirement* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // string provider_id = 1;
  void clear_provider_id();
  static const int kProviderIdFieldNumber = 1;
  const ::std::string& provider_id() const;
  void set_provider_id(const ::std::string& value);
  #if LANG_CXX11
  void set_provider_id(::std::string&& value);
  #endif
  void set_provider_id(const char* value);
  void set_provider_id(const char* value, size_t size);
  ::std::string* mutable_provider_id();
  ::std::string* release_provider_id();
  void set_allocated_provider_id(::std::string* provider_id);

  // string audiences = 2;
  void clear_audiences();
  static const int kAudiencesFieldNumber = 2;
  const ::std::string& audiences() const;
  void set_audiences(const ::std::string& value);
  #if LANG_CXX11
  void set_audiences(::std::string&& value);
  #endif
  void set_audiences(const char* value);
  void set_audiences(const char* value, size_t size);
  ::std::string* mutable_audiences();
  ::std::string* release_audiences();
  void set_allocated_audiences(::std::string* audiences);

  // @@protoc_insertion_point(class_scope:google.api.AuthRequirement)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr provider_id_;
  ::google::protobuf::internal::ArenaStringPtr audiences_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fapi_2fauth_2eproto::TableStruct;
};
// ===================================================================


// ===================================================================

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// Authentication

// repeated .google.api.AuthenticationRule rules = 3;
inline int Authentication::rules_size() const {
  return rules_.size();
}
inline void Authentication::clear_rules() {
  rules_.Clear();
}
inline ::google::api::AuthenticationRule* Authentication::mutable_rules(int index) {
  // @@protoc_insertion_point(field_mutable:google.api.Authentication.rules)
  return rules_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::api::AuthenticationRule >*
Authentication::mutable_rules() {
  // @@protoc_insertion_point(field_mutable_list:google.api.Authentication.rules)
  return &rules_;
}
inline const ::google::api::AuthenticationRule& Authentication::rules(int index) const {
  // @@protoc_insertion_point(field_get:google.api.Authentication.rules)
  return rules_.Get(index);
}
inline ::google::api::AuthenticationRule* Authentication::add_rules() {
  // @@protoc_insertion_point(field_add:google.api.Authentication.rules)
  return rules_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::api::AuthenticationRule >&
Authentication::rules() const {
  // @@protoc_insertion_point(field_list:google.api.Authentication.rules)
  return rules_;
}

// repeated .google.api.AuthProvider providers = 4;
inline int Authentication::providers_size() const {
  return providers_.size();
}
inline void Authentication::clear_providers() {
  providers_.Clear();
}
inline ::google::api::AuthProvider* Authentication::mutable_providers(int index) {
  // @@protoc_insertion_point(field_mutable:google.api.Authentication.providers)
  return providers_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::api::AuthProvider >*
Authentication::mutable_providers() {
  // @@protoc_insertion_point(field_mutable_list:google.api.Authentication.providers)
  return &providers_;
}
inline const ::google::api::AuthProvider& Authentication::providers(int index) const {
  // @@protoc_insertion_point(field_get:google.api.Authentication.providers)
  return providers_.Get(index);
}
inline ::google::api::AuthProvider* Authentication::add_providers() {
  // @@protoc_insertion_point(field_add:google.api.Authentication.providers)
  return providers_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::api::AuthProvider >&
Authentication::providers() const {
  // @@protoc_insertion_point(field_list:google.api.Authentication.providers)
  return providers_;
}

// -------------------------------------------------------------------

// AuthenticationRule

// string selector = 1;
inline void AuthenticationRule::clear_selector() {
  selector_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& AuthenticationRule::selector() const {
  // @@protoc_insertion_point(field_get:google.api.AuthenticationRule.selector)
  return selector_.GetNoArena();
}
inline void AuthenticationRule::set_selector(const ::std::string& value) {
  
  selector_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.api.AuthenticationRule.selector)
}
#if LANG_CXX11
inline void AuthenticationRule::set_selector(::std::string&& value) {
  
  selector_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.api.AuthenticationRule.selector)
}
#endif
inline void AuthenticationRule::set_selector(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  selector_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.api.AuthenticationRule.selector)
}
inline void AuthenticationRule::set_selector(const char* value, size_t size) {
  
  selector_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.api.AuthenticationRule.selector)
}
inline ::std::string* AuthenticationRule::mutable_selector() {
  
  // @@protoc_insertion_point(field_mutable:google.api.AuthenticationRule.selector)
  return selector_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* AuthenticationRule::release_selector() {
  // @@protoc_insertion_point(field_release:google.api.AuthenticationRule.selector)
  
  return selector_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void AuthenticationRule::set_allocated_selector(::std::string* selector) {
  if (selector != NULL) {
    
  } else {
    
  }
  selector_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), selector);
  // @@protoc_insertion_point(field_set_allocated:google.api.AuthenticationRule.selector)
}

// .google.api.OAuthRequirements oauth = 2;
inline bool AuthenticationRule::has_oauth() const {
  return this != internal_default_instance() && oauth_ != NULL;
}
inline void AuthenticationRule::clear_oauth() {
  if (GetArenaNoVirtual() == NULL && oauth_ != NULL) {
    delete oauth_;
  }
  oauth_ = NULL;
}
inline const ::google::api::OAuthRequirements& AuthenticationRule::_internal_oauth() const {
  return *oauth_;
}
inline const ::google::api::OAuthRequirements& AuthenticationRule::oauth() const {
  const ::google::api::OAuthRequirements* p = oauth_;
  // @@protoc_insertion_point(field_get:google.api.AuthenticationRule.oauth)
  return p != NULL ? *p : *reinterpret_cast<const ::google::api::OAuthRequirements*>(
      &::google::api::_OAuthRequirements_default_instance_);
}
inline ::google::api::OAuthRequirements* AuthenticationRule::release_oauth() {
  // @@protoc_insertion_point(field_release:google.api.AuthenticationRule.oauth)
  
  ::google::api::OAuthRequirements* temp = oauth_;
  oauth_ = NULL;
  return temp;
}
inline ::google::api::OAuthRequirements* AuthenticationRule::mutable_oauth() {
  
  if (oauth_ == NULL) {
    auto* p = CreateMaybeMessage<::google::api::OAuthRequirements>(GetArenaNoVirtual());
    oauth_ = p;
  }
  // @@protoc_insertion_point(field_mutable:google.api.AuthenticationRule.oauth)
  return oauth_;
}
inline void AuthenticationRule::set_allocated_oauth(::google::api::OAuthRequirements* oauth) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete oauth_;
  }
  if (oauth) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      oauth = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, oauth, submessage_arena);
    }
    
  } else {
    
  }
  oauth_ = oauth;
  // @@protoc_insertion_point(field_set_allocated:google.api.AuthenticationRule.oauth)
}

// bool allow_without_credential = 5;
inline void AuthenticationRule::clear_allow_without_credential() {
  allow_without_credential_ = false;
}
inline bool AuthenticationRule::allow_without_credential() const {
  // @@protoc_insertion_point(field_get:google.api.AuthenticationRule.allow_without_credential)
  return allow_without_credential_;
}
inline void AuthenticationRule::set_allow_without_credential(bool value) {
  
  allow_without_credential_ = value;
  // @@protoc_insertion_point(field_set:google.api.AuthenticationRule.allow_without_credential)
}

// repeated .google.api.AuthRequirement requirements = 7;
inline int AuthenticationRule::requirements_size() const {
  return requirements_.size();
}
inline void AuthenticationRule::clear_requirements() {
  requirements_.Clear();
}
inline ::google::api::AuthRequirement* AuthenticationRule::mutable_requirements(int index) {
  // @@protoc_insertion_point(field_mutable:google.api.AuthenticationRule.requirements)
  return requirements_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::google::api::AuthRequirement >*
AuthenticationRule::mutable_requirements() {
  // @@protoc_insertion_point(field_mutable_list:google.api.AuthenticationRule.requirements)
  return &requirements_;
}
inline const ::google::api::AuthRequirement& AuthenticationRule::requirements(int index) const {
  // @@protoc_insertion_point(field_get:google.api.AuthenticationRule.requirements)
  return requirements_.Get(index);
}
inline ::google::api::AuthRequirement* AuthenticationRule::add_requirements() {
  // @@protoc_insertion_point(field_add:google.api.AuthenticationRule.requirements)
  return requirements_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::google::api::AuthRequirement >&
AuthenticationRule::requirements() const {
  // @@protoc_insertion_point(field_list:google.api.AuthenticationRule.requirements)
  return requirements_;
}

// -------------------------------------------------------------------

// AuthProvider

// string id = 1;
inline void AuthProvider::clear_id() {
  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& AuthProvider::id() const {
  // @@protoc_insertion_point(field_get:google.api.AuthProvider.id)
  return id_.GetNoArena();
}
inline void AuthProvider::set_id(const ::std::string& value) {
  
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.api.AuthProvider.id)
}
#if LANG_CXX11
inline void AuthProvider::set_id(::std::string&& value) {
  
  id_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.api.AuthProvider.id)
}
#endif
inline void AuthProvider::set_id(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.api.AuthProvider.id)
}
inline void AuthProvider::set_id(const char* value, size_t size) {
  
  id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.api.AuthProvider.id)
}
inline ::std::string* AuthProvider::mutable_id() {
  
  // @@protoc_insertion_point(field_mutable:google.api.AuthProvider.id)
  return id_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* AuthProvider::release_id() {
  // @@protoc_insertion_point(field_release:google.api.AuthProvider.id)
  
  return id_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void AuthProvider::set_allocated_id(::std::string* id) {
  if (id != NULL) {
    
  } else {
    
  }
  id_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), id);
  // @@protoc_insertion_point(field_set_allocated:google.api.AuthProvider.id)
}

// string issuer = 2;
inline void AuthProvider::clear_issuer() {
  issuer_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& AuthProvider::issuer() const {
  // @@protoc_insertion_point(field_get:google.api.AuthProvider.issuer)
  return issuer_.GetNoArena();
}
inline void AuthProvider::set_issuer(const ::std::string& value) {
  
  issuer_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.api.AuthProvider.issuer)
}
#if LANG_CXX11
inline void AuthProvider::set_issuer(::std::string&& value) {
  
  issuer_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.api.AuthProvider.issuer)
}
#endif
inline void AuthProvider::set_issuer(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  issuer_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.api.AuthProvider.issuer)
}
inline void AuthProvider::set_issuer(const char* value, size_t size) {
  
  issuer_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.api.AuthProvider.issuer)
}
inline ::std::string* AuthProvider::mutable_issuer() {
  
  // @@protoc_insertion_point(field_mutable:google.api.AuthProvider.issuer)
  return issuer_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* AuthProvider::release_issuer() {
  // @@protoc_insertion_point(field_release:google.api.AuthProvider.issuer)
  
  return issuer_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void AuthProvider::set_allocated_issuer(::std::string* issuer) {
  if (issuer != NULL) {
    
  } else {
    
  }
  issuer_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), issuer);
  // @@protoc_insertion_point(field_set_allocated:google.api.AuthProvider.issuer)
}

// string jwks_uri = 3;
inline void AuthProvider::clear_jwks_uri() {
  jwks_uri_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& AuthProvider::jwks_uri() const {
  // @@protoc_insertion_point(field_get:google.api.AuthProvider.jwks_uri)
  return jwks_uri_.GetNoArena();
}
inline void AuthProvider::set_jwks_uri(const ::std::string& value) {
  
  jwks_uri_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.api.AuthProvider.jwks_uri)
}
#if LANG_CXX11
inline void AuthProvider::set_jwks_uri(::std::string&& value) {
  
  jwks_uri_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.api.AuthProvider.jwks_uri)
}
#endif
inline void AuthProvider::set_jwks_uri(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  jwks_uri_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.api.AuthProvider.jwks_uri)
}
inline void AuthProvider::set_jwks_uri(const char* value, size_t size) {
  
  jwks_uri_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.api.AuthProvider.jwks_uri)
}
inline ::std::string* AuthProvider::mutable_jwks_uri() {
  
  // @@protoc_insertion_point(field_mutable:google.api.AuthProvider.jwks_uri)
  return jwks_uri_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* AuthProvider::release_jwks_uri() {
  // @@protoc_insertion_point(field_release:google.api.AuthProvider.jwks_uri)
  
  return jwks_uri_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void AuthProvider::set_allocated_jwks_uri(::std::string* jwks_uri) {
  if (jwks_uri != NULL) {
    
  } else {
    
  }
  jwks_uri_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), jwks_uri);
  // @@protoc_insertion_point(field_set_allocated:google.api.AuthProvider.jwks_uri)
}

// string audiences = 4;
inline void AuthProvider::clear_audiences() {
  audiences_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& AuthProvider::audiences() const {
  // @@protoc_insertion_point(field_get:google.api.AuthProvider.audiences)
  return audiences_.GetNoArena();
}
inline void AuthProvider::set_audiences(const ::std::string& value) {
  
  audiences_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.api.AuthProvider.audiences)
}
#if LANG_CXX11
inline void AuthProvider::set_audiences(::std::string&& value) {
  
  audiences_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.api.AuthProvider.audiences)
}
#endif
inline void AuthProvider::set_audiences(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  audiences_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.api.AuthProvider.audiences)
}
inline void AuthProvider::set_audiences(const char* value, size_t size) {
  
  audiences_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.api.AuthProvider.audiences)
}
inline ::std::string* AuthProvider::mutable_audiences() {
  
  // @@protoc_insertion_point(field_mutable:google.api.AuthProvider.audiences)
  return audiences_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* AuthProvider::release_audiences() {
  // @@protoc_insertion_point(field_release:google.api.AuthProvider.audiences)
  
  return audiences_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void AuthProvider::set_allocated_audiences(::std::string* audiences) {
  if (audiences != NULL) {
    
  } else {
    
  }
  audiences_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), audiences);
  // @@protoc_insertion_point(field_set_allocated:google.api.AuthProvider.audiences)
}

// string authorization_url = 5;
inline void AuthProvider::clear_authorization_url() {
  authorization_url_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& AuthProvider::authorization_url() const {
  // @@protoc_insertion_point(field_get:google.api.AuthProvider.authorization_url)
  return authorization_url_.GetNoArena();
}
inline void AuthProvider::set_authorization_url(const ::std::string& value) {
  
  authorization_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.api.AuthProvider.authorization_url)
}
#if LANG_CXX11
inline void AuthProvider::set_authorization_url(::std::string&& value) {
  
  authorization_url_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.api.AuthProvider.authorization_url)
}
#endif
inline void AuthProvider::set_authorization_url(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  authorization_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.api.AuthProvider.authorization_url)
}
inline void AuthProvider::set_authorization_url(const char* value, size_t size) {
  
  authorization_url_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.api.AuthProvider.authorization_url)
}
inline ::std::string* AuthProvider::mutable_authorization_url() {
  
  // @@protoc_insertion_point(field_mutable:google.api.AuthProvider.authorization_url)
  return authorization_url_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* AuthProvider::release_authorization_url() {
  // @@protoc_insertion_point(field_release:google.api.AuthProvider.authorization_url)
  
  return authorization_url_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void AuthProvider::set_allocated_authorization_url(::std::string* authorization_url) {
  if (authorization_url != NULL) {
    
  } else {
    
  }
  authorization_url_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), authorization_url);
  // @@protoc_insertion_point(field_set_allocated:google.api.AuthProvider.authorization_url)
}

// -------------------------------------------------------------------

// OAuthRequirements

// string canonical_scopes = 1;
inline void OAuthRequirements::clear_canonical_scopes() {
  canonical_scopes_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& OAuthRequirements::canonical_scopes() const {
  // @@protoc_insertion_point(field_get:google.api.OAuthRequirements.canonical_scopes)
  return canonical_scopes_.GetNoArena();
}
inline void OAuthRequirements::set_canonical_scopes(const ::std::string& value) {
  
  canonical_scopes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.api.OAuthRequirements.canonical_scopes)
}
#if LANG_CXX11
inline void OAuthRequirements::set_canonical_scopes(::std::string&& value) {
  
  canonical_scopes_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.api.OAuthRequirements.canonical_scopes)
}
#endif
inline void OAuthRequirements::set_canonical_scopes(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  canonical_scopes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.api.OAuthRequirements.canonical_scopes)
}
inline void OAuthRequirements::set_canonical_scopes(const char* value, size_t size) {
  
  canonical_scopes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.api.OAuthRequirements.canonical_scopes)
}
inline ::std::string* OAuthRequirements::mutable_canonical_scopes() {
  
  // @@protoc_insertion_point(field_mutable:google.api.OAuthRequirements.canonical_scopes)
  return canonical_scopes_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* OAuthRequirements::release_canonical_scopes() {
  // @@protoc_insertion_point(field_release:google.api.OAuthRequirements.canonical_scopes)
  
  return canonical_scopes_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void OAuthRequirements::set_allocated_canonical_scopes(::std::string* canonical_scopes) {
  if (canonical_scopes != NULL) {
    
  } else {
    
  }
  canonical_scopes_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), canonical_scopes);
  // @@protoc_insertion_point(field_set_allocated:google.api.OAuthRequirements.canonical_scopes)
}

// -------------------------------------------------------------------

// AuthRequirement

// string provider_id = 1;
inline void AuthRequirement::clear_provider_id() {
  provider_id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& AuthRequirement::provider_id() const {
  // @@protoc_insertion_point(field_get:google.api.AuthRequirement.provider_id)
  return provider_id_.GetNoArena();
}
inline void AuthRequirement::set_provider_id(const ::std::string& value) {
  
  provider_id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.api.AuthRequirement.provider_id)
}
#if LANG_CXX11
inline void AuthRequirement::set_provider_id(::std::string&& value) {
  
  provider_id_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.api.AuthRequirement.provider_id)
}
#endif
inline void AuthRequirement::set_provider_id(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  provider_id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.api.AuthRequirement.provider_id)
}
inline void AuthRequirement::set_provider_id(const char* value, size_t size) {
  
  provider_id_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.api.AuthRequirement.provider_id)
}
inline ::std::string* AuthRequirement::mutable_provider_id() {
  
  // @@protoc_insertion_point(field_mutable:google.api.AuthRequirement.provider_id)
  return provider_id_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* AuthRequirement::release_provider_id() {
  // @@protoc_insertion_point(field_release:google.api.AuthRequirement.provider_id)
  
  return provider_id_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void AuthRequirement::set_allocated_provider_id(::std::string* provider_id) {
  if (provider_id != NULL) {
    
  } else {
    
  }
  provider_id_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), provider_id);
  // @@protoc_insertion_point(field_set_allocated:google.api.AuthRequirement.provider_id)
}

// string audiences = 2;
inline void AuthRequirement::clear_audiences() {
  audiences_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& AuthRequirement::audiences() const {
  // @@protoc_insertion_point(field_get:google.api.AuthRequirement.audiences)
  return audiences_.GetNoArena();
}
inline void AuthRequirement::set_audiences(const ::std::string& value) {
  
  audiences_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:google.api.AuthRequirement.audiences)
}
#if LANG_CXX11
inline void AuthRequirement::set_audiences(::std::string&& value) {
  
  audiences_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:google.api.AuthRequirement.audiences)
}
#endif
inline void AuthRequirement::set_audiences(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  audiences_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:google.api.AuthRequirement.audiences)
}
inline void AuthRequirement::set_audiences(const char* value, size_t size) {
  
  audiences_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:google.api.AuthRequirement.audiences)
}
inline ::std::string* AuthRequirement::mutable_audiences() {
  
  // @@protoc_insertion_point(field_mutable:google.api.AuthRequirement.audiences)
  return audiences_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* AuthRequirement::release_audiences() {
  // @@protoc_insertion_point(field_release:google.api.AuthRequirement.audiences)
  
  return audiences_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void AuthRequirement::set_allocated_audiences(::std::string* audiences) {
  if (audiences != NULL) {
    
  } else {
    
  }
  audiences_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), audiences);
  // @@protoc_insertion_point(field_set_allocated:google.api.AuthRequirement.audiences)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace api
}  // namespace google

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_google_2fapi_2fauth_2eproto
