// DO NOT EDIT.
//
// Generated by the Swift generator plugin for the protocol buffer compiler.
// Source: github.com/googleapis/gnostic/discovery/discovery.proto
//
// For information on using the generated types, please see the documenation:
//   https://github.com/apple/swift-protobuf/

// Copyright 2017 Google Inc. All Rights Reserved.
//
// 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.

// THIS FILE IS AUTOMATICALLY GENERATED.

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 your 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
}

public struct Discovery_V1_Annotations: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Annotations"

  public var required: [String] = []

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeRepeatedStringField(value: &self.required)
      default: break
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if !self.required.isEmpty {
      try visitor.visitRepeatedStringField(value: self.required, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }
}

public struct Discovery_V1_Any: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Any"

  public var value: SwiftProtobuf.Google_Protobuf_Any {
    get {return _storage._value ?? SwiftProtobuf.Google_Protobuf_Any()}
    set {_uniqueStorage()._value = newValue}
  }
  /// Returns true if `value` has been explicitly set.
  public var hasValue: Bool {return _storage._value != nil}
  /// Clears the value of `value`. Subsequent reads from it will return its default value.
  public mutating func clearValue() {_storage._value = nil}

  public var yaml: String {
    get {return _storage._yaml}
    set {_uniqueStorage()._yaml = newValue}
  }

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeSingularMessageField(value: &_storage._value)
        case 2: try decoder.decodeSingularStringField(value: &_storage._yaml)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if let v = _storage._value {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
      }
      if !_storage._yaml.isEmpty {
        try visitor.visitSingularStringField(value: _storage._yaml, fieldNumber: 2)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass.defaultInstance
}

public struct Discovery_V1_Auth: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Auth"

  public var oauth2: Discovery_V1_Oauth2 {
    get {return _storage._oauth2 ?? Discovery_V1_Oauth2()}
    set {_uniqueStorage()._oauth2 = newValue}
  }
  /// Returns true if `oauth2` has been explicitly set.
  public var hasOauth2: Bool {return _storage._oauth2 != nil}
  /// Clears the value of `oauth2`. Subsequent reads from it will return its default value.
  public mutating func clearOauth2() {_storage._oauth2 = nil}

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeSingularMessageField(value: &_storage._oauth2)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if let v = _storage._oauth2 {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass.defaultInstance
}

public struct Discovery_V1_Document: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Document"

  public var kind: String {
    get {return _storage._kind}
    set {_uniqueStorage()._kind = newValue}
  }

  public var discoveryVersion: String {
    get {return _storage._discoveryVersion}
    set {_uniqueStorage()._discoveryVersion = newValue}
  }

  public var id: String {
    get {return _storage._id}
    set {_uniqueStorage()._id = newValue}
  }

  public var name: String {
    get {return _storage._name}
    set {_uniqueStorage()._name = newValue}
  }

  public var version: String {
    get {return _storage._version}
    set {_uniqueStorage()._version = newValue}
  }

  public var revision: String {
    get {return _storage._revision}
    set {_uniqueStorage()._revision = newValue}
  }

  public var title: String {
    get {return _storage._title}
    set {_uniqueStorage()._title = newValue}
  }

  public var description_p: String {
    get {return _storage._description_p}
    set {_uniqueStorage()._description_p = newValue}
  }

  public var icons: Discovery_V1_Icons {
    get {return _storage._icons ?? Discovery_V1_Icons()}
    set {_uniqueStorage()._icons = newValue}
  }
  /// Returns true if `icons` has been explicitly set.
  public var hasIcons: Bool {return _storage._icons != nil}
  /// Clears the value of `icons`. Subsequent reads from it will return its default value.
  public mutating func clearIcons() {_storage._icons = nil}

  public var documentationLink: String {
    get {return _storage._documentationLink}
    set {_uniqueStorage()._documentationLink = newValue}
  }

  public var labels: [String] {
    get {return _storage._labels}
    set {_uniqueStorage()._labels = newValue}
  }

  public var `protocol`: String {
    get {return _storage._protocol}
    set {_uniqueStorage()._protocol = newValue}
  }

  public var baseURL: String {
    get {return _storage._baseURL}
    set {_uniqueStorage()._baseURL = newValue}
  }

  public var basePath: String {
    get {return _storage._basePath}
    set {_uniqueStorage()._basePath = newValue}
  }

  public var rootURL: String {
    get {return _storage._rootURL}
    set {_uniqueStorage()._rootURL = newValue}
  }

  public var servicePath: String {
    get {return _storage._servicePath}
    set {_uniqueStorage()._servicePath = newValue}
  }

  public var batchPath: String {
    get {return _storage._batchPath}
    set {_uniqueStorage()._batchPath = newValue}
  }

  public var parameters: Discovery_V1_Parameters {
    get {return _storage._parameters ?? Discovery_V1_Parameters()}
    set {_uniqueStorage()._parameters = newValue}
  }
  /// Returns true if `parameters` has been explicitly set.
  public var hasParameters: Bool {return _storage._parameters != nil}
  /// Clears the value of `parameters`. Subsequent reads from it will return its default value.
  public mutating func clearParameters() {_storage._parameters = nil}

  public var auth: Discovery_V1_Auth {
    get {return _storage._auth ?? Discovery_V1_Auth()}
    set {_uniqueStorage()._auth = newValue}
  }
  /// Returns true if `auth` has been explicitly set.
  public var hasAuth: Bool {return _storage._auth != nil}
  /// Clears the value of `auth`. Subsequent reads from it will return its default value.
  public mutating func clearAuth() {_storage._auth = nil}

  public var features: [String] {
    get {return _storage._features}
    set {_uniqueStorage()._features = newValue}
  }

  public var schemas: Discovery_V1_Schemas {
    get {return _storage._schemas ?? Discovery_V1_Schemas()}
    set {_uniqueStorage()._schemas = newValue}
  }
  /// Returns true if `schemas` has been explicitly set.
  public var hasSchemas: Bool {return _storage._schemas != nil}
  /// Clears the value of `schemas`. Subsequent reads from it will return its default value.
  public mutating func clearSchemas() {_storage._schemas = nil}

  public var methods: Discovery_V1_Methods {
    get {return _storage._methods ?? Discovery_V1_Methods()}
    set {_uniqueStorage()._methods = newValue}
  }
  /// Returns true if `methods` has been explicitly set.
  public var hasMethods: Bool {return _storage._methods != nil}
  /// Clears the value of `methods`. Subsequent reads from it will return its default value.
  public mutating func clearMethods() {_storage._methods = nil}

  public var resources: Discovery_V1_Resources {
    get {return _storage._resources ?? Discovery_V1_Resources()}
    set {_uniqueStorage()._resources = newValue}
  }
  /// Returns true if `resources` has been explicitly set.
  public var hasResources: Bool {return _storage._resources != nil}
  /// Clears the value of `resources`. Subsequent reads from it will return its default value.
  public mutating func clearResources() {_storage._resources = nil}

  public var etag: String {
    get {return _storage._etag}
    set {_uniqueStorage()._etag = newValue}
  }

  public var ownerDomain: String {
    get {return _storage._ownerDomain}
    set {_uniqueStorage()._ownerDomain = newValue}
  }

  public var ownerName: String {
    get {return _storage._ownerName}
    set {_uniqueStorage()._ownerName = newValue}
  }

  public var versionModule: Bool {
    get {return _storage._versionModule}
    set {_uniqueStorage()._versionModule = newValue}
  }

  public var canonicalName: String {
    get {return _storage._canonicalName}
    set {_uniqueStorage()._canonicalName = newValue}
  }

  public var fullyEncodeReservedExpansion: Bool {
    get {return _storage._fullyEncodeReservedExpansion}
    set {_uniqueStorage()._fullyEncodeReservedExpansion = newValue}
  }

  public var packagePath: String {
    get {return _storage._packagePath}
    set {_uniqueStorage()._packagePath = newValue}
  }

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeSingularStringField(value: &_storage._kind)
        case 2: try decoder.decodeSingularStringField(value: &_storage._discoveryVersion)
        case 3: try decoder.decodeSingularStringField(value: &_storage._id)
        case 4: try decoder.decodeSingularStringField(value: &_storage._name)
        case 5: try decoder.decodeSingularStringField(value: &_storage._version)
        case 6: try decoder.decodeSingularStringField(value: &_storage._revision)
        case 7: try decoder.decodeSingularStringField(value: &_storage._title)
        case 8: try decoder.decodeSingularStringField(value: &_storage._description_p)
        case 9: try decoder.decodeSingularMessageField(value: &_storage._icons)
        case 10: try decoder.decodeSingularStringField(value: &_storage._documentationLink)
        case 11: try decoder.decodeRepeatedStringField(value: &_storage._labels)
        case 12: try decoder.decodeSingularStringField(value: &_storage._protocol)
        case 13: try decoder.decodeSingularStringField(value: &_storage._baseURL)
        case 14: try decoder.decodeSingularStringField(value: &_storage._basePath)
        case 15: try decoder.decodeSingularStringField(value: &_storage._rootURL)
        case 16: try decoder.decodeSingularStringField(value: &_storage._servicePath)
        case 17: try decoder.decodeSingularStringField(value: &_storage._batchPath)
        case 18: try decoder.decodeSingularMessageField(value: &_storage._parameters)
        case 19: try decoder.decodeSingularMessageField(value: &_storage._auth)
        case 20: try decoder.decodeRepeatedStringField(value: &_storage._features)
        case 21: try decoder.decodeSingularMessageField(value: &_storage._schemas)
        case 22: try decoder.decodeSingularMessageField(value: &_storage._methods)
        case 23: try decoder.decodeSingularMessageField(value: &_storage._resources)
        case 24: try decoder.decodeSingularStringField(value: &_storage._etag)
        case 25: try decoder.decodeSingularStringField(value: &_storage._ownerDomain)
        case 26: try decoder.decodeSingularStringField(value: &_storage._ownerName)
        case 27: try decoder.decodeSingularBoolField(value: &_storage._versionModule)
        case 28: try decoder.decodeSingularStringField(value: &_storage._canonicalName)
        case 29: try decoder.decodeSingularBoolField(value: &_storage._fullyEncodeReservedExpansion)
        case 30: try decoder.decodeSingularStringField(value: &_storage._packagePath)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if !_storage._kind.isEmpty {
        try visitor.visitSingularStringField(value: _storage._kind, fieldNumber: 1)
      }
      if !_storage._discoveryVersion.isEmpty {
        try visitor.visitSingularStringField(value: _storage._discoveryVersion, fieldNumber: 2)
      }
      if !_storage._id.isEmpty {
        try visitor.visitSingularStringField(value: _storage._id, fieldNumber: 3)
      }
      if !_storage._name.isEmpty {
        try visitor.visitSingularStringField(value: _storage._name, fieldNumber: 4)
      }
      if !_storage._version.isEmpty {
        try visitor.visitSingularStringField(value: _storage._version, fieldNumber: 5)
      }
      if !_storage._revision.isEmpty {
        try visitor.visitSingularStringField(value: _storage._revision, fieldNumber: 6)
      }
      if !_storage._title.isEmpty {
        try visitor.visitSingularStringField(value: _storage._title, fieldNumber: 7)
      }
      if !_storage._description_p.isEmpty {
        try visitor.visitSingularStringField(value: _storage._description_p, fieldNumber: 8)
      }
      if let v = _storage._icons {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 9)
      }
      if !_storage._documentationLink.isEmpty {
        try visitor.visitSingularStringField(value: _storage._documentationLink, fieldNumber: 10)
      }
      if !_storage._labels.isEmpty {
        try visitor.visitRepeatedStringField(value: _storage._labels, fieldNumber: 11)
      }
      if !_storage._protocol.isEmpty {
        try visitor.visitSingularStringField(value: _storage._protocol, fieldNumber: 12)
      }
      if !_storage._baseURL.isEmpty {
        try visitor.visitSingularStringField(value: _storage._baseURL, fieldNumber: 13)
      }
      if !_storage._basePath.isEmpty {
        try visitor.visitSingularStringField(value: _storage._basePath, fieldNumber: 14)
      }
      if !_storage._rootURL.isEmpty {
        try visitor.visitSingularStringField(value: _storage._rootURL, fieldNumber: 15)
      }
      if !_storage._servicePath.isEmpty {
        try visitor.visitSingularStringField(value: _storage._servicePath, fieldNumber: 16)
      }
      if !_storage._batchPath.isEmpty {
        try visitor.visitSingularStringField(value: _storage._batchPath, fieldNumber: 17)
      }
      if let v = _storage._parameters {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 18)
      }
      if let v = _storage._auth {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 19)
      }
      if !_storage._features.isEmpty {
        try visitor.visitRepeatedStringField(value: _storage._features, fieldNumber: 20)
      }
      if let v = _storage._schemas {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 21)
      }
      if let v = _storage._methods {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 22)
      }
      if let v = _storage._resources {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 23)
      }
      if !_storage._etag.isEmpty {
        try visitor.visitSingularStringField(value: _storage._etag, fieldNumber: 24)
      }
      if !_storage._ownerDomain.isEmpty {
        try visitor.visitSingularStringField(value: _storage._ownerDomain, fieldNumber: 25)
      }
      if !_storage._ownerName.isEmpty {
        try visitor.visitSingularStringField(value: _storage._ownerName, fieldNumber: 26)
      }
      if _storage._versionModule != false {
        try visitor.visitSingularBoolField(value: _storage._versionModule, fieldNumber: 27)
      }
      if !_storage._canonicalName.isEmpty {
        try visitor.visitSingularStringField(value: _storage._canonicalName, fieldNumber: 28)
      }
      if _storage._fullyEncodeReservedExpansion != false {
        try visitor.visitSingularBoolField(value: _storage._fullyEncodeReservedExpansion, fieldNumber: 29)
      }
      if !_storage._packagePath.isEmpty {
        try visitor.visitSingularStringField(value: _storage._packagePath, fieldNumber: 30)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass.defaultInstance
}

