// DO NOT EDIT.
// swift-format-ignore-file
//
// Generated by the Swift generator plugin for the protocol buffer compiler.
// Source: google/api/client.proto
//
// For information on using the generated types, please see the documentation:
//   https://github.com/apple/swift-protobuf/

// Copyright 2018 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

import Foundation
import SwiftProtobuf

// If the compiler emits an error on this type, it is because this file
// was generated by a version of the `protoc` Swift plug-in that is
// incompatible with the version of SwiftProtobuf to which you are linking.
// Please ensure that you are building against the same version of the API
// that was used to generate this file.
fileprivate struct _GeneratedWithProtocGenSwiftVersion: SwiftProtobuf.ProtobufAPIVersionCheck {
  struct _2: SwiftProtobuf.ProtobufAPIVersion_2 {}
  typealias Version = _2
}

// MARK: - Extension support defined in client.proto.

// MARK: - Extension Properties

// Swift Extensions on the exteneded Messages to add easy access to the declared
// extension fields. The names are based on the extension field name from the proto
// declaration. To avoid naming collisions, the names are prefixed with the name of
// the scope where the extend directive occurs.

extension SwiftProtobuf.Google_Protobuf_MethodOptions {

  /// A definition of a client library method signature.
  ///
  /// In client libraries, each proto RPC corresponds to one or more methods
  /// which the end user is able to call, and calls the underlying RPC.
  /// Normally, this method receives a single argument (a struct or instance
  /// corresponding to the RPC request object). Defining this field will
  /// add one or more overloads providing flattened or simpler method signatures
  /// in some languages.
  ///
  /// The fields on the method signature are provided as a comma-separated
  /// string.
  ///
  /// For example, the proto RPC and annotation:
  ///
  ///   rpc CreateSubscription(CreateSubscriptionRequest)
  ///       returns (Subscription) {
  ///     option (google.api.method_signature) = "name,topic";
  ///   }
  ///
  /// Would add the following Java overload (in addition to the method accepting
  /// the request object):
  ///
  ///   public final Subscription createSubscription(String name, String topic)
  ///
  /// The following backwards-compatibility guidelines apply:
  ///
  ///   * Adding this annotation to an unannotated method is backwards
  ///     compatible.
  ///   * Adding this annotation to a method which already has existing
  ///     method signature annotations is backwards compatible if and only if
  ///     the new method signature annotation is last in the sequence.
  ///   * Modifying or removing an existing method signature annotation is
  ///     a breaking change.
  ///   * Re-ordering existing method signature annotations is a breaking
  ///     change.
  public var Google_Api_methodSignature: [String] {
    get {return getExtensionValue(ext: Google_Api_Extensions_method_signature) ?? []}
    set {setExtensionValue(ext: Google_Api_Extensions_method_signature, value: newValue)}
  }
  /// Returns true if extension `Google_Api_Extensions_method_signature`
  /// has been explicitly set.
  public var hasGoogle_Api_methodSignature: Bool {
    return hasExtensionValue(ext: Google_Api_Extensions_method_signature)
  }
  /// Clears the value of extension `Google_Api_Extensions_method_signature`.
  /// Subsequent reads from it will return its default value.
  public mutating func clearGoogle_Api_methodSignature() {
    clearExtensionValue(ext: Google_Api_Extensions_method_signature)
  }
}

extension SwiftProtobuf.Google_Protobuf_ServiceOptions {

  /// The hostname for this service.
  /// This should be specified with no prefix or protocol.
  ///
  /// Example:
  ///
  ///   service Foo {
  ///     option (google.api.default_host) = "foo.googleapi.com";
  ///     ...
  ///   }
  public var Google_Api_defaultHost: String {
    get {return getExtensionValue(ext: Google_Api_Extensions_default_host) ?? String()}
    set {setExtensionValue(ext: Google_Api_Extensions_default_host, value: newValue)}
  }
  /// Returns true if extension `Google_Api_Extensions_default_host`
  /// has been explicitly set.
  public var hasGoogle_Api_defaultHost: Bool {
    return hasExtensionValue(ext: Google_Api_Extensions_default_host)
  }
  /// Clears the value of extension `Google_Api_Extensions_default_host`.
  /// Subsequent reads from it will return its default value.
  public mutating func clearGoogle_Api_defaultHost() {
    clearExtensionValue(ext: Google_Api_Extensions_default_host)
  }