/// Icons that represent the API.
public struct Discovery_V1_Icons: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Icons"

  public var x16: String = String()

  public var x32: String = String()

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self.x16)
      case 2: try decoder.decodeSingularStringField(value: &self.x32)
      default: break
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if !self.x16.isEmpty {
      try visitor.visitSingularStringField(value: self.x16, fieldNumber: 1)
    }
    if !self.x32.isEmpty {
      try visitor.visitSingularStringField(value: self.x32, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }
}

public struct Discovery_V1_MediaUpload: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".MediaUpload"

  public var accept: [String] {
    get {return _storage._accept}
    set {_uniqueStorage()._accept = newValue}
  }

  public var maxSize: String {
    get {return _storage._maxSize}
    set {_uniqueStorage()._maxSize = newValue}
  }

  public var protocols: Discovery_V1_Protocols {
    get {return _storage._protocols ?? Discovery_V1_Protocols()}
    set {_uniqueStorage()._protocols = newValue}
  }
  /// Returns true if `protocols` has been explicitly set.
  public var hasProtocols: Bool {return _storage._protocols != nil}
  /// Clears the value of `protocols`. Subsequent reads from it will return its default value.
  public mutating func clearProtocols() {_storage._protocols = nil}

  public var supportsSubscription: Bool {
    get {return _storage._supportsSubscription}
    set {_uniqueStorage()._supportsSubscription = newValue}
  }

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeRepeatedStringField(value: &_storage._accept)
        case 2: try decoder.decodeSingularStringField(value: &_storage._maxSize)
        case 3: try decoder.decodeSingularMessageField(value: &_storage._protocols)
        case 4: try decoder.decodeSingularBoolField(value: &_storage._supportsSubscription)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if !_storage._accept.isEmpty {
        try visitor.visitRepeatedStringField(value: _storage._accept, fieldNumber: 1)
      }
      if !_storage._maxSize.isEmpty {
        try visitor.visitSingularStringField(value: _storage._maxSize, fieldNumber: 2)
      }
      if let v = _storage._protocols {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 3)
      }
      if _storage._supportsSubscription != false {
        try visitor.visitSingularBoolField(value: _storage._supportsSubscription, fieldNumber: 4)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass.defaultInstance
}

public struct Discovery_V1_Method: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Method"

  public var id: String {
    get {return _storage._id}
    set {_uniqueStorage()._id = newValue}
  }

  public var path: String {
    get {return _storage._path}
    set {_uniqueStorage()._path = newValue}
  }

  public var httpMethod: String {
    get {return _storage._httpMethod}
    set {_uniqueStorage()._httpMethod = newValue}
  }

  public var description_p: String {
    get {return _storage._description_p}
    set {_uniqueStorage()._description_p = newValue}
  }

  public var parameters: Discovery_V1_Parameters {
    get {return _storage._parameters ?? Discovery_V1_Parameters()}
    set {_uniqueStorage()._parameters = newValue}
  }
  /// Returns true if `parameters` has been explicitly set.
  public var hasParameters: Bool {return _storage._parameters != nil}
  /// Clears the value of `parameters`. Subsequent reads from it will return its default value.
  public mutating func clearParameters() {_storage._parameters = nil}

  public var parameterOrder: [String] {
    get {return _storage._parameterOrder}
    set {_uniqueStorage()._parameterOrder = newValue}
  }

  public var request: Discovery_V1_Request {
    get {return _storage._request ?? Discovery_V1_Request()}
    set {_uniqueStorage()._request = newValue}
  }
  /// Returns true if `request` has been explicitly set.
  public var hasRequest: Bool {return _storage._request != nil}
  /// Clears the value of `request`. Subsequent reads from it will return its default value.
  public mutating func clearRequest() {_storage._request = nil}

  public var response: Discovery_V1_Response {
    get {return _storage._response ?? Discovery_V1_Response()}
    set {_uniqueStorage()._response = newValue}
  }
  /// Returns true if `response` has been explicitly set.
  public var hasResponse: Bool {return _storage._response != nil}
  /// Clears the value of `response`. Subsequent reads from it will return its default value.
  public mutating func clearResponse() {_storage._response = nil}

  public var scopes: [String] {
    get {return _storage._scopes}
    set {_uniqueStorage()._scopes = newValue}
  }

  public var supportsMediaDownload: Bool {
    get {return _storage._supportsMediaDownload}
    set {_uniqueStorage()._supportsMediaDownload = newValue}
  }

  public var supportsMediaUpload: Bool {
    get {return _storage._supportsMediaUpload}
    set {_uniqueStorage()._supportsMediaUpload = newValue}
  }

  public var useMediaDownloadService: Bool {
    get {return _storage._useMediaDownloadService}
    set {_uniqueStorage()._useMediaDownloadService = newValue}
  }

  public var mediaUpload: Discovery_V1_MediaUpload {
    get {return _storage._mediaUpload ?? Discovery_V1_MediaUpload()}
    set {_uniqueStorage()._mediaUpload = newValue}
  }
  /// Returns true if `mediaUpload` has been explicitly set.
  public var hasMediaUpload: Bool {return _storage._mediaUpload != nil}
  /// Clears the value of `mediaUpload`. Subsequent reads from it will return its default value.
  public mutating func clearMediaUpload() {_storage._mediaUpload = nil}

  public var supportsSubscription: Bool {
    get {return _storage._supportsSubscription}
    set {_uniqueStorage()._supportsSubscription = newValue}
  }

  public var flatPath: String {
    get {return _storage._flatPath}
    set {_uniqueStorage()._flatPath = newValue}
  }

  public var etagRequired: Bool {
    get {return _storage._etagRequired}
    set {_uniqueStorage()._etagRequired = newValue}
  }

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeSingularStringField(value: &_storage._id)
        case 2: try decoder.decodeSingularStringField(value: &_storage._path)
        case 3: try decoder.decodeSingularStringField(value: &_storage._httpMethod)
        case 4: try decoder.decodeSingularStringField(value: &_storage._description_p)
        case 5: try decoder.decodeSingularMessageField(value: &_storage._parameters)
        case 6: try decoder.decodeRepeatedStringField(value: &_storage._parameterOrder)
        case 7: try decoder.decodeSingularMessageField(value: &_storage._request)
        case 8: try decoder.decodeSingularMessageField(value: &_storage._response)
        case 9: try decoder.decodeRepeatedStringField(value: &_storage._scopes)
        case 10: try decoder.decodeSingularBoolField(value: &_storage._supportsMediaDownload)
        case 11: try decoder.decodeSingularBoolField(value: &_storage._supportsMediaUpload)
        case 12: try decoder.decodeSingularBoolField(value: &_storage._useMediaDownloadService)
        case 13: try decoder.decodeSingularMessageField(value: &_storage._mediaUpload)
        case 14: try decoder.decodeSingularBoolField(value: &_storage._supportsSubscription)
        case 15: try decoder.decodeSingularStringField(value: &_storage._flatPath)
        case 16: try decoder.decodeSingularBoolField(value: &_storage._etagRequired)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if !_storage._id.isEmpty {
        try visitor.visitSingularStringField(value: _storage._id, fieldNumber: 1)
      }
      if !_storage._path.isEmpty {
        try visitor.visitSingularStringField(value: _storage._path, fieldNumber: 2)
      }
      if !_storage._httpMethod.isEmpty {
        try visitor.visitSingularStringField(value: _storage._httpMethod, fieldNumber: 3)
      }
      if !_storage._description_p.isEmpty {
        try visitor.visitSingularStringField(value: _storage._description_p, fieldNumber: 4)
      }
      if let v = _storage._parameters {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 5)
      }
      if !_storage._parameterOrder.isEmpty {
        try visitor.visitRepeatedStringField(value: _storage._parameterOrder, fieldNumber: 6)
      }
      if let v = _storage._request {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 7)
      }
      if let v = _storage._response {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 8)
      }
      if !_storage._scopes.isEmpty {
        try visitor.visitRepeatedStringField(value: _storage._scopes, fieldNumber: 9)
      }
      if _storage._supportsMediaDownload != false {
        try visitor.visitSingularBoolField(value: _storage._supportsMediaDownload, fieldNumber: 10)
      }
      if _storage._supportsMediaUpload != false {
        try visitor.visitSingularBoolField(value: _storage._supportsMediaUpload, fieldNumber: 11)
      }
      if _storage._useMediaDownloadService != false {
        try visitor.visitSingularBoolField(value: _storage._useMediaDownloadService, fieldNumber: 12)
      }
      if let v = _storage._mediaUpload {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 13)
      }
      if _storage._supportsSubscription != false {
        try visitor.visitSingularBoolField(value: _storage._supportsSubscription, fieldNumber: 14)
      }
      if !_storage._flatPath.isEmpty {
        try visitor.visitSingularStringField(value: _storage._flatPath, fieldNumber: 15)
      }
      if _storage._etagRequired != false {
        try visitor.visitSingularBoolField(value: _storage._etagRequired, fieldNumber: 16)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass.defaultInstance
}

public struct Discovery_V1_Methods: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Methods"

  public var additionalProperties: [Discovery_V1_NamedMethod] = []

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeRepeatedMessageField(value: &self.additionalProperties)
      default: break
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if !self.additionalProperties.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.additionalProperties, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }
}

/// Automatically-generated message used to represent maps of Method as ordered (name,value) pairs.
public struct Discovery_V1_NamedMethod: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".NamedMethod"

  /// Map key
  public var name: String {
    get {return _storage._name}
    set {_uniqueStorage()._name = newValue}
  }

  /// Mapped value
  public var value: Discovery_V1_Method {
    get {return _storage._value ?? Discovery_V1_Method()}
    set {_uniqueStorage()._value = newValue}
  }
  /// Returns true if `value` has been explicitly set.
  public var hasValue: Bool {return _storage._value != nil}
  /// Clears the value of `value`. Subsequent reads from it will return its default value.
  public mutating func clearValue() {_storage._value = nil}

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeSingularStringField(value: &_storage._name)
        case 2: try decoder.decodeSingularMessageField(value: &_storage._value)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if !_storage._name.isEmpty {
        try visitor.visitSingularStringField(value: _storage._name, fieldNumber: 1)
      }
      if let v = _storage._value {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 2)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass.defaultInstance
}

/// Automatically-generated message used to represent maps of Parameter as ordered (name,value) pairs.
public struct Discovery_V1_NamedParameter: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".NamedParameter"

  /// Map key
  public var name: String {
    get {return _storage._name}
    set {_uniqueStorage()._name = newValue}
  }

  /// Mapped value
  public var value: Discovery_V1_Parameter {
    get {return _storage._value ?? Discovery_V1_Parameter()}
    set {_uniqueStorage()._value = newValue}
  }
  /// Returns true if `value` has been explicitly set.
  public var hasValue: Bool {return _storage._value != nil}
  /// Clears the value of `value`. Subsequent reads from it will return its default value.
  public mutating func clearValue() {_storage._value = nil}

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeSingularStringField(value: &_storage._name)
        case 2: try decoder.decodeSingularMessageField(value: &_storage._value)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if !_storage._name.isEmpty {
        try visitor.visitSingularStringField(value: _storage._name, fieldNumber: 1)
      }
      if let v = _storage._value {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 2)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass.defaultInstance
}

/// Automatically-generated message used to represent maps of Resource as ordered (name,value) pairs.
public struct Discovery_V1_NamedResource: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".NamedResource"

  /// Map key
  public var name: String {
    get {return _storage._name}
    set {_uniqueStorage()._name = newValue}
  }

  /// Mapped value
  public var value: Discovery_V1_Resource {
    get {return _storage._value ?? Discovery_V1_Resource()}
    set {_uniqueStorage()._value = newValue}
  }
  /// Returns true if `value` has been explicitly set.
  public var hasValue: Bool {return _storage._value != nil}
  /// Clears the value of `value`. Subsequent reads from it will return its default value.
  public mutating func clearValue() {_storage._value = nil}

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeSingularStringField(value: &_storage._name)
        case 2: try decoder.decodeSingularMessageField(value: &_storage._value)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if !_storage._name.isEmpty {
        try visitor.visitSingularStringField(value: _storage._name, fieldNumber: 1)
      }
      if let v = _storage._value {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 2)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass.defaultInstance
}