  /// OAuth scopes needed for the client.
  ///
  /// Example:
  ///
  ///   service Foo {
  ///     option (google.api.oauth_scopes) = \
  ///       "https://www.googleapis.com/auth/cloud-platform";
  ///     ...
  ///   }
  ///
  /// If there is more than one scope, use a comma-separated string:
  ///
  /// Example:
  ///
  ///   service Foo {
  ///     option (google.api.oauth_scopes) = \
  ///       "https://www.googleapis.com/auth/cloud-platform,"
  ///       "https://www.googleapis.com/auth/monitoring";
  ///     ...
  ///   }
  public var Google_Api_oauthScopes: String {
    get {return getExtensionValue(ext: Google_Api_Extensions_oauth_scopes) ?? String()}
    set {setExtensionValue(ext: Google_Api_Extensions_oauth_scopes, value: newValue)}
  }
  /// Returns true if extension `Google_Api_Extensions_oauth_scopes`
  /// has been explicitly set.
  public var hasGoogle_Api_oauthScopes: Bool {
    return hasExtensionValue(ext: Google_Api_Extensions_oauth_scopes)
  }
  /// Clears the value of extension `Google_Api_Extensions_oauth_scopes`.
  /// Subsequent reads from it will return its default value.
  public mutating func clearGoogle_Api_oauthScopes() {
    clearExtensionValue(ext: Google_Api_Extensions_oauth_scopes)
  }

}

// MARK: - File's ExtensionMap: Google_Api_Client_Extensions

/// A `SwiftProtobuf.SimpleExtensionMap` that includes all of the extensions defined by
/// this .proto file. It can be used any place an `SwiftProtobuf.ExtensionMap` is needed
/// in parsing, or it can be combined with other `SwiftProtobuf.SimpleExtensionMap`s to create
/// a larger `SwiftProtobuf.SimpleExtensionMap`.
public let Google_Api_Client_Extensions: SwiftProtobuf.SimpleExtensionMap = [
  Google_Api_Extensions_method_signature,
  Google_Api_Extensions_default_host,
  Google_Api_Extensions_oauth_scopes
]

// Extension Objects - The only reason these might be needed is when manually
// constructing a `SimpleExtensionMap`, otherwise, use the above _Extension Properties_
// accessors for the extension fields on the messages directly.

/// A definition of a client library method signature.
///
/// In client libraries, each proto RPC corresponds to one or more methods
/// which the end user is able to call, and calls the underlying RPC.
/// Normally, this method receives a single argument (a struct or instance
/// corresponding to the RPC request object). Defining this field will
/// add one or more overloads providing flattened or simpler method signatures
/// in some languages.
///
/// The fields on the method signature are provided as a comma-separated
/// string.
///
/// For example, the proto RPC and annotation:
///
///   rpc CreateSubscription(CreateSubscriptionRequest)
///       returns (Subscription) {
///     option (google.api.method_signature) = "name,topic";
///   }
///
/// Would add the following Java overload (in addition to the method accepting
/// the request object):
///
///   public final Subscription createSubscription(String name, String topic)
///
/// The following backwards-compatibility guidelines apply:
///
///   * Adding this annotation to an unannotated method is backwards
///     compatible.
///   * Adding this annotation to a method which already has existing
///     method signature annotations is backwards compatible if and only if
///     the new method signature annotation is last in the sequence.
///   * Modifying or removing an existing method signature annotation is
///     a breaking change.
///   * Re-ordering existing method signature annotations is a breaking
///     change.
public let Google_Api_Extensions_method_signature = SwiftProtobuf.MessageExtension<SwiftProtobuf.RepeatedExtensionField<SwiftProtobuf.ProtobufString>, SwiftProtobuf.Google_Protobuf_MethodOptions>(
  _protobuf_fieldNumber: 1051,
  fieldName: "google.api.method_signature"
)

/// The hostname for this service.
/// This should be specified with no prefix or protocol.
///
/// Example:
///
///   service Foo {
///     option (google.api.default_host) = "foo.googleapi.com";
///     ...
///   }
public let Google_Api_Extensions_default_host = SwiftProtobuf.MessageExtension<SwiftProtobuf.OptionalExtensionField<SwiftProtobuf.ProtobufString>, SwiftProtobuf.Google_Protobuf_ServiceOptions>(
  _protobuf_fieldNumber: 1049,
  fieldName: "google.api.default_host"
)

/// OAuth scopes needed for the client.
///
/// Example:
///
///   service Foo {
///     option (google.api.oauth_scopes) = \
///       "https://www.googleapis.com/auth/cloud-platform";
///     ...
///   }
///
/// If there is more than one scope, use a comma-separated string:
///
/// Example:
///
///   service Foo {
///     option (google.api.oauth_scopes) = \
///       "https://www.googleapis.com/auth/cloud-platform,"
///       "https://www.googleapis.com/auth/monitoring";
///     ...
///   }
public let Google_Api_Extensions_oauth_scopes = SwiftProtobuf.MessageExtension<SwiftProtobuf.OptionalExtensionField<SwiftProtobuf.ProtobufString>, SwiftProtobuf.Google_Protobuf_ServiceOptions>(
  _protobuf_fieldNumber: 1050,
  fieldName: "google.api.oauth_scopes"
)