/// Automatically-generated message used to represent maps of Schema as ordered (name,value) pairs.
public struct Discovery_V1_NamedSchema: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".NamedSchema"

  /// Map key
  public var name: String {
    get {return _storage._name}
    set {_uniqueStorage()._name = newValue}
  }

  /// Mapped value
  public var value: Discovery_V1_Schema {
    get {return _storage._value ?? Discovery_V1_Schema()}
    set {_uniqueStorage()._value = newValue}
  }
  /// Returns true if `value` has been explicitly set.
  public var hasValue: Bool {return _storage._value != nil}
  /// Clears the value of `value`. Subsequent reads from it will return its default value.
  public mutating func clearValue() {_storage._value = nil}

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeSingularStringField(value: &_storage._name)
        case 2: try decoder.decodeSingularMessageField(value: &_storage._value)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if !_storage._name.isEmpty {
        try visitor.visitSingularStringField(value: _storage._name, fieldNumber: 1)
      }
      if let v = _storage._value {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 2)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass.defaultInstance
}

/// Automatically-generated message used to represent maps of Scope as ordered (name,value) pairs.
public struct Discovery_V1_NamedScope: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".NamedScope"

  /// Map key
  public var name: String {
    get {return _storage._name}
    set {_uniqueStorage()._name = newValue}
  }

  /// Mapped value
  public var value: Discovery_V1_Scope {
    get {return _storage._value ?? Discovery_V1_Scope()}
    set {_uniqueStorage()._value = newValue}
  }
  /// Returns true if `value` has been explicitly set.
  public var hasValue: Bool {return _storage._value != nil}
  /// Clears the value of `value`. Subsequent reads from it will return its default value.
  public mutating func clearValue() {_storage._value = nil}

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeSingularStringField(value: &_storage._name)
        case 2: try decoder.decodeSingularMessageField(value: &_storage._value)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if !_storage._name.isEmpty {
        try visitor.visitSingularStringField(value: _storage._name, fieldNumber: 1)
      }
      if let v = _storage._value {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 2)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass.defaultInstance
}

public struct Discovery_V1_Oauth2: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Oauth2"

  public var scopes: Discovery_V1_Scopes {
    get {return _storage._scopes ?? Discovery_V1_Scopes()}
    set {_uniqueStorage()._scopes = newValue}
  }
  /// Returns true if `scopes` has been explicitly set.
  public var hasScopes: Bool {return _storage._scopes != nil}
  /// Clears the value of `scopes`. Subsequent reads from it will return its default value.
  public mutating func clearScopes() {_storage._scopes = nil}

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeSingularMessageField(value: &_storage._scopes)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if let v = _storage._scopes {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass.defaultInstance
}

public struct Discovery_V1_Parameter: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Parameter"

  public var id: String {
    get {return _storage._id}
    set {_uniqueStorage()._id = newValue}
  }

  public var type: String {
    get {return _storage._type}
    set {_uniqueStorage()._type = newValue}
  }

  public var ref: String {
    get {return _storage._ref}
    set {_uniqueStorage()._ref = newValue}
  }

  public var description_p: String {
    get {return _storage._description_p}
    set {_uniqueStorage()._description_p = newValue}
  }

  public var `default`: String {
    get {return _storage._default}
    set {_uniqueStorage()._default = newValue}
  }

  public var required: Bool {
    get {return _storage._required}
    set {_uniqueStorage()._required = newValue}
  }

  public var format: String {
    get {return _storage._format}
    set {_uniqueStorage()._format = newValue}
  }

  public var pattern: String {
    get {return _storage._pattern}
    set {_uniqueStorage()._pattern = newValue}
  }

  public var minimum: String {
    get {return _storage._minimum}
    set {_uniqueStorage()._minimum = newValue}
  }

  public var maximum: String {
    get {return _storage._maximum}
    set {_uniqueStorage()._maximum = newValue}
  }

  public var `enum`: [String] {
    get {return _storage._enum}
    set {_uniqueStorage()._enum = newValue}
  }

  public var enumDescriptions: [String] {
    get {return _storage._enumDescriptions}
    set {_uniqueStorage()._enumDescriptions = newValue}
  }

  public var repeated: Bool {
    get {return _storage._repeated}
    set {_uniqueStorage()._repeated = newValue}
  }

  public var location: String {
    get {return _storage._location}
    set {_uniqueStorage()._location = newValue}
  }

  public var properties: Discovery_V1_Schemas {
    get {return _storage._properties ?? Discovery_V1_Schemas()}
    set {_uniqueStorage()._properties = newValue}
  }
  /// Returns true if `properties` has been explicitly set.
  public var hasProperties: Bool {return _storage._properties != nil}
  /// Clears the value of `properties`. Subsequent reads from it will return its default value.
  public mutating func clearProperties() {_storage._properties = nil}

  public var additionalProperties: Discovery_V1_Schema {
    get {return _storage._additionalProperties ?? Discovery_V1_Schema()}
    set {_uniqueStorage()._additionalProperties = newValue}
  }
  /// Returns true if `additionalProperties` has been explicitly set.
  public var hasAdditionalProperties: Bool {return _storage._additionalProperties != nil}
  /// Clears the value of `additionalProperties`. Subsequent reads from it will return its default value.
  public mutating func clearAdditionalProperties() {_storage._additionalProperties = nil}

  public var items: Discovery_V1_Schema {
    get {return _storage._items ?? Discovery_V1_Schema()}
    set {_uniqueStorage()._items = newValue}
  }
  /// Returns true if `items` has been explicitly set.
  public var hasItems: Bool {return _storage._items != nil}
  /// Clears the value of `items`. Subsequent reads from it will return its default value.
  public mutating func clearItems() {_storage._items = nil}

  public var annotations: Discovery_V1_Annotations {
    get {return _storage._annotations ?? Discovery_V1_Annotations()}
    set {_uniqueStorage()._annotations = newValue}
  }
  /// Returns true if `annotations` has been explicitly set.
  public var hasAnnotations: Bool {return _storage._annotations != nil}
  /// Clears the value of `annotations`. Subsequent reads from it will return its default value.
  public mutating func clearAnnotations() {_storage._annotations = nil}

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeSingularStringField(value: &_storage._id)
        case 2: try decoder.decodeSingularStringField(value: &_storage._type)
        case 3: try decoder.decodeSingularStringField(value: &_storage._ref)
        case 4: try decoder.decodeSingularStringField(value: &_storage._description_p)
        case 5: try decoder.decodeSingularStringField(value: &_storage._default)
        case 6: try decoder.decodeSingularBoolField(value: &_storage._required)
        case 7: try decoder.decodeSingularStringField(value: &_storage._format)
        case 8: try decoder.decodeSingularStringField(value: &_storage._pattern)
        case 9: try decoder.decodeSingularStringField(value: &_storage._minimum)
        case 10: try decoder.decodeSingularStringField(value: &_storage._maximum)
        case 11: try decoder.decodeRepeatedStringField(value: &_storage._enum)
        case 12: try decoder.decodeRepeatedStringField(value: &_storage._enumDescriptions)
        case 13: try decoder.decodeSingularBoolField(value: &_storage._repeated)
        case 14: try decoder.decodeSingularStringField(value: &_storage._location)
        case 15: try decoder.decodeSingularMessageField(value: &_storage._properties)
        case 16: try decoder.decodeSingularMessageField(value: &_storage._additionalProperties)
        case 17: try decoder.decodeSingularMessageField(value: &_storage._items)
        case 18: try decoder.decodeSingularMessageField(value: &_storage._annotations)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if !_storage._id.isEmpty {
        try visitor.visitSingularStringField(value: _storage._id, fieldNumber: 1)
      }
      if !_storage._type.isEmpty {
        try visitor.visitSingularStringField(value: _storage._type, fieldNumber: 2)
      }
      if !_storage._ref.isEmpty {
        try visitor.visitSingularStringField(value: _storage._ref, fieldNumber: 3)
      }
      if !_storage._description_p.isEmpty {
        try visitor.visitSingularStringField(value: _storage._description_p, fieldNumber: 4)
      }
      if !_storage._default.isEmpty {
        try visitor.visitSingularStringField(value: _storage._default, fieldNumber: 5)
      }
      if _storage._required != false {
        try visitor.visitSingularBoolField(value: _storage._required, fieldNumber: 6)
      }
      if !_storage._format.isEmpty {
        try visitor.visitSingularStringField(value: _storage._format, fieldNumber: 7)
      }
      if !_storage._pattern.isEmpty {
        try visitor.visitSingularStringField(value: _storage._pattern, fieldNumber: 8)
      }
      if !_storage._minimum.isEmpty {
        try visitor.visitSingularStringField(value: _storage._minimum, fieldNumber: 9)
      }
      if !_storage._maximum.isEmpty {
        try visitor.visitSingularStringField(value: _storage._maximum, fieldNumber: 10)
      }
      if !_storage._enum.isEmpty {
        try visitor.visitRepeatedStringField(value: _storage._enum, fieldNumber: 11)
      }
      if !_storage._enumDescriptions.isEmpty {
        try visitor.visitRepeatedStringField(value: _storage._enumDescriptions, fieldNumber: 12)
      }
      if _storage._repeated != false {
        try visitor.visitSingularBoolField(value: _storage._repeated, fieldNumber: 13)
      }
      if !_storage._location.isEmpty {
        try visitor.visitSingularStringField(value: _storage._location, fieldNumber: 14)
      }
      if let v = _storage._properties {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 15)
      }
      if let v = _storage._additionalProperties {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 16)
      }
      if let v = _storage._items {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 17)
      }
      if let v = _storage._annotations {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 18)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass.defaultInstance
}

public struct Discovery_V1_Parameters: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Parameters"

  public var additionalProperties: [Discovery_V1_NamedParameter] = []

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeRepeatedMessageField(value: &self.additionalProperties)
      default: break
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if !self.additionalProperties.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.additionalProperties, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }
}

public struct Discovery_V1_Protocols: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Protocols"

  public var simple: Discovery_V1_Simple {
    get {return _storage._simple ?? Discovery_V1_Simple()}
    set {_uniqueStorage()._simple = newValue}
  }
  /// Returns true if `simple` has been explicitly set.
  public var hasSimple: Bool {return _storage._simple != nil}
  /// Clears the value of `simple`. Subsequent reads from it will return its default value.
  public mutating func clearSimple() {_storage._simple = nil}

  public var resumable: Discovery_V1_Resumable {
    get {return _storage._resumable ?? Discovery_V1_Resumable()}
    set {_uniqueStorage()._resumable = newValue}
  }
  /// Returns true if `resumable` has been explicitly set.
  public var hasResumable: Bool {return _storage._resumable != nil}
  /// Clears the value of `resumable`. Subsequent reads from it will return its default value.
  public mutating func clearResumable() {_storage._resumable = nil}

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeSingularMessageField(value: &_storage._simple)
        case 2: try decoder.decodeSingularMessageField(value: &_storage._resumable)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if let v = _storage._simple {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
      }
      if let v = _storage._resumable {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 2)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass.defaultInstance
}

public struct Discovery_V1_Request: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Request"

  public var ref: String = String()

  public var parameterName: String = String()

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self.ref)
      case 2: try decoder.decodeSingularStringField(value: &self.parameterName)
      default: break
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if !self.ref.isEmpty {
      try visitor.visitSingularStringField(value: self.ref, fieldNumber: 1)
    }
    if !self.parameterName.isEmpty {
      try visitor.visitSingularStringField(value: self.parameterName, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }
}

public struct Discovery_V1_Resource: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Resource"

  public var methods: Discovery_V1_Methods {
    get {return _storage._methods ?? Discovery_V1_Methods()}
    set {_uniqueStorage()._methods = newValue}
  }
  /// Returns true if `methods` has been explicitly set.
  public var hasMethods: Bool {return _storage._methods != nil}
  /// Clears the value of `methods`. Subsequent reads from it will return its default value.
  public mutating func clearMethods() {_storage._methods = nil}

  public var resources: Discovery_V1_Resources {
    get {return _storage._resources ?? Discovery_V1_Resources()}
    set {_uniqueStorage()._resources = newValue}
  }
  /// Returns true if `resources` has been explicitly set.
  public var hasResources: Bool {return _storage._resources != nil}
  /// Clears the value of `resources`. Subsequent reads from it will return its default value.
  public mutating func clearResources() {_storage._resources = nil}

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeSingularMessageField(value: &_storage._methods)
        case 2: try decoder.decodeSingularMessageField(value: &_storage._resources)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if let v = _storage._methods {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
      }
      if let v = _storage._resources {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 2)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass.defaultInstance
}

public struct Discovery_V1_Resources: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Resources"

  public var additionalProperties: [Discovery_V1_NamedResource] = []

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeRepeatedMessageField(value: &self.additionalProperties)
      default: break
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if !self.additionalProperties.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.additionalProperties, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }
}

public struct Discovery_V1_Response: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Response"

  public var ref: String = String()

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self.ref)
      default: break
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if !self.ref.isEmpty {
      try visitor.visitSingularStringField(value: self.ref, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }
}

public struct Discovery_V1_Resumable: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Resumable"

  public var multipart: Bool = false

  public var path: String = String()

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularBoolField(value: &self.multipart)
      case 2: try decoder.decodeSingularStringField(value: &self.path)
      default: break
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if self.multipart != false {
      try visitor.visitSingularBoolField(value: self.multipart, fieldNumber: 1)
    }
    if !self.path.isEmpty {
      try visitor.visitSingularStringField(value: self.path, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }
}

public struct Discovery_V1_Schema: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Schema"

  public var id: String {
    get {return _storage._id}
    set {_uniqueStorage()._id = newValue}
  }

  public var type: String {
    get {return _storage._type}
    set {_uniqueStorage()._type = newValue}
  }

  public var description_p: String {
    get {return _storage._description_p}
    set {_uniqueStorage()._description_p = newValue}
  }

  public var `default`: String {
    get {return _storage._default}
    set {_uniqueStorage()._default = newValue}
  }

  public var required: Bool {
    get {return _storage._required}
    set {_uniqueStorage()._required = newValue}
  }

  public var format: String {
    get {return _storage._format}
    set {_uniqueStorage()._format = newValue}
  }

  public var pattern: String {
    get {return _storage._pattern}
    set {_uniqueStorage()._pattern = newValue}
  }

  public var minimum: String {
    get {return _storage._minimum}
    set {_uniqueStorage()._minimum = newValue}
  }

  public var maximum: String {
    get {return _storage._maximum}
    set {_uniqueStorage()._maximum = newValue}
  }

  public var `enum`: [String] {
    get {return _storage._enum}
    set {_uniqueStorage()._enum = newValue}
  }

  public var enumDescriptions: [String] {
    get {return _storage._enumDescriptions}
    set {_uniqueStorage()._enumDescriptions = newValue}
  }

  public var repeated: Bool {
    get {return _storage._repeated}
    set {_uniqueStorage()._repeated = newValue}
  }

  public var location: String {
    get {return _storage._location}
    set {_uniqueStorage()._location = newValue}
  }

  public var properties: Discovery_V1_Schemas {
    get {return _storage._properties ?? Discovery_V1_Schemas()}
    set {_uniqueStorage()._properties = newValue}
  }
  /// Returns true if `properties` has been explicitly set.
  public var hasProperties: Bool {return _storage._properties != nil}
  /// Clears the value of `properties`. Subsequent reads from it will return its default value.
  public mutating func clearProperties() {_storage._properties = nil}

  public var additionalProperties: Discovery_V1_Schema {
    get {return _storage._additionalProperties ?? Discovery_V1_Schema()}
    set {_uniqueStorage()._additionalProperties = newValue}
  }
  /// Returns true if `additionalProperties` has been explicitly set.
  public var hasAdditionalProperties: Bool {return _storage._additionalProperties != nil}
  /// Clears the value of `additionalProperties`. Subsequent reads from it will return its default value.
  public mutating func clearAdditionalProperties() {_storage._additionalProperties = nil}

  public var items: Discovery_V1_Schema {
    get {return _storage._items ?? Discovery_V1_Schema()}
    set {_uniqueStorage()._items = newValue}
  }
  /// Returns true if `items` has been explicitly set.
  public var hasItems: Bool {return _storage._items != nil}
  /// Clears the value of `items`. Subsequent reads from it will return its default value.
  public mutating func clearItems() {_storage._items = nil}

  public var ref: String {
    get {return _storage._ref}
    set {_uniqueStorage()._ref = newValue}
  }

  public var annotations: Discovery_V1_Annotations {
    get {return _storage._annotations ?? Discovery_V1_Annotations()}
    set {_uniqueStorage()._annotations = newValue}
  }
  /// Returns true if `annotations` has been explicitly set.
  public var hasAnnotations: Bool {return _storage._annotations != nil}
  /// Clears the value of `annotations`. Subsequent reads from it will return its default value.
  public mutating func clearAnnotations() {_storage._annotations = nil}

  public var readOnly: Bool {
    get {return _storage._readOnly}
    set {_uniqueStorage()._readOnly = newValue}
  }

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    _ = _uniqueStorage()
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      while let fieldNumber = try decoder.nextFieldNumber() {
        switch fieldNumber {
        case 1: try decoder.decodeSingularStringField(value: &_storage._id)
        case 2: try decoder.decodeSingularStringField(value: &_storage._type)
        case 3: try decoder.decodeSingularStringField(value: &_storage._description_p)
        case 4: try decoder.decodeSingularStringField(value: &_storage._default)
        case 5: try decoder.decodeSingularBoolField(value: &_storage._required)
        case 6: try decoder.decodeSingularStringField(value: &_storage._format)
        case 7: try decoder.decodeSingularStringField(value: &_storage._pattern)
        case 8: try decoder.decodeSingularStringField(value: &_storage._minimum)
        case 9: try decoder.decodeSingularStringField(value: &_storage._maximum)
        case 10: try decoder.decodeRepeatedStringField(value: &_storage._enum)
        case 11: try decoder.decodeRepeatedStringField(value: &_storage._enumDescriptions)
        case 12: try decoder.decodeSingularBoolField(value: &_storage._repeated)
        case 13: try decoder.decodeSingularStringField(value: &_storage._location)
        case 14: try decoder.decodeSingularMessageField(value: &_storage._properties)
        case 15: try decoder.decodeSingularMessageField(value: &_storage._additionalProperties)
        case 16: try decoder.decodeSingularMessageField(value: &_storage._items)
        case 17: try decoder.decodeSingularStringField(value: &_storage._ref)
        case 18: try decoder.decodeSingularMessageField(value: &_storage._annotations)
        case 19: try decoder.decodeSingularBoolField(value: &_storage._readOnly)
        default: break
        }
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
      if !_storage._id.isEmpty {
        try visitor.visitSingularStringField(value: _storage._id, fieldNumber: 1)
      }
      if !_storage._type.isEmpty {
        try visitor.visitSingularStringField(value: _storage._type, fieldNumber: 2)
      }
      if !_storage._description_p.isEmpty {
        try visitor.visitSingularStringField(value: _storage._description_p, fieldNumber: 3)
      }
      if !_storage._default.isEmpty {
        try visitor.visitSingularStringField(value: _storage._default, fieldNumber: 4)
      }
      if _storage._required != false {
        try visitor.visitSingularBoolField(value: _storage._required, fieldNumber: 5)
      }
      if !_storage._format.isEmpty {
        try visitor.visitSingularStringField(value: _storage._format, fieldNumber: 6)
      }
      if !_storage._pattern.isEmpty {
        try visitor.visitSingularStringField(value: _storage._pattern, fieldNumber: 7)
      }
      if !_storage._minimum.isEmpty {
        try visitor.visitSingularStringField(value: _storage._minimum, fieldNumber: 8)
      }
      if !_storage._maximum.isEmpty {
        try visitor.visitSingularStringField(value: _storage._maximum, fieldNumber: 9)
      }
      if !_storage._enum.isEmpty {
        try visitor.visitRepeatedStringField(value: _storage._enum, fieldNumber: 10)
      }
      if !_storage._enumDescriptions.isEmpty {
        try visitor.visitRepeatedStringField(value: _storage._enumDescriptions, fieldNumber: 11)
      }
      if _storage._repeated != false {
        try visitor.visitSingularBoolField(value: _storage._repeated, fieldNumber: 12)
      }
      if !_storage._location.isEmpty {
        try visitor.visitSingularStringField(value: _storage._location, fieldNumber: 13)
      }
      if let v = _storage._properties {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 14)
      }
      if let v = _storage._additionalProperties {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 15)
      }
      if let v = _storage._items {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 16)
      }
      if !_storage._ref.isEmpty {
        try visitor.visitSingularStringField(value: _storage._ref, fieldNumber: 17)
      }
      if let v = _storage._annotations {
        try visitor.visitSingularMessageField(value: v, fieldNumber: 18)
      }
      if _storage._readOnly != false {
        try visitor.visitSingularBoolField(value: _storage._readOnly, fieldNumber: 19)
      }
    }
    try unknownFields.traverse(visitor: &visitor)
  }

  fileprivate var _storage = _StorageClass.defaultInstance
}

public struct Discovery_V1_Schemas: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Schemas"

  public var additionalProperties: [Discovery_V1_NamedSchema] = []

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeRepeatedMessageField(value: &self.additionalProperties)
      default: break
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if !self.additionalProperties.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.additionalProperties, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }
}

public struct Discovery_V1_Scope: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Scope"

  public var description_p: String = String()

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularStringField(value: &self.description_p)
      default: break
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if !self.description_p.isEmpty {
      try visitor.visitSingularStringField(value: self.description_p, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }
}

public struct Discovery_V1_Scopes: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Scopes"

  public var additionalProperties: [Discovery_V1_NamedScope] = []

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeRepeatedMessageField(value: &self.additionalProperties)
      default: break
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if !self.additionalProperties.isEmpty {
      try visitor.visitRepeatedMessageField(value: self.additionalProperties, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }
}

public struct Discovery_V1_Simple: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".Simple"

  public var multipart: Bool = false

  public var path: String = String()

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeSingularBoolField(value: &self.multipart)
      case 2: try decoder.decodeSingularStringField(value: &self.path)
      default: break
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if self.multipart != false {
      try visitor.visitSingularBoolField(value: self.multipart, fieldNumber: 1)
    }
    if !self.path.isEmpty {
      try visitor.visitSingularStringField(value: self.path, fieldNumber: 2)
    }
    try unknownFields.traverse(visitor: &visitor)
  }
}

public struct Discovery_V1_StringArray: SwiftProtobuf.Message {
  public static let protoMessageName: String = _protobuf_package + ".StringArray"

  public var value: [String] = []

  public var unknownFields = SwiftProtobuf.UnknownStorage()

  public init() {}

  /// Used by the decoding initializers in the SwiftProtobuf library, not generally
  /// used directly. `init(serializedData:)`, `init(jsonUTF8Data:)`, and other decoding
  /// initializers are defined in the SwiftProtobuf library. See the Message and
  /// Message+*Additions` files.
  public mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
    while let fieldNumber = try decoder.nextFieldNumber() {
      switch fieldNumber {
      case 1: try decoder.decodeRepeatedStringField(value: &self.value)
      default: break
      }
    }
  }

  /// Used by the encoding methods of the SwiftProtobuf library, not generally
  /// used directly. `Message.serializedData()`, `Message.jsonUTF8Data()`, and
  /// other serializer methods are defined in the SwiftProtobuf library. See the
  /// `Message` and `Message+*Additions` files.
  public func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
    if !self.value.isEmpty {
      try visitor.visitRepeatedStringField(value: self.value, fieldNumber: 1)
    }
    try unknownFields.traverse(visitor: &visitor)
  }
}

// MARK: - Code below here is support for the SwiftProtobuf runtime.

fileprivate let _protobuf_package = "discovery.v1"

extension Discovery_V1_Annotations: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "required"),
  ]

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Annotations) -> Bool {
    if self.required != other.required {return false}
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Any: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "value"),
    2: .same(proto: "yaml"),
  ]

  fileprivate class _StorageClass {
    var _value: SwiftProtobuf.Google_Protobuf_Any? = nil
    var _yaml: String = String()

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _value = source._value
      _yaml = source._yaml
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Any) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._value != other_storage._value {return false}
        if _storage._yaml != other_storage._yaml {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Auth: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "oauth2"),
  ]

  fileprivate class _StorageClass {
    var _oauth2: Discovery_V1_Oauth2? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _oauth2 = source._oauth2
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Auth) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._oauth2 != other_storage._oauth2 {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Document: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "kind"),
    2: .standard(proto: "discovery_version"),
    3: .same(proto: "id"),
    4: .same(proto: "name"),
    5: .same(proto: "version"),
    6: .same(proto: "revision"),
    7: .same(proto: "title"),
    8: .same(proto: "description"),
    9: .same(proto: "icons"),
    10: .standard(proto: "documentation_link"),
    11: .same(proto: "labels"),
    12: .same(proto: "protocol"),
    13: .standard(proto: "base_url"),
    14: .standard(proto: "base_path"),
    15: .standard(proto: "root_url"),
    16: .standard(proto: "service_path"),
    17: .standard(proto: "batch_path"),
    18: .same(proto: "parameters"),
    19: .same(proto: "auth"),
    20: .same(proto: "features"),
    21: .same(proto: "schemas"),
    22: .same(proto: "methods"),
    23: .same(proto: "resources"),
    24: .same(proto: "etag"),
    25: .standard(proto: "owner_domain"),
    26: .standard(proto: "owner_name"),
    27: .standard(proto: "version_module"),
    28: .standard(proto: "canonical_name"),
    29: .standard(proto: "fully_encode_reserved_expansion"),
    30: .standard(proto: "package_path"),
  ]

  fileprivate class _StorageClass {
    var _kind: String = String()
    var _discoveryVersion: String = String()
    var _id: String = String()
    var _name: String = String()
    var _version: String = String()
    var _revision: String = String()
    var _title: String = String()
    var _description_p: String = String()
    var _icons: Discovery_V1_Icons? = nil
    var _documentationLink: String = String()
    var _labels: [String] = []
    var _protocol: String = String()
    var _baseURL: String = String()
    var _basePath: String = String()
    var _rootURL: String = String()
    var _servicePath: String = String()
    var _batchPath: String = String()
    var _parameters: Discovery_V1_Parameters? = nil
    var _auth: Discovery_V1_Auth? = nil
    var _features: [String] = []
    var _schemas: Discovery_V1_Schemas? = nil
    var _methods: Discovery_V1_Methods? = nil
    var _resources: Discovery_V1_Resources? = nil
    var _etag: String = String()
    var _ownerDomain: String = String()
    var _ownerName: String = String()
    var _versionModule: Bool = false
    var _canonicalName: String = String()
    var _fullyEncodeReservedExpansion: Bool = false
    var _packagePath: String = String()

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _kind = source._kind
      _discoveryVersion = source._discoveryVersion
      _id = source._id
      _name = source._name
      _version = source._version
      _revision = source._revision
      _title = source._title
      _description_p = source._description_p
      _icons = source._icons
      _documentationLink = source._documentationLink
      _labels = source._labels
      _protocol = source._protocol
      _baseURL = source._baseURL
      _basePath = source._basePath
      _rootURL = source._rootURL
      _servicePath = source._servicePath
      _batchPath = source._batchPath
      _parameters = source._parameters
      _auth = source._auth
      _features = source._features
      _schemas = source._schemas
      _methods = source._methods
      _resources = source._resources
      _etag = source._etag
      _ownerDomain = source._ownerDomain
      _ownerName = source._ownerName
      _versionModule = source._versionModule
      _canonicalName = source._canonicalName
      _fullyEncodeReservedExpansion = source._fullyEncodeReservedExpansion
      _packagePath = source._packagePath
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Document) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._kind != other_storage._kind {return false}
        if _storage._discoveryVersion != other_storage._discoveryVersion {return false}
        if _storage._id != other_storage._id {return false}
        if _storage._name != other_storage._name {return false}
        if _storage._version != other_storage._version {return false}
        if _storage._revision != other_storage._revision {return false}
        if _storage._title != other_storage._title {return false}
        if _storage._description_p != other_storage._description_p {return false}
        if _storage._icons != other_storage._icons {return false}
        if _storage._documentationLink != other_storage._documentationLink {return false}
        if _storage._labels != other_storage._labels {return false}
        if _storage._protocol != other_storage._protocol {return false}
        if _storage._baseURL != other_storage._baseURL {return false}
        if _storage._basePath != other_storage._basePath {return false}
        if _storage._rootURL != other_storage._rootURL {return false}
        if _storage._servicePath != other_storage._servicePath {return false}
        if _storage._batchPath != other_storage._batchPath {return false}
        if _storage._parameters != other_storage._parameters {return false}
        if _storage._auth != other_storage._auth {return false}
        if _storage._features != other_storage._features {return false}
        if _storage._schemas != other_storage._schemas {return false}
        if _storage._methods != other_storage._methods {return false}
        if _storage._resources != other_storage._resources {return false}
        if _storage._etag != other_storage._etag {return false}
        if _storage._ownerDomain != other_storage._ownerDomain {return false}
        if _storage._ownerName != other_storage._ownerName {return false}
        if _storage._versionModule != other_storage._versionModule {return false}
        if _storage._canonicalName != other_storage._canonicalName {return false}
        if _storage._fullyEncodeReservedExpansion != other_storage._fullyEncodeReservedExpansion {return false}
        if _storage._packagePath != other_storage._packagePath {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Icons: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "x16"),
    2: .same(proto: "x32"),
  ]

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Icons) -> Bool {
    if self.x16 != other.x16 {return false}
    if self.x32 != other.x32 {return false}
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_MediaUpload: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "accept"),
    2: .standard(proto: "max_size"),
    3: .same(proto: "protocols"),
    4: .standard(proto: "supports_subscription"),
  ]

  fileprivate class _StorageClass {
    var _accept: [String] = []
    var _maxSize: String = String()
    var _protocols: Discovery_V1_Protocols? = nil
    var _supportsSubscription: Bool = false

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _accept = source._accept
      _maxSize = source._maxSize
      _protocols = source._protocols
      _supportsSubscription = source._supportsSubscription
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_MediaUpload) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._accept != other_storage._accept {return false}
        if _storage._maxSize != other_storage._maxSize {return false}
        if _storage._protocols != other_storage._protocols {return false}
        if _storage._supportsSubscription != other_storage._supportsSubscription {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Method: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "id"),
    2: .same(proto: "path"),
    3: .standard(proto: "http_method"),
    4: .same(proto: "description"),
    5: .same(proto: "parameters"),
    6: .standard(proto: "parameter_order"),
    7: .same(proto: "request"),
    8: .same(proto: "response"),
    9: .same(proto: "scopes"),
    10: .standard(proto: "supports_media_download"),
    11: .standard(proto: "supports_media_upload"),
    12: .standard(proto: "use_media_download_service"),
    13: .standard(proto: "media_upload"),
    14: .standard(proto: "supports_subscription"),
    15: .standard(proto: "flat_path"),
    16: .standard(proto: "etag_required"),
  ]

  fileprivate class _StorageClass {
    var _id: String = String()
    var _path: String = String()
    var _httpMethod: String = String()
    var _description_p: String = String()
    var _parameters: Discovery_V1_Parameters? = nil
    var _parameterOrder: [String] = []
    var _request: Discovery_V1_Request? = nil
    var _response: Discovery_V1_Response? = nil
    var _scopes: [String] = []
    var _supportsMediaDownload: Bool = false
    var _supportsMediaUpload: Bool = false
    var _useMediaDownloadService: Bool = false
    var _mediaUpload: Discovery_V1_MediaUpload? = nil
    var _supportsSubscription: Bool = false
    var _flatPath: String = String()
    var _etagRequired: Bool = false

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _id = source._id
      _path = source._path
      _httpMethod = source._httpMethod
      _description_p = source._description_p
      _parameters = source._parameters
      _parameterOrder = source._parameterOrder
      _request = source._request
      _response = source._response
      _scopes = source._scopes
      _supportsMediaDownload = source._supportsMediaDownload
      _supportsMediaUpload = source._supportsMediaUpload
      _useMediaDownloadService = source._useMediaDownloadService
      _mediaUpload = source._mediaUpload
      _supportsSubscription = source._supportsSubscription
      _flatPath = source._flatPath
      _etagRequired = source._etagRequired
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Method) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._id != other_storage._id {return false}
        if _storage._path != other_storage._path {return false}
        if _storage._httpMethod != other_storage._httpMethod {return false}
        if _storage._description_p != other_storage._description_p {return false}
        if _storage._parameters != other_storage._parameters {return false}
        if _storage._parameterOrder != other_storage._parameterOrder {return false}
        if _storage._request != other_storage._request {return false}
        if _storage._response != other_storage._response {return false}
        if _storage._scopes != other_storage._scopes {return false}
        if _storage._supportsMediaDownload != other_storage._supportsMediaDownload {return false}
        if _storage._supportsMediaUpload != other_storage._supportsMediaUpload {return false}
        if _storage._useMediaDownloadService != other_storage._useMediaDownloadService {return false}
        if _storage._mediaUpload != other_storage._mediaUpload {return false}
        if _storage._supportsSubscription != other_storage._supportsSubscription {return false}
        if _storage._flatPath != other_storage._flatPath {return false}
        if _storage._etagRequired != other_storage._etagRequired {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Methods: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "additional_properties"),
  ]

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Methods) -> Bool {
    if self.additionalProperties != other.additionalProperties {return false}
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_NamedMethod: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "name"),
    2: .same(proto: "value"),
  ]

  fileprivate class _StorageClass {
    var _name: String = String()
    var _value: Discovery_V1_Method? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _name = source._name
      _value = source._value
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_NamedMethod) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._name != other_storage._name {return false}
        if _storage._value != other_storage._value {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_NamedParameter: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "name"),
    2: .same(proto: "value"),
  ]

  fileprivate class _StorageClass {
    var _name: String = String()
    var _value: Discovery_V1_Parameter? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _name = source._name
      _value = source._value
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_NamedParameter) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._name != other_storage._name {return false}
        if _storage._value != other_storage._value {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_NamedResource: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "name"),
    2: .same(proto: "value"),
  ]

  fileprivate class _StorageClass {
    var _name: String = String()
    var _value: Discovery_V1_Resource? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _name = source._name
      _value = source._value
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_NamedResource) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._name != other_storage._name {return false}
        if _storage._value != other_storage._value {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_NamedSchema: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "name"),
    2: .same(proto: "value"),
  ]

  fileprivate class _StorageClass {
    var _name: String = String()
    var _value: Discovery_V1_Schema? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _name = source._name
      _value = source._value
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_NamedSchema) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._name != other_storage._name {return false}
        if _storage._value != other_storage._value {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_NamedScope: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "name"),
    2: .same(proto: "value"),
  ]

  fileprivate class _StorageClass {
    var _name: String = String()
    var _value: Discovery_V1_Scope? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _name = source._name
      _value = source._value
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_NamedScope) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._name != other_storage._name {return false}
        if _storage._value != other_storage._value {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Oauth2: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "scopes"),
  ]

  fileprivate class _StorageClass {
    var _scopes: Discovery_V1_Scopes? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _scopes = source._scopes
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Oauth2) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._scopes != other_storage._scopes {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Parameter: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "id"),
    2: .same(proto: "type"),
    3: .standard(proto: "_ref"),
    4: .same(proto: "description"),
    5: .same(proto: "default"),
    6: .same(proto: "required"),
    7: .same(proto: "format"),
    8: .same(proto: "pattern"),
    9: .same(proto: "minimum"),
    10: .same(proto: "maximum"),
    11: .same(proto: "enum"),
    12: .standard(proto: "enum_descriptions"),
    13: .same(proto: "repeated"),
    14: .same(proto: "location"),
    15: .same(proto: "properties"),
    16: .standard(proto: "additional_properties"),
    17: .same(proto: "items"),
    18: .same(proto: "annotations"),
  ]

  fileprivate class _StorageClass {
    var _id: String = String()
    var _type: String = String()
    var _ref: String = String()
    var _description_p: String = String()
    var _default: String = String()
    var _required: Bool = false
    var _format: String = String()
    var _pattern: String = String()
    var _minimum: String = String()
    var _maximum: String = String()
    var _enum: [String] = []
    var _enumDescriptions: [String] = []
    var _repeated: Bool = false
    var _location: String = String()
    var _properties: Discovery_V1_Schemas? = nil
    var _additionalProperties: Discovery_V1_Schema? = nil
    var _items: Discovery_V1_Schema? = nil
    var _annotations: Discovery_V1_Annotations? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _id = source._id
      _type = source._type
      _ref = source._ref
      _description_p = source._description_p
      _default = source._default
      _required = source._required
      _format = source._format
      _pattern = source._pattern
      _minimum = source._minimum
      _maximum = source._maximum
      _enum = source._enum
      _enumDescriptions = source._enumDescriptions
      _repeated = source._repeated
      _location = source._location
      _properties = source._properties
      _additionalProperties = source._additionalProperties
      _items = source._items
      _annotations = source._annotations
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Parameter) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._id != other_storage._id {return false}
        if _storage._type != other_storage._type {return false}
        if _storage._ref != other_storage._ref {return false}
        if _storage._description_p != other_storage._description_p {return false}
        if _storage._default != other_storage._default {return false}
        if _storage._required != other_storage._required {return false}
        if _storage._format != other_storage._format {return false}
        if _storage._pattern != other_storage._pattern {return false}
        if _storage._minimum != other_storage._minimum {return false}
        if _storage._maximum != other_storage._maximum {return false}
        if _storage._enum != other_storage._enum {return false}
        if _storage._enumDescriptions != other_storage._enumDescriptions {return false}
        if _storage._repeated != other_storage._repeated {return false}
        if _storage._location != other_storage._location {return false}
        if _storage._properties != other_storage._properties {return false}
        if _storage._additionalProperties != other_storage._additionalProperties {return false}
        if _storage._items != other_storage._items {return false}
        if _storage._annotations != other_storage._annotations {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Parameters: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "additional_properties"),
  ]

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Parameters) -> Bool {
    if self.additionalProperties != other.additionalProperties {return false}
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Protocols: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "simple"),
    2: .same(proto: "resumable"),
  ]

  fileprivate class _StorageClass {
    var _simple: Discovery_V1_Simple? = nil
    var _resumable: Discovery_V1_Resumable? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _simple = source._simple
      _resumable = source._resumable
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Protocols) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._simple != other_storage._simple {return false}
        if _storage._resumable != other_storage._resumable {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Request: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "_ref"),
    2: .standard(proto: "parameter_name"),
  ]

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Request) -> Bool {
    if self.ref != other.ref {return false}
    if self.parameterName != other.parameterName {return false}
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Resource: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "methods"),
    2: .same(proto: "resources"),
  ]

  fileprivate class _StorageClass {
    var _methods: Discovery_V1_Methods? = nil
    var _resources: Discovery_V1_Resources? = nil

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _methods = source._methods
      _resources = source._resources
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Resource) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._methods != other_storage._methods {return false}
        if _storage._resources != other_storage._resources {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Resources: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "additional_properties"),
  ]

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Resources) -> Bool {
    if self.additionalProperties != other.additionalProperties {return false}
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Response: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "_ref"),
  ]

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Response) -> Bool {
    if self.ref != other.ref {return false}
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Resumable: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "multipart"),
    2: .same(proto: "path"),
  ]

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Resumable) -> Bool {
    if self.multipart != other.multipart {return false}
    if self.path != other.path {return false}
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Schema: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "id"),
    2: .same(proto: "type"),
    3: .same(proto: "description"),
    4: .same(proto: "default"),
    5: .same(proto: "required"),
    6: .same(proto: "format"),
    7: .same(proto: "pattern"),
    8: .same(proto: "minimum"),
    9: .same(proto: "maximum"),
    10: .same(proto: "enum"),
    11: .standard(proto: "enum_descriptions"),
    12: .same(proto: "repeated"),
    13: .same(proto: "location"),
    14: .same(proto: "properties"),
    15: .standard(proto: "additional_properties"),
    16: .same(proto: "items"),
    17: .standard(proto: "_ref"),
    18: .same(proto: "annotations"),
    19: .standard(proto: "read_only"),
  ]

  fileprivate class _StorageClass {
    var _id: String = String()
    var _type: String = String()
    var _description_p: String = String()
    var _default: String = String()
    var _required: Bool = false
    var _format: String = String()
    var _pattern: String = String()
    var _minimum: String = String()
    var _maximum: String = String()
    var _enum: [String] = []
    var _enumDescriptions: [String] = []
    var _repeated: Bool = false
    var _location: String = String()
    var _properties: Discovery_V1_Schemas? = nil
    var _additionalProperties: Discovery_V1_Schema? = nil
    var _items: Discovery_V1_Schema? = nil
    var _ref: String = String()
    var _annotations: Discovery_V1_Annotations? = nil
    var _readOnly: Bool = false

    static let defaultInstance = _StorageClass()

    private init() {}

    init(copying source: _StorageClass) {
      _id = source._id
      _type = source._type
      _description_p = source._description_p
      _default = source._default
      _required = source._required
      _format = source._format
      _pattern = source._pattern
      _minimum = source._minimum
      _maximum = source._maximum
      _enum = source._enum
      _enumDescriptions = source._enumDescriptions
      _repeated = source._repeated
      _location = source._location
      _properties = source._properties
      _additionalProperties = source._additionalProperties
      _items = source._items
      _ref = source._ref
      _annotations = source._annotations
      _readOnly = source._readOnly
    }
  }

  fileprivate mutating func _uniqueStorage() -> _StorageClass {
    if !isKnownUniquelyReferenced(&_storage) {
      _storage = _StorageClass(copying: _storage)
    }
    return _storage
  }

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Schema) -> Bool {
    if _storage !== other._storage {
      let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_storage, other_storage) in
        if _storage._id != other_storage._id {return false}
        if _storage._type != other_storage._type {return false}
        if _storage._description_p != other_storage._description_p {return false}
        if _storage._default != other_storage._default {return false}
        if _storage._required != other_storage._required {return false}
        if _storage._format != other_storage._format {return false}
        if _storage._pattern != other_storage._pattern {return false}
        if _storage._minimum != other_storage._minimum {return false}
        if _storage._maximum != other_storage._maximum {return false}
        if _storage._enum != other_storage._enum {return false}
        if _storage._enumDescriptions != other_storage._enumDescriptions {return false}
        if _storage._repeated != other_storage._repeated {return false}
        if _storage._location != other_storage._location {return false}
        if _storage._properties != other_storage._properties {return false}
        if _storage._additionalProperties != other_storage._additionalProperties {return false}
        if _storage._items != other_storage._items {return false}
        if _storage._ref != other_storage._ref {return false}
        if _storage._annotations != other_storage._annotations {return false}
        if _storage._readOnly != other_storage._readOnly {return false}
        return true
      }
      if !storagesAreEqual {return false}
    }
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Schemas: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "additional_properties"),
  ]

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Schemas) -> Bool {
    if self.additionalProperties != other.additionalProperties {return false}
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Scope: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "description"),
  ]

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Scope) -> Bool {
    if self.description_p != other.description_p {return false}
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Scopes: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .standard(proto: "additional_properties"),
  ]

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Scopes) -> Bool {
    if self.additionalProperties != other.additionalProperties {return false}
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_Simple: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "multipart"),
    2: .same(proto: "path"),
  ]

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_Simple) -> Bool {
    if self.multipart != other.multipart {return false}
    if self.path != other.path {return false}
    if unknownFields != other.unknownFields {return false}
    return true
  }
}

extension Discovery_V1_StringArray: SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
  public static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
    1: .same(proto: "value"),
  ]

  public func _protobuf_generated_isEqualTo(other: Discovery_V1_StringArray) -> Bool {
    if self.value != other.value {return false}
    if unknownFields != other.unknownFields {return false}
    return true
  }
}
