text:
using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Google.Cloud.Metastore.V1 {

  /// Holder for reflection information generated from google/cloud/metastore/v1/metastore.proto
  public static partial class MetastoreReflection {

    #region Descriptor
    /// File descriptor for google/cloud/metastore/v1/metastore.proto
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static MetastoreReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "Cilnb29nbGUvY2xvdWQvbWV0YXN0b3JlL3YxL21ldGFzdG9yZS5wcm90bxIZ",
            "Z29vZ2xlLmNsb3VkLm1ldGFzdG9yZS52MRocZ29vZ2xlL2FwaS9hbm5vdGF0",
            "aW9ucy5wcm90bxoXZ29vZ2xlL2FwaS9jbGllbnQucHJvdG8aH2dvb2dsZS9h",
            "cGkvZmllbGRfYmVoYXZpb3IucHJvdG8aGWdvb2dsZS9hcGkvcmVzb3VyY2Uu",
            "cHJvdG8aI2dvb2dsZS9sb25ncnVubmluZy9vcGVyYXRpb25zLnByb3RvGiBn",
            "b29nbGUvcHJvdG9idWYvZmllbGRfbWFzay5wcm90bxofZ29vZ2xlL3Byb3Rv",
            "YnVmL3RpbWVzdGFtcC5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL3dyYXBwZXJz",
            "LnByb3RvGhtnb29nbGUvdHlwZS9kYXlvZndlZWsucHJvdG8i6AkKB1NlcnZp",
            "Y2USTwoVaGl2ZV9tZXRhc3RvcmVfY29uZmlnGAUgASgLMi4uZ29vZ2xlLmNs",
            "b3VkLm1ldGFzdG9yZS52MS5IaXZlTWV0YXN0b3JlQ29uZmlnSAASEQoEbmFt",
            "ZRgBIAEoCUID4EEFEjQKC2NyZWF0ZV90aW1lGAIgASgLMhouZ29vZ2xlLnBy",
            "b3RvYnVmLlRpbWVzdGFtcEID4EEDEjQKC3VwZGF0ZV90aW1lGAMgASgLMhou",
            "Z29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EEDEj4KBmxhYmVscxgEIAMo",
            "CzIuLmdvb2dsZS5jbG91ZC5tZXRhc3RvcmUudjEuU2VydmljZS5MYWJlbHNF",
            "bnRyeRI3CgduZXR3b3JrGAcgASgJQibgQQX6QSAKHmNvbXB1dGUuZ29vZ2xl",
            "YXBpcy5jb20vTmV0d29yaxIZCgxlbmRwb2ludF91cmkYCCABKAlCA+BBAxIM",
            "CgRwb3J0GAkgASgFEjwKBXN0YXRlGAogASgOMiguZ29vZ2xlLmNsb3VkLm1l",
            "dGFzdG9yZS52MS5TZXJ2aWNlLlN0YXRlQgPgQQMSGgoNc3RhdGVfbWVzc2Fn",
            "ZRgLIAEoCUID4EEDEh0KEGFydGlmYWN0X2djc191cmkYDCABKAlCA+BBAxI1",
            "CgR0aWVyGA0gASgOMicuZ29vZ2xlLmNsb3VkLm1ldGFzdG9yZS52MS5TZXJ2",
            "aWNlLlRpZXISSAoSbWFpbnRlbmFuY2Vfd2luZG93GA8gASgLMiwuZ29vZ2xl",
            "LmNsb3VkLm1ldGFzdG9yZS52MS5NYWludGVuYW5jZVdpbmRvdxIQCgN1aWQY",
            "ECABKAlCA+BBAxJgChxtZXRhZGF0YV9tYW5hZ2VtZW50X2FjdGl2aXR5GBEg",
            "ASgLMjUuZ29vZ2xlLmNsb3VkLm1ldGFzdG9yZS52MS5NZXRhZGF0YU1hbmFn",
            "ZW1lbnRBY3Rpdml0eUID4EEDEk8KD3JlbGVhc2VfY2hhbm5lbBgTIAEoDjIx",
            "Lmdvb2dsZS5jbG91ZC5tZXRhc3RvcmUudjEuU2VydmljZS5SZWxlYXNlQ2hh",
            "bm5lbEID4EEFGi0KC0xhYmVsc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1",
            "ZRgCIAEoCToCOAEifgoFU3RhdGUSFQoRU1RBVEVfVU5TUEVDSUZJRUQQABIM",
            "CghDUkVBVElORxABEgoKBkFDVElWRRACEg4KClNVU1BFTkRJTkcQAxINCglT",
            "VVNQRU5ERUQQBBIMCghVUERBVElORxAFEgwKCERFTEVUSU5HEAYSCQoFRVJS",
            "T1IQByI7CgRUaWVyEhQKEFRJRVJfVU5TUEVDSUZJRUQQABINCglERVZFTE9Q",
            "RVIQARIOCgpFTlRFUlBSSVNFEAMiSQoOUmVsZWFzZUNoYW5uZWwSHwobUkVM",
            "RUFTRV9DSEFOTkVMX1VOU1BFQ0lGSUVEEAASCgoGQ0FOQVJZEAESCgoGU1RB",
            "QkxFEAI6YepBXgogbWV0YXN0b3JlLmdvb2dsZWFwaXMuY29tL1NlcnZpY2US",
            "OnByb2plY3RzL3twcm9qZWN0fS9sb2NhdGlvbnMve2xvY2F0aW9ufS9zZXJ2",
            "aWNlcy97c2VydmljZX1CEgoQbWV0YXN0b3JlX2NvbmZpZyJyChFNYWludGVu",
            "YW5jZVdpbmRvdxIwCgtob3VyX29mX2RheRgBIAEoCzIbLmdvb2dsZS5wcm90",
            "b2J1Zi5JbnQzMlZhbHVlEisKC2RheV9vZl93ZWVrGAIgASgOMhYuZ29vZ2xl",
            "LnR5cGUuRGF5T2ZXZWVrIoYCChNIaXZlTWV0YXN0b3JlQ29uZmlnEhQKB3Zl",
            "cnNpb24YASABKAlCA+BBBRJdChBjb25maWdfb3ZlcnJpZGVzGAIgAygLMkMu",
            "Z29vZ2xlLmNsb3VkLm1ldGFzdG9yZS52MS5IaXZlTWV0YXN0b3JlQ29uZmln",
            "LkNvbmZpZ092ZXJyaWRlc0VudHJ5EkIKD2tlcmJlcm9zX2NvbmZpZxgDIAEo",
            "CzIpLmdvb2dsZS5jbG91ZC5tZXRhc3RvcmUudjEuS2VyYmVyb3NDb25maWca",
            "NgoUQ29uZmlnT3ZlcnJpZGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVl",
            "GAIgASgJOgI4ASJzCg5LZXJiZXJvc0NvbmZpZxIxCgZrZXl0YWIYASABKAsy",
            "IS5nb29nbGUuY2xvdWQubWV0YXN0b3JlLnYxLlNlY3JldBIRCglwcmluY2lw",
            "YWwYAiABKAkSGwoTa3JiNV9jb25maWdfZ2NzX3VyaRgDIAEoCSIpCgZTZWNy",
            "ZXQSFgoMY2xvdWRfc2VjcmV0GAIgASgJSABCBwoFdmFsdWUioQEKGk1ldGFk",
            "YXRhTWFuYWdlbWVudEFjdGl2aXR5EkgKEG1ldGFkYXRhX2V4cG9ydHMYASAD",
            "KAsyKS5nb29nbGUuY2xvdWQubWV0YXN0b3JlLnYxLk1ldGFkYXRhRXhwb3J0",
            "QgPgQQMSOQoIcmVzdG9yZXMYAiADKAsyIi5nb29nbGUuY2xvdWQubWV0YXN0",
            "b3JlLnYxLlJlc3RvcmVCA+BBAyLjBgoOTWV0YWRhdGFJbXBvcnQSVAoNZGF0",
            "YWJhc2VfZHVtcBgGIAEoCzI2Lmdvb2dsZS5jbG91ZC5tZXRhc3RvcmUudjEu",
            "TWV0YWRhdGFJbXBvcnQuRGF0YWJhc2VEdW1wQgPgQQVIABIRCgRuYW1lGAEg",
            "ASgJQgPgQQUSEwoLZGVzY3JpcHRpb24YAiABKAkSNAoLY3JlYXRlX3RpbWUY",
            "AyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgPgQQMSNAoLdXBk",
            "YXRlX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQgPg",
            "QQMSMQoIZW5kX3RpbWUYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0",
            "YW1wQgPgQQMSQwoFc3RhdGUYBSABKA4yLy5nb29nbGUuY2xvdWQubWV0YXN0",
            "b3JlLnYxLk1ldGFkYXRhSW1wb3J0LlN0YXRlQgPgQQMa/gEKDERhdGFiYXNl",
            "RHVtcBJeCg1kYXRhYmFzZV90eXBlGAEgASgOMkMuZ29vZ2xlLmNsb3VkLm1l",
            "dGFzdG9yZS52MS5NZXRhZGF0YUltcG9ydC5EYXRhYmFzZUR1bXAuRGF0YWJh",
            "c2VUeXBlQgIYARIPCgdnY3NfdXJpGAIgASgJEkMKBHR5cGUYBCABKA4yMC5n",
            "b29nbGUuY2xvdWQubWV0YXN0b3JlLnYxLkRhdGFiYXNlRHVtcFNwZWMuVHlw",
            "ZUID4EEBIjgKDERhdGFiYXNlVHlwZRIdChlEQVRBQkFTRV9UWVBFX1VOU1BF",
            "Q0lGSUVEEAASCQoFTVlTUUwQASJUCgVTdGF0ZRIVChFTVEFURV9VTlNQRUNJ",
            "RklFRBAAEgsKB1JVTk5JTkcQARINCglTVUNDRUVERUQQAhIMCghVUERBVElO",
            "RxADEgoKBkZBSUxFRBAEOosB6kGHAQonbWV0YXN0b3JlLmdvb2dsZWFwaXMu",
            "Y29tL01ldGFkYXRhSW1wb3J0Elxwcm9qZWN0cy97cHJvamVjdH0vbG9jYXRp",
            "b25zL3tsb2NhdGlvbn0vc2VydmljZXMve3NlcnZpY2V9L21ldGFkYXRhSW1w",
            "b3J0cy97bWV0YWRhdGFfaW1wb3J0fUIKCghtZXRhZGF0YSKaAwoOTWV0YWRh",
            "dGFFeHBvcnQSIgoTZGVzdGluYXRpb25fZ2NzX3VyaRgEIAEoCUID4EEDSAAS",
            "MwoKc3RhcnRfdGltZRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3Rh",
            "bXBCA+BBAxIxCghlbmRfdGltZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5U",
            "aW1lc3RhbXBCA+BBAxJDCgVzdGF0ZRgDIAEoDjIvLmdvb2dsZS5jbG91ZC5t",
            "ZXRhc3RvcmUudjEuTWV0YWRhdGFFeHBvcnQuU3RhdGVCA+BBAxJRChJkYXRh",
            "YmFzZV9kdW1wX3R5cGUYBSABKA4yMC5nb29nbGUuY2xvdWQubWV0YXN0b3Jl",
            "LnYxLkRhdGFiYXNlRHVtcFNwZWMuVHlwZUID4EEDIlUKBVN0YXRlEhUKEVNU",
            "QVRFX1VOU1BFQ0lGSUVEEAASCwoHUlVOTklORxABEg0KCVNVQ0NFRURFRBAC",
            "EgoKBkZBSUxFRBADEg0KCUNBTkNFTExFRBAEQg0KC2Rlc3RpbmF0aW9uIpAE",
            "CgZCYWNrdXASEQoEbmFtZRgBIAEoCUID4EEFEjQKC2NyZWF0ZV90aW1lGAIg",
            "ASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EEDEjEKCGVuZF90",
            "aW1lGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EEDEjsK",
            "BXN0YXRlGAQgASgOMicuZ29vZ2xlLmNsb3VkLm1ldGFzdG9yZS52MS5CYWNr",
            "dXAuU3RhdGVCA+BBAxJBChBzZXJ2aWNlX3JldmlzaW9uGAUgASgLMiIuZ29v",
            "Z2xlLmNsb3VkLm1ldGFzdG9yZS52MS5TZXJ2aWNlQgPgQQMSEwoLZGVzY3Jp",
            "cHRpb24YBiABKAkSHwoScmVzdG9yaW5nX3NlcnZpY2VzGAcgAygJQgPgQQMi",
            "YQoFU3RhdGUSFQoRU1RBVEVfVU5TUEVDSUZJRUQQABIMCghDUkVBVElORxAB",
            "EgwKCERFTEVUSU5HEAISCgoGQUNUSVZFEAMSCgoGRkFJTEVEEAQSDQoJUkVT",
            "VE9SSU5HEAU6cepBbgofbWV0YXN0b3JlLmdvb2dsZWFwaXMuY29tL0JhY2t1",
            "cBJLcHJvamVjdHMve3Byb2plY3R9L2xvY2F0aW9ucy97bG9jYXRpb259L3Nl",
            "cnZpY2VzL3tzZXJ2aWNlfS9iYWNrdXBzL3tiYWNrdXB9IuIDCgdSZXN0b3Jl",
            "EjMKCnN0YXJ0X3RpbWUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0",
            "YW1wQgPgQQMSMQoIZW5kX3RpbWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYu",
            "VGltZXN0YW1wQgPgQQMSPAoFc3RhdGUYAyABKA4yKC5nb29nbGUuY2xvdWQu",
            "bWV0YXN0b3JlLnYxLlJlc3RvcmUuU3RhdGVCA+BBAxI3CgZiYWNrdXAYBCAB",
            "KAlCJ+BBA/pBIQofbWV0YXN0b3JlLmdvb2dsZWFwaXMuY29tL0JhY2t1cBJB",
            "CgR0eXBlGAUgASgOMi4uZ29vZ2xlLmNsb3VkLm1ldGFzdG9yZS52MS5SZXN0",
            "b3JlLlJlc3RvcmVUeXBlQgPgQQMSFAoHZGV0YWlscxgGIAEoCUID4EEDIlUK",
            "BVN0YXRlEhUKEVNUQVRFX1VOU1BFQ0lGSUVEEAASCwoHUlVOTklORxABEg0K",
            "CVNVQ0NFRURFRBACEgoKBkZBSUxFRBADEg0KCUNBTkNFTExFRBAEIkgKC1Jl",
            "c3RvcmVUeXBlEhwKGFJFU1RPUkVfVFlQRV9VTlNQRUNJRklFRBAAEggKBEZV",
            "TEwQARIRCg1NRVRBREFUQV9PTkxZEAIirQEKE0xpc3RTZXJ2aWNlc1JlcXVl",
            "c3QSOQoGcGFyZW50GAEgASgJQingQQL6QSMKIWxvY2F0aW9ucy5nb29nbGVh",
            "cGlzLmNvbS9Mb2NhdGlvbhIWCglwYWdlX3NpemUYAiABKAVCA+BBARIXCgpw",
            "YWdlX3Rva2VuGAMgASgJQgPgQQESEwoGZmlsdGVyGAQgASgJQgPgQQESFQoI",
            "b3JkZXJfYnkYBSABKAlCA+BBASJ6ChRMaXN0U2VydmljZXNSZXNwb25zZRI0",
            "CghzZXJ2aWNlcxgBIAMoCzIiLmdvb2dsZS5jbG91ZC5tZXRhc3RvcmUudjEu",
            "U2VydmljZRIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdW5yZWFjaGFi",
            "bGUYAyADKAkiSwoRR2V0U2VydmljZVJlcXVlc3QSNgoEbmFtZRgBIAEoCUIo",
            "4EEC+kEiCiBtZXRhc3RvcmUuZ29vZ2xlYXBpcy5jb20vU2VydmljZSK9AQoU",
            "Q3JlYXRlU2VydmljZVJlcXVlc3QSOQoGcGFyZW50GAEgASgJQingQQL6QSMK",
            "IWxvY2F0aW9ucy5nb29nbGVhcGlzLmNvbS9Mb2NhdGlvbhIXCgpzZXJ2aWNl",
            "X2lkGAIgASgJQgPgQQISOAoHc2VydmljZRgDIAEoCzIiLmdvb2dsZS5jbG91",
            "ZC5tZXRhc3RvcmUudjEuU2VydmljZUID4EECEhcKCnJlcXVlc3RfaWQYBCAB",
            "KAlCA+BBASKfAQoUVXBkYXRlU2VydmljZVJlcXVlc3QSNAoLdXBkYXRlX21h",
            "c2sYASABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQgPgQQISOAoH",
            "c2VydmljZRgCIAEoCzIiLmdvb2dsZS5jbG91ZC5tZXRhc3RvcmUudjEuU2Vy",
            "dmljZUID4EECEhcKCnJlcXVlc3RfaWQYAyABKAlCA+BBASJnChREZWxldGVT",
            "ZXJ2aWNlUmVxdWVzdBI2CgRuYW1lGAEgASgJQijgQQL6QSIKIG1ldGFzdG9y",
            "ZS5nb29nbGVhcGlzLmNvbS9TZXJ2aWNlEhcKCnJlcXVlc3RfaWQYAiABKAlC",
            "A+BBASKzAQoaTGlzdE1ldGFkYXRhSW1wb3J0c1JlcXVlc3QSOAoGcGFyZW50",
            "GAEgASgJQijgQQL6QSIKIG1ldGFzdG9yZS5nb29nbGVhcGlzLmNvbS9TZXJ2",
            "aWNlEhYKCXBhZ2Vfc2l6ZRgCIAEoBUID4EEBEhcKCnBhZ2VfdG9rZW4YAyAB",
            "KAlCA+BBARITCgZmaWx0ZXIYBCABKAlCA+BBARIVCghvcmRlcl9ieRgFIAEo",
            "CUID4EEBIpABChtMaXN0TWV0YWRhdGFJbXBvcnRzUmVzcG9uc2USQwoQbWV0",
            "YWRhdGFfaW1wb3J0cxgBIAMoCzIpLmdvb2dsZS5jbG91ZC5tZXRhc3RvcmUu",
            "djEuTWV0YWRhdGFJbXBvcnQSFwoPbmV4dF9wYWdlX3Rva2VuGAIgASgJEhMK",
            "C3VucmVhY2hhYmxlGAMgAygJIlkKGEdldE1ldGFkYXRhSW1wb3J0UmVxdWVz",
            "dBI9CgRuYW1lGAEgASgJQi/gQQL6QSkKJ21ldGFzdG9yZS5nb29nbGVhcGlz",
            "LmNvbS9NZXRhZGF0YUltcG9ydCLaAQobQ3JlYXRlTWV0YWRhdGFJbXBvcnRS",
            "ZXF1ZXN0EjgKBnBhcmVudBgBIAEoCUIo4EEC+kEiCiBtZXRhc3RvcmUuZ29v",
            "Z2xlYXBpcy5jb20vU2VydmljZRIfChJtZXRhZGF0YV9pbXBvcnRfaWQYAiAB",
            "KAlCA+BBAhJHCg9tZXRhZGF0YV9pbXBvcnQYAyABKAsyKS5nb29nbGUuY2xv",
            "dWQubWV0YXN0b3JlLnYxLk1ldGFkYXRhSW1wb3J0QgPgQQISFwoKcmVxdWVz",
            "dF9pZBgEIAEoCUID4EEBIrUBChtVcGRhdGVNZXRhZGF0YUltcG9ydFJlcXVl",
            "c3QSNAoLdXBkYXRlX21hc2sYASABKAsyGi5nb29nbGUucHJvdG9idWYuRmll",
            "bGRNYXNrQgPgQQISRwoPbWV0YWRhdGFfaW1wb3J0GAIgASgLMikuZ29vZ2xl",
            "LmNsb3VkLm1ldGFzdG9yZS52MS5NZXRhZGF0YUltcG9ydEID4EECEhcKCnJl",
            "cXVlc3RfaWQYAyABKAlCA+BBASKrAQoSTGlzdEJhY2t1cHNSZXF1ZXN0EjgK",
            "BnBhcmVudBgBIAEoCUIo4EEC+kEiCiBtZXRhc3RvcmUuZ29vZ2xlYXBpcy5j",
            "b20vU2VydmljZRIWCglwYWdlX3NpemUYAiABKAVCA+BBARIXCgpwYWdlX3Rv",
            "a2VuGAMgASgJQgPgQQESEwoGZmlsdGVyGAQgASgJQgPgQQESFQoIb3JkZXJf",
            "YnkYBSABKAlCA+BBASJ3ChNMaXN0QmFja3Vwc1Jlc3BvbnNlEjIKB2JhY2t1",
            "cHMYASADKAsyIS5nb29nbGUuY2xvdWQubWV0YXN0b3JlLnYxLkJhY2t1cBIX",
            "Cg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkSEwoLdW5yZWFjaGFibGUYAyADKAki",
            "SQoQR2V0QmFja3VwUmVxdWVzdBI1CgRuYW1lGAEgASgJQifgQQL6QSEKH21l",
            "dGFzdG9yZS5nb29nbGVhcGlzLmNvbS9CYWNrdXAiuAEKE0NyZWF0ZUJhY2t1",
            "cFJlcXVlc3QSOAoGcGFyZW50GAEgASgJQijgQQL6QSIKIG1ldGFzdG9yZS5n",
            "b29nbGVhcGlzLmNvbS9TZXJ2aWNlEhYKCWJhY2t1cF9pZBgCIAEoCUID4EEC",
            "EjYKBmJhY2t1cBgDIAEoCzIhLmdvb2dsZS5jbG91ZC5tZXRhc3RvcmUudjEu",
            "QmFja3VwQgPgQQISFwoKcmVxdWVzdF9pZBgEIAEoCUID4EEBImUKE0RlbGV0",
            "ZUJhY2t1cFJlcXVlc3QSNQoEbmFtZRgBIAEoCUIn4EEC+kEhCh9tZXRhc3Rv",
            "cmUuZ29vZ2xlYXBpcy5jb20vQmFja3VwEhcKCnJlcXVlc3RfaWQYAiABKAlC",
            "A+BBASLvAQoVRXhwb3J0TWV0YWRhdGFSZXF1ZXN0EiAKFmRlc3RpbmF0aW9u",
            "X2djc19mb2xkZXIYAiABKAlIABI5CgdzZXJ2aWNlGAEgASgJQijgQQL6QSIK",
            "IG1ldGFzdG9yZS5nb29nbGVhcGlzLmNvbS9TZXJ2aWNlEhcKCnJlcXVlc3Rf",
            "aWQYAyABKAlCA+BBARJRChJkYXRhYmFzZV9kdW1wX3R5cGUYBCABKA4yMC5n",
            "b29nbGUuY2xvdWQubWV0YXN0b3JlLnYxLkRhdGFiYXNlRHVtcFNwZWMuVHlw",
            "ZUID4EEBQg0KC2Rlc3RpbmF0aW9uIu8BChVSZXN0b3JlU2VydmljZVJlcXVl",
            "c3QSOQoHc2VydmljZRgBIAEoCUIo4EEC+kEiCiBtZXRhc3RvcmUuZ29vZ2xl",
            "YXBpcy5jb20vU2VydmljZRI3CgZiYWNrdXAYAiABKAlCJ+BBAvpBIQofbWV0",
            "YXN0b3JlLmdvb2dsZWFwaXMuY29tL0JhY2t1cBJJCgxyZXN0b3JlX3R5cGUY",
            "AyABKA4yLi5nb29nbGUuY2xvdWQubWV0YXN0b3JlLnYxLlJlc3RvcmUuUmVz",
            "dG9yZVR5cGVCA+BBARIXCgpyZXF1ZXN0X2lkGAQgASgJQgPgQQEigAIKEU9w",
            "ZXJhdGlvbk1ldGFkYXRhEjQKC2NyZWF0ZV90aW1lGAEgASgLMhouZ29vZ2xl",
            "LnByb3RvYnVmLlRpbWVzdGFtcEID4EEDEjEKCGVuZF90aW1lGAIgASgLMhou",
            "Z29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEID4EEDEhMKBnRhcmdldBgDIAEo",
            "CUID4EEDEhEKBHZlcmIYBCABKAlCA+BBAxIbCg5zdGF0dXNfbWVzc2FnZRgF",
            "IAEoCUID4EEDEiMKFnJlcXVlc3RlZF9jYW5jZWxsYXRpb24YBiABKAhCA+BB",
            "AxIYCgthcGlfdmVyc2lvbhgHIAEoCUID4EEDIrwBChBMb2NhdGlvbk1ldGFk",
            "YXRhEmsKIXN1cHBvcnRlZF9oaXZlX21ldGFzdG9yZV92ZXJzaW9ucxgBIAMo",
            "CzJALmdvb2dsZS5jbG91ZC5tZXRhc3RvcmUudjEuTG9jYXRpb25NZXRhZGF0",
            "YS5IaXZlTWV0YXN0b3JlVmVyc2lvbho7ChRIaXZlTWV0YXN0b3JlVmVyc2lv",
            "bhIPCgd2ZXJzaW9uGAEgASgJEhIKCmlzX2RlZmF1bHQYAiABKAgiRQoQRGF0",
            "YWJhc2VEdW1wU3BlYyIxCgRUeXBlEhQKEFRZUEVfVU5TUEVDSUZJRUQQABIJ",
            "CgVNWVNRTBABEggKBEFWUk8QAjLLGQoRRGF0YXByb2NNZXRhc3RvcmUSrgEK",
            "DExpc3RTZXJ2aWNlcxIuLmdvb2dsZS5jbG91ZC5tZXRhc3RvcmUudjEuTGlz",
            "dFNlcnZpY2VzUmVxdWVzdBovLmdvb2dsZS5jbG91ZC5tZXRhc3RvcmUudjEu",
            "TGlzdFNlcnZpY2VzUmVzcG9uc2UiPYLT5JMCLhIsL3YxL3twYXJlbnQ9cHJv",
            "amVjdHMvKi9sb2NhdGlvbnMvKn0vc2VydmljZXPaQQZwYXJlbnQSmwEKCkdl",
            "dFNlcnZpY2USLC5nb29nbGUuY2xvdWQubWV0YXN0b3JlLnYxLkdldFNlcnZp",
            "Y2VSZXF1ZXN0GiIuZ29vZ2xlLmNsb3VkLm1ldGFzdG9yZS52MS5TZXJ2aWNl",
            "IjuC0+STAi4SLC92MS97bmFtZT1wcm9qZWN0cy8qL2xvY2F0aW9ucy8qL3Nl",
            "cnZpY2VzLyp92kEEbmFtZRLZAQoNQ3JlYXRlU2VydmljZRIvLmdvb2dsZS5j",
            "bG91ZC5tZXRhc3RvcmUudjEuQ3JlYXRlU2VydmljZVJlcXVlc3QaHS5nb29n",
            "bGUubG9uZ3J1bm5pbmcuT3BlcmF0aW9uIniC0+STAjciLC92MS97cGFyZW50",
            "PXByb2plY3RzLyovbG9jYXRpb25zLyp9L3NlcnZpY2VzOgdzZXJ2aWNl2kEZ",
            "cGFyZW50LHNlcnZpY2Usc2VydmljZV9pZMpBHAoHU2VydmljZRIRT3BlcmF0",
            "aW9uTWV0YWRhdGES2wEKDVVwZGF0ZVNlcnZpY2USLy5nb29nbGUuY2xvdWQu",
            "bWV0YXN0b3JlLnYxLlVwZGF0ZVNlcnZpY2VSZXF1ZXN0Gh0uZ29vZ2xlLmxv",
            "bmdydW5uaW5nLk9wZXJhdGlvbiJ6gtPkkwI/MjQvdjEve3NlcnZpY2UubmFt",
            "ZT1wcm9qZWN0cy8qL2xvY2F0aW9ucy8qL3NlcnZpY2VzLyp9OgdzZXJ2aWNl",
            "2kETc2VydmljZSx1cGRhdGVfbWFza8pBHAoHU2VydmljZRIRT3BlcmF0aW9u",
            "TWV0YWRhdGESyQEKDURlbGV0ZVNlcnZpY2USLy5nb29nbGUuY2xvdWQubWV0",
            "YXN0b3JlLnYxLkRlbGV0ZVNlcnZpY2VSZXF1ZXN0Gh0uZ29vZ2xlLmxvbmdy",
            "dW5uaW5nLk9wZXJhdGlvbiJogtPkkwIuKiwvdjEve25hbWU9cHJvamVjdHMv",
            "Ki9sb2NhdGlvbnMvKi9zZXJ2aWNlcy8qfdpBBG5hbWXKQSoKFWdvb2dsZS5w",
            "cm90b2J1Zi5FbXB0eRIRT3BlcmF0aW9uTWV0YWRhdGES1QEKE0xpc3RNZXRh",
            "ZGF0YUltcG9ydHMSNS5nb29nbGUuY2xvdWQubWV0YXN0b3JlLnYxLkxpc3RN",
            "ZXRhZGF0YUltcG9ydHNSZXF1ZXN0GjYuZ29vZ2xlLmNsb3VkLm1ldGFzdG9y",
            "ZS52MS5MaXN0TWV0YWRhdGFJbXBvcnRzUmVzcG9uc2UiT4LT5JMCQBI+L3Yx",
            "L3twYXJlbnQ9cHJvamVjdHMvKi9sb2NhdGlvbnMvKi9zZXJ2aWNlcy8qfS9t",
            "ZXRhZGF0YUltcG9ydHPaQQZwYXJlbnQSwgEKEUdldE1ldGFkYXRhSW1wb3J0",
            "EjMuZ29vZ2xlLmNsb3VkLm1ldGFzdG9yZS52MS5HZXRNZXRhZGF0YUltcG9y",
            "dFJlcXVlc3QaKS5nb29nbGUuY2xvdWQubWV0YXN0b3JlLnYxLk1ldGFkYXRh",
            "SW1wb3J0Ik2C0+STAkASPi92MS97bmFtZT1wcm9qZWN0cy8qL2xvY2F0aW9u",
            "cy8qL3NlcnZpY2VzLyovbWV0YWRhdGFJbXBvcnRzLyp92kEEbmFtZRKZAgoU",
            "Q3JlYXRlTWV0YWRhdGFJbXBvcnQSNi5nb29nbGUuY2xvdWQubWV0YXN0b3Jl",
            "LnYxLkNyZWF0ZU1ldGFkYXRhSW1wb3J0UmVxdWVzdBodLmdvb2dsZS5sb25n",
            "cnVubmluZy5PcGVyYXRpb24iqQGC0+STAlEiPi92MS97cGFyZW50PXByb2pl",
            "Y3RzLyovbG9jYXRpb25zLyovc2VydmljZXMvKn0vbWV0YWRhdGFJbXBvcnRz",
            "Og9tZXRhZGF0YV9pbXBvcnTaQSlwYXJlbnQsbWV0YWRhdGFfaW1wb3J0LG1l",
            "dGFkYXRhX2ltcG9ydF9pZMpBIwoOTWV0YWRhdGFJbXBvcnQSEU9wZXJhdGlv",
            "bk1ldGFkYXRhEpsCChRVcGRhdGVNZXRhZGF0YUltcG9ydBI2Lmdvb2dsZS5j",
            "bG91ZC5tZXRhc3RvcmUudjEuVXBkYXRlTWV0YWRhdGFJbXBvcnRSZXF1ZXN0",
            "Gh0uZ29vZ2xlLmxvbmdydW5uaW5nLk9wZXJhdGlvbiKrAYLT5JMCYTJOL3Yx",
            "L3ttZXRhZGF0YV9pbXBvcnQubmFtZT1wcm9qZWN0cy8qL2xvY2F0aW9ucy8q",
            "L3NlcnZpY2VzLyovbWV0YWRhdGFJbXBvcnRzLyp9Og9tZXRhZGF0YV9pbXBv",
            "cnTaQRttZXRhZGF0YV9pbXBvcnQsdXBkYXRlX21hc2vKQSMKDk1ldGFkYXRh",
            "SW1wb3J0EhFPcGVyYXRpb25NZXRhZGF0YRLSAQoORXhwb3J0TWV0YWRhdGES",
            "MC5nb29nbGUuY2xvdWQubWV0YXN0b3JlLnYxLkV4cG9ydE1ldGFkYXRhUmVx",
            "dWVzdBodLmdvb2dsZS5sb25ncnVubmluZy5PcGVyYXRpb24ib4LT5JMCQyI+",
            "L3YxL3tzZXJ2aWNlPXByb2plY3RzLyovbG9jYXRpb25zLyovc2VydmljZXMv",
            "Kn06ZXhwb3J0TWV0YWRhdGE6ASrKQSMKDk1ldGFkYXRhRXhwb3J0EhFPcGVy",
            "YXRpb25NZXRhZGF0YRLVAQoOUmVzdG9yZVNlcnZpY2USMC5nb29nbGUuY2xv",
            "dWQubWV0YXN0b3JlLnYxLlJlc3RvcmVTZXJ2aWNlUmVxdWVzdBodLmdvb2ds",
            "ZS5sb25ncnVubmluZy5PcGVyYXRpb24icoLT5JMCPCI3L3YxL3tzZXJ2aWNl",
            "PXByb2plY3RzLyovbG9jYXRpb25zLyovc2VydmljZXMvKn06cmVzdG9yZToB",
            "KtpBDnNlcnZpY2UsYmFja3VwykEcCgdSZXN0b3JlEhFPcGVyYXRpb25NZXRh",
            "ZGF0YRK1AQoLTGlzdEJhY2t1cHMSLS5nb29nbGUuY2xvdWQubWV0YXN0b3Jl",
            "LnYxLkxpc3RCYWNrdXBzUmVxdWVzdBouLmdvb2dsZS5jbG91ZC5tZXRhc3Rv",
            "cmUudjEuTGlzdEJhY2t1cHNSZXNwb25zZSJHgtPkkwI4EjYvdjEve3BhcmVu",
            "dD1wcm9qZWN0cy8qL2xvY2F0aW9ucy8qL3NlcnZpY2VzLyp9L2JhY2t1cHPa",
            "QQZwYXJlbnQSogEKCUdldEJhY2t1cBIrLmdvb2dsZS5jbG91ZC5tZXRhc3Rv",
            "cmUudjEuR2V0QmFja3VwUmVxdWVzdBohLmdvb2dsZS5jbG91ZC5tZXRhc3Rv",
            "cmUudjEuQmFja3VwIkWC0+STAjgSNi92MS97bmFtZT1wcm9qZWN0cy8qL2xv",
            "Y2F0aW9ucy8qL3NlcnZpY2VzLyovYmFja3Vwcy8qfdpBBG5hbWUS3QEKDENy",
            "ZWF0ZUJhY2t1cBIuLmdvb2dsZS5jbG91ZC5tZXRhc3RvcmUudjEuQ3JlYXRl",
            "QmFja3VwUmVxdWVzdBodLmdvb2dsZS5sb25ncnVubmluZy5PcGVyYXRpb24i",
            "foLT5JMCQCI2L3YxL3twYXJlbnQ9cHJvamVjdHMvKi9sb2NhdGlvbnMvKi9z",
            "ZXJ2aWNlcy8qfS9iYWNrdXBzOgZiYWNrdXDaQRdwYXJlbnQsYmFja3VwLGJh",
            "Y2t1cF9pZMpBGwoGQmFja3VwEhFPcGVyYXRpb25NZXRhZGF0YRLRAQoMRGVs",
            "ZXRlQmFja3VwEi4uZ29vZ2xlLmNsb3VkLm1ldGFzdG9yZS52MS5EZWxldGVC",
            "YWNrdXBSZXF1ZXN0Gh0uZ29vZ2xlLmxvbmdydW5uaW5nLk9wZXJhdGlvbiJy",
            "gtPkkwI4KjYvdjEve25hbWU9cHJvamVjdHMvKi9sb2NhdGlvbnMvKi9zZXJ2",
            "aWNlcy8qL2JhY2t1cHMvKn3aQQRuYW1lykEqChVnb29nbGUucHJvdG9idWYu",
            "RW1wdHkSEU9wZXJhdGlvbk1ldGFkYXRhGkzKQRhtZXRhc3RvcmUuZ29vZ2xl",
            "YXBpcy5jb23SQS5odHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9hdXRoL2Ns",
            "b3VkLXBsYXRmb3JtQsYBCh1jb20uZ29vZ2xlLmNsb3VkLm1ldGFzdG9yZS52",
            "MUIOTWV0YXN0b3JlUHJvdG9QAVpCZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJv",
            "dG8vZ29vZ2xlYXBpcy9jbG91ZC9tZXRhc3RvcmUvdjE7bWV0YXN0b3Jl6kFO",
            "Ch5jb21wdXRlLmdvb2dsZWFwaXMuY29tL05ldHdvcmsSLHByb2plY3RzL3tw",
            "cm9qZWN0fS9nbG9iYWwvbmV0d29ya3Mve25ldHdvcmt9YgZwcm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Api.ClientReflection.Descriptor, global::Google.Api.FieldBehaviorReflection.Descriptor, global::Google.Api.ResourceReflection.Descriptor, global::Google.LongRunning.OperationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Type.DayofweekReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.Service), global::Google.Cloud.Metastore.V1.Service.Parser, new[]{ "HiveMetastoreConfig", "Name", "CreateTime", "UpdateTime", "Labels", "Network", "EndpointUri", "Port", "State", "StateMessage", "ArtifactGcsUri", "Tier", "MaintenanceWindow", "Uid", "MetadataManagementActivity", "ReleaseChannel" }, new[]{ "MetastoreConfig" }, new[]{ typeof(global::Google.Cloud.Metastore.V1.Service.Types.State), typeof(global::Google.Cloud.Metastore.V1.Service.Types.Tier), typeof(global::Google.Cloud.Metastore.V1.Service.Types.ReleaseChannel) }, null, new pbr::GeneratedClrTypeInfo[] { null, }),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.MaintenanceWindow), global::Google.Cloud.Metastore.V1.MaintenanceWindow.Parser, new[]{ "HourOfDay", "DayOfWeek" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.HiveMetastoreConfig), global::Google.Cloud.Metastore.V1.HiveMetastoreConfig.Parser, new[]{ "Version", "ConfigOverrides", "KerberosConfig" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.KerberosConfig), global::Google.Cloud.Metastore.V1.KerberosConfig.Parser, new[]{ "Keytab", "Principal", "Krb5ConfigGcsUri" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.Secret), global::Google.Cloud.Metastore.V1.Secret.Parser, new[]{ "CloudSecret" }, new[]{ "Value" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.MetadataManagementActivity), global::Google.Cloud.Metastore.V1.MetadataManagementActivity.Parser, new[]{ "MetadataExports", "Restores" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.MetadataImport), global::Google.Cloud.Metastore.V1.MetadataImport.Parser, new[]{ "DatabaseDump", "Name", "Description", "CreateTime", "UpdateTime", "EndTime", "State" }, new[]{ "Metadata" }, new[]{ typeof(global::Google.Cloud.Metastore.V1.MetadataImport.Types.State) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump), global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump.Parser, new[]{ "DatabaseType", "GcsUri", "Type" }, null, new[]{ typeof(global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump.Types.DatabaseType) }, null, null)}),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.MetadataExport), global::Google.Cloud.Metastore.V1.MetadataExport.Parser, new[]{ "DestinationGcsUri", "StartTime", "EndTime", "State", "DatabaseDumpType" }, new[]{ "Destination" }, new[]{ typeof(global::Google.Cloud.Metastore.V1.MetadataExport.Types.State) }, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.Backup), global::Google.Cloud.Metastore.V1.Backup.Parser, new[]{ "Name", "CreateTime", "EndTime", "State", "ServiceRevision", "Description", "RestoringServices" }, null, new[]{ typeof(global::Google.Cloud.Metastore.V1.Backup.Types.State) }, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.Restore), global::Google.Cloud.Metastore.V1.Restore.Parser, new[]{ "StartTime", "EndTime", "State", "Backup", "Type", "Details" }, null, new[]{ typeof(global::Google.Cloud.Metastore.V1.Restore.Types.State), typeof(global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType) }, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.ListServicesRequest), global::Google.Cloud.Metastore.V1.ListServicesRequest.Parser, new[]{ "Parent", "PageSize", "PageToken", "Filter", "OrderBy" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.ListServicesResponse), global::Google.Cloud.Metastore.V1.ListServicesResponse.Parser, new[]{ "Services", "NextPageToken", "Unreachable" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.GetServiceRequest), global::Google.Cloud.Metastore.V1.GetServiceRequest.Parser, new[]{ "Name" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.CreateServiceRequest), global::Google.Cloud.Metastore.V1.CreateServiceRequest.Parser, new[]{ "Parent", "ServiceId", "Service", "RequestId" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.UpdateServiceRequest), global::Google.Cloud.Metastore.V1.UpdateServiceRequest.Parser, new[]{ "UpdateMask", "Service", "RequestId" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.DeleteServiceRequest), global::Google.Cloud.Metastore.V1.DeleteServiceRequest.Parser, new[]{ "Name", "RequestId" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.ListMetadataImportsRequest), global::Google.Cloud.Metastore.V1.ListMetadataImportsRequest.Parser, new[]{ "Parent", "PageSize", "PageToken", "Filter", "OrderBy" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.ListMetadataImportsResponse), global::Google.Cloud.Metastore.V1.ListMetadataImportsResponse.Parser, new[]{ "MetadataImports", "NextPageToken", "Unreachable" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.GetMetadataImportRequest), global::Google.Cloud.Metastore.V1.GetMetadataImportRequest.Parser, new[]{ "Name" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.CreateMetadataImportRequest), global::Google.Cloud.Metastore.V1.CreateMetadataImportRequest.Parser, new[]{ "Parent", "MetadataImportId", "MetadataImport", "RequestId" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.UpdateMetadataImportRequest), global::Google.Cloud.Metastore.V1.UpdateMetadataImportRequest.Parser, new[]{ "UpdateMask", "MetadataImport", "RequestId" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.ListBackupsRequest), global::Google.Cloud.Metastore.V1.ListBackupsRequest.Parser, new[]{ "Parent", "PageSize", "PageToken", "Filter", "OrderBy" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.ListBackupsResponse), global::Google.Cloud.Metastore.V1.ListBackupsResponse.Parser, new[]{ "Backups", "NextPageToken", "Unreachable" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.GetBackupRequest), global::Google.Cloud.Metastore.V1.GetBackupRequest.Parser, new[]{ "Name" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.CreateBackupRequest), global::Google.Cloud.Metastore.V1.CreateBackupRequest.Parser, new[]{ "Parent", "BackupId", "Backup", "RequestId" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.DeleteBackupRequest), global::Google.Cloud.Metastore.V1.DeleteBackupRequest.Parser, new[]{ "Name", "RequestId" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.ExportMetadataRequest), global::Google.Cloud.Metastore.V1.ExportMetadataRequest.Parser, new[]{ "DestinationGcsFolder", "Service", "RequestId", "DatabaseDumpType" }, new[]{ "Destination" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.RestoreServiceRequest), global::Google.Cloud.Metastore.V1.RestoreServiceRequest.Parser, new[]{ "Service", "Backup", "RestoreType", "RequestId" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.OperationMetadata), global::Google.Cloud.Metastore.V1.OperationMetadata.Parser, new[]{ "CreateTime", "EndTime", "Target", "Verb", "StatusMessage", "RequestedCancellation", "ApiVersion" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.LocationMetadata), global::Google.Cloud.Metastore.V1.LocationMetadata.Parser, new[]{ "SupportedHiveMetastoreVersions" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.LocationMetadata.Types.HiveMetastoreVersion), global::Google.Cloud.Metastore.V1.LocationMetadata.Types.HiveMetastoreVersion.Parser, new[]{ "Version", "IsDefault" }, null, null, null, null)}),
            new pbr::GeneratedClrTypeInfo(typeof(global::Google.Cloud.Metastore.V1.DatabaseDumpSpec), global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Parser, null, null, new[]{ typeof(global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type) }, null, null)
          }));
    }
    #endregion

  }
  #region Messages
  ///
  /// A managed metastore service that serves metadata queries.
  ///
  public sealed partial class Service : pb::IMessage<Service>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Service> _parser = new pb::MessageParser<Service>(() => new Service());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Service> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Service() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Service(Service other) : this() {
      name_ = other.name_;
      createTime_ = other.createTime_ != null ? other.createTime_.Clone() : null;
      updateTime_ = other.updateTime_ != null ? other.updateTime_.Clone() : null;
      labels_ = other.labels_.Clone();
      network_ = other.network_;
      endpointUri_ = other.endpointUri_;
      port_ = other.port_;
      state_ = other.state_;
      stateMessage_ = other.stateMessage_;
      artifactGcsUri_ = other.artifactGcsUri_;
      tier_ = other.tier_;
      maintenanceWindow_ = other.maintenanceWindow_ != null ? other.maintenanceWindow_.Clone() : null;
      uid_ = other.uid_;
      metadataManagementActivity_ = other.metadataManagementActivity_ != null ? other.metadataManagementActivity_.Clone() : null;
      releaseChannel_ = other.releaseChannel_;
      switch (other.MetastoreConfigCase) {
        case MetastoreConfigOneofCase.HiveMetastoreConfig:
          HiveMetastoreConfig = other.HiveMetastoreConfig.Clone();
          break;
      }

      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Service Clone() {
      return new Service(this);
    }

    /// Field number for the "hive_metastore_config" field.
    public const int HiveMetastoreConfigFieldNumber = 5;
    ///
    /// Configuration information specific to running Hive metastore
    /// software as the metastore service.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.HiveMetastoreConfig HiveMetastoreConfig {
      get { return metastoreConfigCase_ == MetastoreConfigOneofCase.HiveMetastoreConfig ? (global::Google.Cloud.Metastore.V1.HiveMetastoreConfig) metastoreConfig_ : null; }
      set {
        metastoreConfig_ = value;
        metastoreConfigCase_ = value == null ? MetastoreConfigOneofCase.None : MetastoreConfigOneofCase.HiveMetastoreConfig;
      }
    }

    /// Field number for the "name" field.
    public const int NameFieldNumber = 1;
    private string name_ = "";
    ///
    /// Immutable. The relative resource name of the metastore service, of the form:
    ///
    /// `projects/{project_number}/locations/{location_id}/services/{service_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "create_time" field.
    public const int CreateTimeFieldNumber = 2;
    private global::Google.Protobuf.WellKnownTypes.Timestamp createTime_;
    ///
    /// Output only. The time when the metastore service was created.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp CreateTime {
      get { return createTime_; }
      set {
        createTime_ = value;
      }
    }

    /// Field number for the "update_time" field.
    public const int UpdateTimeFieldNumber = 3;
    private global::Google.Protobuf.WellKnownTypes.Timestamp updateTime_;
    ///
    /// Output only. The time when the metastore service was last updated.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp UpdateTime {
      get { return updateTime_; }
      set {
        updateTime_ = value;
      }
    }

    /// Field number for the "labels" field.
    public const int LabelsFieldNumber = 4;
    private static readonly pbc::MapField<string, string>.Codec _map_labels_codec
        = new pbc::MapField<string, string>.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForString(18, ""), 34);
    private readonly pbc::MapField<string, string> labels_ = new pbc::MapField<string, string>();
    ///
    /// User-defined labels for the metastore service.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::MapField<string, string> Labels {
      get { return labels_; }
    }

    /// Field number for the "network" field.
    public const int NetworkFieldNumber = 7;
    private string network_ = "";
    ///
    /// Immutable. The relative resource name of the VPC network on which the instance can be
    /// accessed. It is specified in the following form:
    ///
    /// `projects/{project_number}/global/networks/{network_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Network {
      get { return network_; }
      set {
        network_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "endpoint_uri" field.
    public const int EndpointUriFieldNumber = 8;
    private string endpointUri_ = "";
    ///
    /// Output only. The URI of the endpoint used to access the metastore service.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string EndpointUri {
      get { return endpointUri_; }
      set {
        endpointUri_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "port" field.
    public const int PortFieldNumber = 9;
    private int port_;
    ///
    /// The TCP port at which the metastore service is reached. Default: 9083.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int Port {
      get { return port_; }
      set {
        port_ = value;
      }
    }

    /// Field number for the "state" field.
    public const int StateFieldNumber = 10;
    private global::Google.Cloud.Metastore.V1.Service.Types.State state_ = global::Google.Cloud.Metastore.V1.Service.Types.State.Unspecified;
    ///
    /// Output only. The current state of the metastore service.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.Service.Types.State State {
      get { return state_; }
      set {
        state_ = value;
      }
    }

    /// Field number for the "state_message" field.
    public const int StateMessageFieldNumber = 11;
    private string stateMessage_ = "";
    ///
    /// Output only. Additional information about the current state of the metastore service, if
    /// available.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string StateMessage {
      get { return stateMessage_; }
      set {
        stateMessage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "artifact_gcs_uri" field.
    public const int ArtifactGcsUriFieldNumber = 12;
    private string artifactGcsUri_ = "";
    ///
    /// Output only. A Cloud Storage URI (starting with `gs://`) that specifies where artifacts
    /// related to the metastore service are stored.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ArtifactGcsUri {
      get { return artifactGcsUri_; }
      set {
        artifactGcsUri_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "tier" field.
    public const int TierFieldNumber = 13;
    private global::Google.Cloud.Metastore.V1.Service.Types.Tier tier_ = global::Google.Cloud.Metastore.V1.Service.Types.Tier.Unspecified;
    ///
    /// The tier of the service.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.Service.Types.Tier Tier {
      get { return tier_; }
      set {
        tier_ = value;
      }
    }

    /// Field number for the "maintenance_window" field.
    public const int MaintenanceWindowFieldNumber = 15;
    private global::Google.Cloud.Metastore.V1.MaintenanceWindow maintenanceWindow_;
    ///
    /// The one hour maintenance window of the metastore service. This specifies
    /// when the service can be restarted for maintenance purposes in UTC time.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.MaintenanceWindow MaintenanceWindow {
      get { return maintenanceWindow_; }
      set {
        maintenanceWindow_ = value;
      }
    }

    /// Field number for the "uid" field.
    public const int UidFieldNumber = 16;
    private string uid_ = "";
    ///
    /// Output only. The globally unique resource identifier of the metastore service.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Uid {
      get { return uid_; }
      set {
        uid_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "metadata_management_activity" field.
    public const int MetadataManagementActivityFieldNumber = 17;
    private global::Google.Cloud.Metastore.V1.MetadataManagementActivity metadataManagementActivity_;
    ///
    /// Output only. The metadata management activities of the metastore service.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.MetadataManagementActivity MetadataManagementActivity {
      get { return metadataManagementActivity_; }
      set {
        metadataManagementActivity_ = value;
      }
    }

    /// Field number for the "release_channel" field.
    public const int ReleaseChannelFieldNumber = 19;
    private global::Google.Cloud.Metastore.V1.Service.Types.ReleaseChannel releaseChannel_ = global::Google.Cloud.Metastore.V1.Service.Types.ReleaseChannel.Unspecified;
    ///
    /// Immutable. The release channel of the service.
    /// If unspecified, defaults to `STABLE`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.Service.Types.ReleaseChannel ReleaseChannel {
      get { return releaseChannel_; }
      set {
        releaseChannel_ = value;
      }
    }

    private object metastoreConfig_;
    /// Enum of possible cases for the "metastore_config" oneof.
    public enum MetastoreConfigOneofCase {
      None = 0,
      HiveMetastoreConfig = 5,
    }
    private MetastoreConfigOneofCase metastoreConfigCase_ = MetastoreConfigOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public MetastoreConfigOneofCase MetastoreConfigCase {
      get { return metastoreConfigCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearMetastoreConfig() {
      metastoreConfigCase_ = MetastoreConfigOneofCase.None;
      metastoreConfig_ = null;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Service);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Service other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(HiveMetastoreConfig, other.HiveMetastoreConfig)) return false;
      if (Name != other.Name) return false;
      if (!object.Equals(CreateTime, other.CreateTime)) return false;
      if (!object.Equals(UpdateTime, other.UpdateTime)) return false;
      if (!Labels.Equals(other.Labels)) return false;
      if (Network != other.Network) return false;
      if (EndpointUri != other.EndpointUri) return false;
      if (Port != other.Port) return false;
      if (State != other.State) return false;
      if (StateMessage != other.StateMessage) return false;
      if (ArtifactGcsUri != other.ArtifactGcsUri) return false;
      if (Tier != other.Tier) return false;
      if (!object.Equals(MaintenanceWindow, other.MaintenanceWindow)) return false;
      if (Uid != other.Uid) return false;
      if (!object.Equals(MetadataManagementActivity, other.MetadataManagementActivity)) return false;
      if (ReleaseChannel != other.ReleaseChannel) return false;
      if (MetastoreConfigCase != other.MetastoreConfigCase) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (metastoreConfigCase_ == MetastoreConfigOneofCase.HiveMetastoreConfig) hash ^= HiveMetastoreConfig.GetHashCode();
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (createTime_ != null) hash ^= CreateTime.GetHashCode();
      if (updateTime_ != null) hash ^= UpdateTime.GetHashCode();
      hash ^= Labels.GetHashCode();
      if (Network.Length != 0) hash ^= Network.GetHashCode();
      if (EndpointUri.Length != 0) hash ^= EndpointUri.GetHashCode();
      if (Port != 0) hash ^= Port.GetHashCode();
      if (State != global::Google.Cloud.Metastore.V1.Service.Types.State.Unspecified) hash ^= State.GetHashCode();
      if (StateMessage.Length != 0) hash ^= StateMessage.GetHashCode();
      if (ArtifactGcsUri.Length != 0) hash ^= ArtifactGcsUri.GetHashCode();
      if (Tier != global::Google.Cloud.Metastore.V1.Service.Types.Tier.Unspecified) hash ^= Tier.GetHashCode();
      if (maintenanceWindow_ != null) hash ^= MaintenanceWindow.GetHashCode();
      if (Uid.Length != 0) hash ^= Uid.GetHashCode();
      if (metadataManagementActivity_ != null) hash ^= MetadataManagementActivity.GetHashCode();
      if (ReleaseChannel != global::Google.Cloud.Metastore.V1.Service.Types.ReleaseChannel.Unspecified) hash ^= ReleaseChannel.GetHashCode();
      hash ^= (int) metastoreConfigCase_;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (createTime_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(CreateTime);
      }
      if (updateTime_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(UpdateTime);
      }
      labels_.WriteTo(output, _map_labels_codec);
      if (metastoreConfigCase_ == MetastoreConfigOneofCase.HiveMetastoreConfig) {
        output.WriteRawTag(42);
        output.WriteMessage(HiveMetastoreConfig);
      }
      if (Network.Length != 0) {
        output.WriteRawTag(58);
        output.WriteString(Network);
      }
      if (EndpointUri.Length != 0) {
        output.WriteRawTag(66);
        output.WriteString(EndpointUri);
      }
      if (Port != 0) {
        output.WriteRawTag(72);
        output.WriteInt32(Port);
      }
      if (State != global::Google.Cloud.Metastore.V1.Service.Types.State.Unspecified) {
        output.WriteRawTag(80);
        output.WriteEnum((int) State);
      }
      if (StateMessage.Length != 0) {
        output.WriteRawTag(90);
        output.WriteString(StateMessage);
      }
      if (ArtifactGcsUri.Length != 0) {
        output.WriteRawTag(98);
        output.WriteString(ArtifactGcsUri);
      }
      if (Tier != global::Google.Cloud.Metastore.V1.Service.Types.Tier.Unspecified) {
        output.WriteRawTag(104);
        output.WriteEnum((int) Tier);
      }
      if (maintenanceWindow_ != null) {
        output.WriteRawTag(122);
        output.WriteMessage(MaintenanceWindow);
      }
      if (Uid.Length != 0) {
        output.WriteRawTag(130, 1);
        output.WriteString(Uid);
      }
      if (metadataManagementActivity_ != null) {
        output.WriteRawTag(138, 1);
        output.WriteMessage(MetadataManagementActivity);
      }
      if (ReleaseChannel != global::Google.Cloud.Metastore.V1.Service.Types.ReleaseChannel.Unspecified) {
        output.WriteRawTag(152, 1);
        output.WriteEnum((int) ReleaseChannel);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (createTime_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(CreateTime);
      }
      if (updateTime_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(UpdateTime);
      }
      labels_.WriteTo(ref output, _map_labels_codec);
      if (metastoreConfigCase_ == MetastoreConfigOneofCase.HiveMetastoreConfig) {
        output.WriteRawTag(42);
        output.WriteMessage(HiveMetastoreConfig);
      }
      if (Network.Length != 0) {
        output.WriteRawTag(58);
        output.WriteString(Network);
      }
      if (EndpointUri.Length != 0) {
        output.WriteRawTag(66);
        output.WriteString(EndpointUri);
      }
      if (Port != 0) {
        output.WriteRawTag(72);
        output.WriteInt32(Port);
      }
      if (State != global::Google.Cloud.Metastore.V1.Service.Types.State.Unspecified) {
        output.WriteRawTag(80);
        output.WriteEnum((int) State);
      }
      if (StateMessage.Length != 0) {
        output.WriteRawTag(90);
        output.WriteString(StateMessage);
      }
      if (ArtifactGcsUri.Length != 0) {
        output.WriteRawTag(98);
        output.WriteString(ArtifactGcsUri);
      }
      if (Tier != global::Google.Cloud.Metastore.V1.Service.Types.Tier.Unspecified) {
        output.WriteRawTag(104);
        output.WriteEnum((int) Tier);
      }
      if (maintenanceWindow_ != null) {
        output.WriteRawTag(122);
        output.WriteMessage(MaintenanceWindow);
      }
      if (Uid.Length != 0) {
        output.WriteRawTag(130, 1);
        output.WriteString(Uid);
      }
      if (metadataManagementActivity_ != null) {
        output.WriteRawTag(138, 1);
        output.WriteMessage(MetadataManagementActivity);
      }
      if (ReleaseChannel != global::Google.Cloud.Metastore.V1.Service.Types.ReleaseChannel.Unspecified) {
        output.WriteRawTag(152, 1);
        output.WriteEnum((int) ReleaseChannel);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (metastoreConfigCase_ == MetastoreConfigOneofCase.HiveMetastoreConfig) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(HiveMetastoreConfig);
      }
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (createTime_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(CreateTime);
      }
      if (updateTime_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(UpdateTime);
      }
      size += labels_.CalculateSize(_map_labels_codec);
      if (Network.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Network);
      }
      if (EndpointUri.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(EndpointUri);
      }
      if (Port != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Port);
      }
      if (State != global::Google.Cloud.Metastore.V1.Service.Types.State.Unspecified) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) State);
      }
      if (StateMessage.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(StateMessage);
      }
      if (ArtifactGcsUri.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ArtifactGcsUri);
      }
      if (Tier != global::Google.Cloud.Metastore.V1.Service.Types.Tier.Unspecified) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Tier);
      }
      if (maintenanceWindow_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(MaintenanceWindow);
      }
      if (Uid.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeStringSize(Uid);
      }
      if (metadataManagementActivity_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(MetadataManagementActivity);
      }
      if (ReleaseChannel != global::Google.Cloud.Metastore.V1.Service.Types.ReleaseChannel.Unspecified) {
        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) ReleaseChannel);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Service other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.createTime_ != null) {
        if (createTime_ == null) {
          CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        CreateTime.MergeFrom(other.CreateTime);
      }
      if (other.updateTime_ != null) {
        if (updateTime_ == null) {
          UpdateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        UpdateTime.MergeFrom(other.UpdateTime);
      }
      labels_.Add(other.labels_);
      if (other.Network.Length != 0) {
        Network = other.Network;
      }
      if (other.EndpointUri.Length != 0) {
        EndpointUri = other.EndpointUri;
      }
      if (other.Port != 0) {
        Port = other.Port;
      }
      if (other.State != global::Google.Cloud.Metastore.V1.Service.Types.State.Unspecified) {
        State = other.State;
      }
      if (other.StateMessage.Length != 0) {
        StateMessage = other.StateMessage;
      }
      if (other.ArtifactGcsUri.Length != 0) {
        ArtifactGcsUri = other.ArtifactGcsUri;
      }
      if (other.Tier != global::Google.Cloud.Metastore.V1.Service.Types.Tier.Unspecified) {
        Tier = other.Tier;
      }
      if (other.maintenanceWindow_ != null) {
        if (maintenanceWindow_ == null) {
          MaintenanceWindow = new global::Google.Cloud.Metastore.V1.MaintenanceWindow();
        }
        MaintenanceWindow.MergeFrom(other.MaintenanceWindow);
      }
      if (other.Uid.Length != 0) {
        Uid = other.Uid;
      }
      if (other.metadataManagementActivity_ != null) {
        if (metadataManagementActivity_ == null) {
          MetadataManagementActivity = new global::Google.Cloud.Metastore.V1.MetadataManagementActivity();
        }
        MetadataManagementActivity.MergeFrom(other.MetadataManagementActivity);
      }
      if (other.ReleaseChannel != global::Google.Cloud.Metastore.V1.Service.Types.ReleaseChannel.Unspecified) {
        ReleaseChannel = other.ReleaseChannel;
      }
      switch (other.MetastoreConfigCase) {
        case MetastoreConfigOneofCase.HiveMetastoreConfig:
          if (HiveMetastoreConfig == null) {
            HiveMetastoreConfig = new global::Google.Cloud.Metastore.V1.HiveMetastoreConfig();
          }
          HiveMetastoreConfig.MergeFrom(other.HiveMetastoreConfig);
          break;
      }

      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            if (createTime_ == null) {
              CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(CreateTime);
            break;
          }
          case 26: {
            if (updateTime_ == null) {
              UpdateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(UpdateTime);
            break;
          }
          case 34: {
            labels_.AddEntriesFrom(input, _map_labels_codec);
            break;
          }
          case 42: {
            global::Google.Cloud.Metastore.V1.HiveMetastoreConfig subBuilder = new global::Google.Cloud.Metastore.V1.HiveMetastoreConfig();
            if (metastoreConfigCase_ == MetastoreConfigOneofCase.HiveMetastoreConfig) {
              subBuilder.MergeFrom(HiveMetastoreConfig);
            }
            input.ReadMessage(subBuilder);
            HiveMetastoreConfig = subBuilder;
            break;
          }
          case 58: {
            Network = input.ReadString();
            break;
          }
          case 66: {
            EndpointUri = input.ReadString();
            break;
          }
          case 72: {
            Port = input.ReadInt32();
            break;
          }
          case 80: {
            State = (global::Google.Cloud.Metastore.V1.Service.Types.State) input.ReadEnum();
            break;
          }
          case 90: {
            StateMessage = input.ReadString();
            break;
          }
          case 98: {
            ArtifactGcsUri = input.ReadString();
            break;
          }
          case 104: {
            Tier = (global::Google.Cloud.Metastore.V1.Service.Types.Tier) input.ReadEnum();
            break;
          }
          case 122: {
            if (maintenanceWindow_ == null) {
              MaintenanceWindow = new global::Google.Cloud.Metastore.V1.MaintenanceWindow();
            }
            input.ReadMessage(MaintenanceWindow);
            break;
          }
          case 130: {
            Uid = input.ReadString();
            break;
          }
          case 138: {
            if (metadataManagementActivity_ == null) {
              MetadataManagementActivity = new global::Google.Cloud.Metastore.V1.MetadataManagementActivity();
            }
            input.ReadMessage(MetadataManagementActivity);
            break;
          }
          case 152: {
            ReleaseChannel = (global::Google.Cloud.Metastore.V1.Service.Types.ReleaseChannel) input.ReadEnum();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            if (createTime_ == null) {
              CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(CreateTime);
            break;
          }
          case 26: {
            if (updateTime_ == null) {
              UpdateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(UpdateTime);
            break;
          }
          case 34: {
            labels_.AddEntriesFrom(ref input, _map_labels_codec);
            break;
          }
          case 42: {
            global::Google.Cloud.Metastore.V1.HiveMetastoreConfig subBuilder = new global::Google.Cloud.Metastore.V1.HiveMetastoreConfig();
            if (metastoreConfigCase_ == MetastoreConfigOneofCase.HiveMetastoreConfig) {
              subBuilder.MergeFrom(HiveMetastoreConfig);
            }
            input.ReadMessage(subBuilder);
            HiveMetastoreConfig = subBuilder;
            break;
          }
          case 58: {
            Network = input.ReadString();
            break;
          }
          case 66: {
            EndpointUri = input.ReadString();
            break;
          }
          case 72: {
            Port = input.ReadInt32();
            break;
          }
          case 80: {
            State = (global::Google.Cloud.Metastore.V1.Service.Types.State) input.ReadEnum();
            break;
          }
          case 90: {
            StateMessage = input.ReadString();
            break;
          }
          case 98: {
            ArtifactGcsUri = input.ReadString();
            break;
          }
          case 104: {
            Tier = (global::Google.Cloud.Metastore.V1.Service.Types.Tier) input.ReadEnum();
            break;
          }
          case 122: {
            if (maintenanceWindow_ == null) {
              MaintenanceWindow = new global::Google.Cloud.Metastore.V1.MaintenanceWindow();
            }
            input.ReadMessage(MaintenanceWindow);
            break;
          }
          case 130: {
            Uid = input.ReadString();
            break;
          }
          case 138: {
            if (metadataManagementActivity_ == null) {
              MetadataManagementActivity = new global::Google.Cloud.Metastore.V1.MetadataManagementActivity();
            }
            input.ReadMessage(MetadataManagementActivity);
            break;
          }
          case 152: {
            ReleaseChannel = (global::Google.Cloud.Metastore.V1.Service.Types.ReleaseChannel) input.ReadEnum();
            break;
          }
        }
      }
    }
    #endif

    #region Nested types
    /// Container for nested types declared in the Service message type.
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static partial class Types {
      ///
      /// The current state of the metastore service.
      ///
      public enum State {
        ///
        /// The state of the metastore service is unknown.
        ///
        [pbr::OriginalName("STATE_UNSPECIFIED")] Unspecified = 0,
        ///
        /// The metastore service is in the process of being created.
        ///
        [pbr::OriginalName("CREATING")] Creating = 1,
        ///
        /// The metastore service is running and ready to serve queries.
        ///
        [pbr::OriginalName("ACTIVE")] Active = 2,
        ///
        /// The metastore service is entering suspension. Its query-serving
        /// availability may cease unexpectedly.
        ///
        [pbr::OriginalName("SUSPENDING")] Suspending = 3,
        ///
        /// The metastore service is suspended and unable to serve queries.
        ///
        [pbr::OriginalName("SUSPENDED")] Suspended = 4,
        ///
        /// The metastore service is being updated. It remains usable but cannot
        /// accept additional update requests or be deleted at this time.
        ///
        [pbr::OriginalName("UPDATING")] Updating = 5,
        ///
        /// The metastore service is undergoing deletion. It cannot be used.
        ///
        [pbr::OriginalName("DELETING")] Deleting = 6,
        ///
        /// The metastore service has encountered an error and cannot be used. The
        /// metastore service should be deleted.
        ///
        [pbr::OriginalName("ERROR")] Error = 7,
      }

      ///
      /// Available service tiers.
      ///
      public enum Tier {
        ///
        /// The tier is not set.
        ///
        [pbr::OriginalName("TIER_UNSPECIFIED")] Unspecified = 0,
        ///
        /// The developer tier provides limited scalability and no fault tolerance.
        /// Good for low-cost proof-of-concept.
        ///
        [pbr::OriginalName("DEVELOPER")] Developer = 1,
        ///
        /// The enterprise tier provides multi-zone high availability, and sufficient
        /// scalability for enterprise-level Dataproc Metastore workloads.
        ///
        [pbr::OriginalName("ENTERPRISE")] Enterprise = 3,
      }

      ///
      /// Release channels bundle features of varying levels of stability. Newer
      /// features may be introduced initially into less stable release channels and
      /// can be automatically promoted into more stable release channels.
      ///
      public enum ReleaseChannel {
        ///
        /// Release channel is not specified.
        ///
        [pbr::OriginalName("RELEASE_CHANNEL_UNSPECIFIED")] Unspecified = 0,
        ///
        /// The `CANARY` release channel contains the newest features, which may be
        /// unstable and subject to unresolved issues with no known workarounds.
        /// Services using the `CANARY` release channel are not subject to any SLAs.
        ///
        [pbr::OriginalName("CANARY")] Canary = 1,
        ///
        /// The `STABLE` release channel contains features that are considered stable
        /// and have been validated for production use.
        ///
        [pbr::OriginalName("STABLE")] Stable = 2,
      }

    }
    #endregion

  }

  ///
  /// Maintenance window. This specifies when Dataproc Metastore
  /// may perform system maintenance operation to the service.
  ///
  public sealed partial class MaintenanceWindow : pb::IMessage<MaintenanceWindow>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<MaintenanceWindow> _parser = new pb::MessageParser<MaintenanceWindow>(() => new MaintenanceWindow());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<MaintenanceWindow> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[1]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public MaintenanceWindow() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public MaintenanceWindow(MaintenanceWindow other) : this() {
      HourOfDay = other.HourOfDay;
      dayOfWeek_ = other.dayOfWeek_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public MaintenanceWindow Clone() {
      return new MaintenanceWindow(this);
    }

    /// Field number for the "hour_of_day" field.
    public const int HourOfDayFieldNumber = 1;
    private static readonly pb::FieldCodec<int?> _single_hourOfDay_codec = pb::FieldCodec.ForStructWrapper<int>(10);
    private int? hourOfDay_;
    ///
    /// The hour of day (0-23) when the window starts.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int? HourOfDay {
      get { return hourOfDay_; }
      set {
        hourOfDay_ = value;
      }
    }

    /// Field number for the "day_of_week" field.
    public const int DayOfWeekFieldNumber = 2;
    private global::Google.Type.DayOfWeek dayOfWeek_ = global::Google.Type.DayOfWeek.Unspecified;
    ///
    /// The day of week, when the window starts.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Type.DayOfWeek DayOfWeek {
      get { return dayOfWeek_; }
      set {
        dayOfWeek_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as MaintenanceWindow);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(MaintenanceWindow other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (HourOfDay != other.HourOfDay) return false;
      if (DayOfWeek != other.DayOfWeek) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (hourOfDay_ != null) hash ^= HourOfDay.GetHashCode();
      if (DayOfWeek != global::Google.Type.DayOfWeek.Unspecified) hash ^= DayOfWeek.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (hourOfDay_ != null) {
        _single_hourOfDay_codec.WriteTagAndValue(output, HourOfDay);
      }
      if (DayOfWeek != global::Google.Type.DayOfWeek.Unspecified) {
        output.WriteRawTag(16);
        output.WriteEnum((int) DayOfWeek);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (hourOfDay_ != null) {
        _single_hourOfDay_codec.WriteTagAndValue(ref output, HourOfDay);
      }
      if (DayOfWeek != global::Google.Type.DayOfWeek.Unspecified) {
        output.WriteRawTag(16);
        output.WriteEnum((int) DayOfWeek);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (hourOfDay_ != null) {
        size += _single_hourOfDay_codec.CalculateSizeWithTag(HourOfDay);
      }
      if (DayOfWeek != global::Google.Type.DayOfWeek.Unspecified) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DayOfWeek);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(MaintenanceWindow other) {
      if (other == null) {
        return;
      }
      if (other.hourOfDay_ != null) {
        if (hourOfDay_ == null || other.HourOfDay != 0) {
          HourOfDay = other.HourOfDay;
        }
      }
      if (other.DayOfWeek != global::Google.Type.DayOfWeek.Unspecified) {
        DayOfWeek = other.DayOfWeek;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            int? value = _single_hourOfDay_codec.Read(input);
            if (hourOfDay_ == null || value != 0) {
              HourOfDay = value;
            }
            break;
          }
          case 16: {
            DayOfWeek = (global::Google.Type.DayOfWeek) input.ReadEnum();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            int? value = _single_hourOfDay_codec.Read(ref input);
            if (hourOfDay_ == null || value != 0) {
              HourOfDay = value;
            }
            break;
          }
          case 16: {
            DayOfWeek = (global::Google.Type.DayOfWeek) input.ReadEnum();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Specifies configuration information specific to running Hive metastore
  /// software as the metastore service.
  ///
  public sealed partial class HiveMetastoreConfig : pb::IMessage<HiveMetastoreConfig>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<HiveMetastoreConfig> _parser = new pb::MessageParser<HiveMetastoreConfig>(() => new HiveMetastoreConfig());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<HiveMetastoreConfig> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[2]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HiveMetastoreConfig() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HiveMetastoreConfig(HiveMetastoreConfig other) : this() {
      version_ = other.version_;
      configOverrides_ = other.configOverrides_.Clone();
      kerberosConfig_ = other.kerberosConfig_ != null ? other.kerberosConfig_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HiveMetastoreConfig Clone() {
      return new HiveMetastoreConfig(this);
    }

    /// Field number for the "version" field.
    public const int VersionFieldNumber = 1;
    private string version_ = "";
    ///
    /// Immutable. The Hive metastore schema version.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Version {
      get { return version_; }
      set {
        version_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "config_overrides" field.
    public const int ConfigOverridesFieldNumber = 2;
    private static readonly pbc::MapField<string, string>.Codec _map_configOverrides_codec
        = new pbc::MapField<string, string>.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForString(18, ""), 18);
    private readonly pbc::MapField<string, string> configOverrides_ = new pbc::MapField<string, string>();
    ///
    /// A mapping of Hive metastore configuration key-value pairs to apply to the
    /// Hive metastore (configured in `hive-site.xml`). The mappings
    /// override system defaults (some keys cannot be overridden).
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::MapField<string, string> ConfigOverrides {
      get { return configOverrides_; }
    }

    /// Field number for the "kerberos_config" field.
    public const int KerberosConfigFieldNumber = 3;
    private global::Google.Cloud.Metastore.V1.KerberosConfig kerberosConfig_;
    ///
    /// Information used to configure the Hive metastore service as a service
    /// principal in a Kerberos realm. To disable Kerberos, use the `UpdateService`
    /// method and specify this field's path
    /// (`hive_metastore_config.kerberos_config`) in the request's `update_mask`
    /// while omitting this field from the request's `service`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.KerberosConfig KerberosConfig {
      get { return kerberosConfig_; }
      set {
        kerberosConfig_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as HiveMetastoreConfig);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(HiveMetastoreConfig other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Version != other.Version) return false;
      if (!ConfigOverrides.Equals(other.ConfigOverrides)) return false;
      if (!object.Equals(KerberosConfig, other.KerberosConfig)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Version.Length != 0) hash ^= Version.GetHashCode();
      hash ^= ConfigOverrides.GetHashCode();
      if (kerberosConfig_ != null) hash ^= KerberosConfig.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Version.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Version);
      }
      configOverrides_.WriteTo(output, _map_configOverrides_codec);
      if (kerberosConfig_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(KerberosConfig);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Version.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Version);
      }
      configOverrides_.WriteTo(ref output, _map_configOverrides_codec);
      if (kerberosConfig_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(KerberosConfig);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Version.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Version);
      }
      size += configOverrides_.CalculateSize(_map_configOverrides_codec);
      if (kerberosConfig_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(KerberosConfig);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(HiveMetastoreConfig other) {
      if (other == null) {
        return;
      }
      if (other.Version.Length != 0) {
        Version = other.Version;
      }
      configOverrides_.Add(other.configOverrides_);
      if (other.kerberosConfig_ != null) {
        if (kerberosConfig_ == null) {
          KerberosConfig = new global::Google.Cloud.Metastore.V1.KerberosConfig();
        }
        KerberosConfig.MergeFrom(other.KerberosConfig);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Version = input.ReadString();
            break;
          }
          case 18: {
            configOverrides_.AddEntriesFrom(input, _map_configOverrides_codec);
            break;
          }
          case 26: {
            if (kerberosConfig_ == null) {
              KerberosConfig = new global::Google.Cloud.Metastore.V1.KerberosConfig();
            }
            input.ReadMessage(KerberosConfig);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Version = input.ReadString();
            break;
          }
          case 18: {
            configOverrides_.AddEntriesFrom(ref input, _map_configOverrides_codec);
            break;
          }
          case 26: {
            if (kerberosConfig_ == null) {
              KerberosConfig = new global::Google.Cloud.Metastore.V1.KerberosConfig();
            }
            input.ReadMessage(KerberosConfig);
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Configuration information for a Kerberos principal.
  ///
  public sealed partial class KerberosConfig : pb::IMessage<KerberosConfig>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<KerberosConfig> _parser = new pb::MessageParser<KerberosConfig>(() => new KerberosConfig());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<KerberosConfig> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[3]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public KerberosConfig() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public KerberosConfig(KerberosConfig other) : this() {
      keytab_ = other.keytab_ != null ? other.keytab_.Clone() : null;
      principal_ = other.principal_;
      krb5ConfigGcsUri_ = other.krb5ConfigGcsUri_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public KerberosConfig Clone() {
      return new KerberosConfig(this);
    }

    /// Field number for the "keytab" field.
    public const int KeytabFieldNumber = 1;
    private global::Google.Cloud.Metastore.V1.Secret keytab_;
    ///
    /// A Kerberos keytab file that can be used to authenticate a service principal
    /// with a Kerberos Key Distribution Center (KDC).
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.Secret Keytab {
      get { return keytab_; }
      set {
        keytab_ = value;
      }
    }

    /// Field number for the "principal" field.
    public const int PrincipalFieldNumber = 2;
    private string principal_ = "";
    ///
    /// A Kerberos principal that exists in the both the keytab the KDC
    /// to authenticate as. A typical principal is of the form
    /// `primary/instance@REALM`, but there is no exact format.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Principal {
      get { return principal_; }
      set {
        principal_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "krb5_config_gcs_uri" field.
    public const int Krb5ConfigGcsUriFieldNumber = 3;
    private string krb5ConfigGcsUri_ = "";
    ///
    /// A Cloud Storage URI that specifies the path to a
    /// krb5.conf file. It is of the form `gs://{bucket_name}/path/to/krb5.conf`,
    /// although the file does not need to be named krb5.conf explicitly.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Krb5ConfigGcsUri {
      get { return krb5ConfigGcsUri_; }
      set {
        krb5ConfigGcsUri_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as KerberosConfig);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(KerberosConfig other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(Keytab, other.Keytab)) return false;
      if (Principal != other.Principal) return false;
      if (Krb5ConfigGcsUri != other.Krb5ConfigGcsUri) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (keytab_ != null) hash ^= Keytab.GetHashCode();
      if (Principal.Length != 0) hash ^= Principal.GetHashCode();
      if (Krb5ConfigGcsUri.Length != 0) hash ^= Krb5ConfigGcsUri.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (keytab_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(Keytab);
      }
      if (Principal.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Principal);
      }
      if (Krb5ConfigGcsUri.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Krb5ConfigGcsUri);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (keytab_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(Keytab);
      }
      if (Principal.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Principal);
      }
      if (Krb5ConfigGcsUri.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Krb5ConfigGcsUri);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (keytab_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Keytab);
      }
      if (Principal.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Principal);
      }
      if (Krb5ConfigGcsUri.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Krb5ConfigGcsUri);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(KerberosConfig other) {
      if (other == null) {
        return;
      }
      if (other.keytab_ != null) {
        if (keytab_ == null) {
          Keytab = new global::Google.Cloud.Metastore.V1.Secret();
        }
        Keytab.MergeFrom(other.Keytab);
      }
      if (other.Principal.Length != 0) {
        Principal = other.Principal;
      }
      if (other.Krb5ConfigGcsUri.Length != 0) {
        Krb5ConfigGcsUri = other.Krb5ConfigGcsUri;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (keytab_ == null) {
              Keytab = new global::Google.Cloud.Metastore.V1.Secret();
            }
            input.ReadMessage(Keytab);
            break;
          }
          case 18: {
            Principal = input.ReadString();
            break;
          }
          case 26: {
            Krb5ConfigGcsUri = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (keytab_ == null) {
              Keytab = new global::Google.Cloud.Metastore.V1.Secret();
            }
            input.ReadMessage(Keytab);
            break;
          }
          case 18: {
            Principal = input.ReadString();
            break;
          }
          case 26: {
            Krb5ConfigGcsUri = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// A securely stored value.
  ///
  public sealed partial class Secret : pb::IMessage<Secret>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Secret> _parser = new pb::MessageParser<Secret>(() => new Secret());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Secret> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[4]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Secret() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Secret(Secret other) : this() {
      switch (other.ValueCase) {
        case ValueOneofCase.CloudSecret:
          CloudSecret = other.CloudSecret;
          break;
      }

      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Secret Clone() {
      return new Secret(this);
    }

    /// Field number for the "cloud_secret" field.
    public const int CloudSecretFieldNumber = 2;
    ///
    /// The relative resource name of a Secret Manager secret version, in the
    /// following form:
    ///
    /// `projects/{project_number}/secrets/{secret_id}/versions/{version_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string CloudSecret {
      get { return valueCase_ == ValueOneofCase.CloudSecret ? (string) value_ : ""; }
      set {
        value_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
        valueCase_ = ValueOneofCase.CloudSecret;
      }
    }

    private object value_;
    /// Enum of possible cases for the "value" oneof.
    public enum ValueOneofCase {
      None = 0,
      CloudSecret = 2,
    }
    private ValueOneofCase valueCase_ = ValueOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ValueOneofCase ValueCase {
      get { return valueCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearValue() {
      valueCase_ = ValueOneofCase.None;
      value_ = null;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Secret);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Secret other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (CloudSecret != other.CloudSecret) return false;
      if (ValueCase != other.ValueCase) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (valueCase_ == ValueOneofCase.CloudSecret) hash ^= CloudSecret.GetHashCode();
      hash ^= (int) valueCase_;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (valueCase_ == ValueOneofCase.CloudSecret) {
        output.WriteRawTag(18);
        output.WriteString(CloudSecret);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (valueCase_ == ValueOneofCase.CloudSecret) {
        output.WriteRawTag(18);
        output.WriteString(CloudSecret);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (valueCase_ == ValueOneofCase.CloudSecret) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(CloudSecret);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Secret other) {
      if (other == null) {
        return;
      }
      switch (other.ValueCase) {
        case ValueOneofCase.CloudSecret:
          CloudSecret = other.CloudSecret;
          break;
      }

      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 18: {
            CloudSecret = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 18: {
            CloudSecret = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// The metadata management activities of the metastore service.
  ///
  public sealed partial class MetadataManagementActivity : pb::IMessage<MetadataManagementActivity>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<MetadataManagementActivity> _parser = new pb::MessageParser<MetadataManagementActivity>(() => new MetadataManagementActivity());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<MetadataManagementActivity> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[5]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public MetadataManagementActivity() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public MetadataManagementActivity(MetadataManagementActivity other) : this() {
      metadataExports_ = other.metadataExports_.Clone();
      restores_ = other.restores_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public MetadataManagementActivity Clone() {
      return new MetadataManagementActivity(this);
    }

    /// Field number for the "metadata_exports" field.
    public const int MetadataExportsFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Google.Cloud.Metastore.V1.MetadataExport> _repeated_metadataExports_codec
        = pb::FieldCodec.ForMessage(10, global::Google.Cloud.Metastore.V1.MetadataExport.Parser);
    private readonly pbc::RepeatedField<global::Google.Cloud.Metastore.V1.MetadataExport> metadataExports_ = new pbc::RepeatedField<global::Google.Cloud.Metastore.V1.MetadataExport>();
    ///
    /// Output only. The latest metadata exports of the metastore service.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Google.Cloud.Metastore.V1.MetadataExport> MetadataExports {
      get { return metadataExports_; }
    }

    /// Field number for the "restores" field.
    public const int RestoresFieldNumber = 2;
    private static readonly pb::FieldCodec<global::Google.Cloud.Metastore.V1.Restore> _repeated_restores_codec
        = pb::FieldCodec.ForMessage(18, global::Google.Cloud.Metastore.V1.Restore.Parser);
    private readonly pbc::RepeatedField<global::Google.Cloud.Metastore.V1.Restore> restores_ = new pbc::RepeatedField<global::Google.Cloud.Metastore.V1.Restore>();
    ///
    /// Output only. The latest restores of the metastore service.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Google.Cloud.Metastore.V1.Restore> Restores {
      get { return restores_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as MetadataManagementActivity);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(MetadataManagementActivity other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!metadataExports_.Equals(other.metadataExports_)) return false;
      if(!restores_.Equals(other.restores_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= metadataExports_.GetHashCode();
      hash ^= restores_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      metadataExports_.WriteTo(output, _repeated_metadataExports_codec);
      restores_.WriteTo(output, _repeated_restores_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      metadataExports_.WriteTo(ref output, _repeated_metadataExports_codec);
      restores_.WriteTo(ref output, _repeated_restores_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      size += metadataExports_.CalculateSize(_repeated_metadataExports_codec);
      size += restores_.CalculateSize(_repeated_restores_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(MetadataManagementActivity other) {
      if (other == null) {
        return;
      }
      metadataExports_.Add(other.metadataExports_);
      restores_.Add(other.restores_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            metadataExports_.AddEntriesFrom(input, _repeated_metadataExports_codec);
            break;
          }
          case 18: {
            restores_.AddEntriesFrom(input, _repeated_restores_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            metadataExports_.AddEntriesFrom(ref input, _repeated_metadataExports_codec);
            break;
          }
          case 18: {
            restores_.AddEntriesFrom(ref input, _repeated_restores_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// A metastore resource that imports metadata.
  ///
  public sealed partial class MetadataImport : pb::IMessage<MetadataImport>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<MetadataImport> _parser = new pb::MessageParser<MetadataImport>(() => new MetadataImport());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<MetadataImport> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[6]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public MetadataImport() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public MetadataImport(MetadataImport other) : this() {
      name_ = other.name_;
      description_ = other.description_;
      createTime_ = other.createTime_ != null ? other.createTime_.Clone() : null;
      updateTime_ = other.updateTime_ != null ? other.updateTime_.Clone() : null;
      endTime_ = other.endTime_ != null ? other.endTime_.Clone() : null;
      state_ = other.state_;
      switch (other.MetadataCase) {
        case MetadataOneofCase.DatabaseDump:
          DatabaseDump = other.DatabaseDump.Clone();
          break;
      }

      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public MetadataImport Clone() {
      return new MetadataImport(this);
    }

    /// Field number for the "database_dump" field.
    public const int DatabaseDumpFieldNumber = 6;
    ///
    /// Immutable. A database dump from a pre-existing metastore's database.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump DatabaseDump {
      get { return metadataCase_ == MetadataOneofCase.DatabaseDump ? (global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump) metadata_ : null; }
      set {
        metadata_ = value;
        metadataCase_ = value == null ? MetadataOneofCase.None : MetadataOneofCase.DatabaseDump;
      }
    }

    /// Field number for the "name" field.
    public const int NameFieldNumber = 1;
    private string name_ = "";
    ///
    /// Immutable. The relative resource name of the metadata import, of the form:
    ///
    /// `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{metadata_import_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "description" field.
    public const int DescriptionFieldNumber = 2;
    private string description_ = "";
    ///
    /// The description of the metadata import.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Description {
      get { return description_; }
      set {
        description_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "create_time" field.
    public const int CreateTimeFieldNumber = 3;
    private global::Google.Protobuf.WellKnownTypes.Timestamp createTime_;
    ///
    /// Output only. The time when the metadata import was started.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp CreateTime {
      get { return createTime_; }
      set {
        createTime_ = value;
      }
    }

    /// Field number for the "update_time" field.
    public const int UpdateTimeFieldNumber = 4;
    private global::Google.Protobuf.WellKnownTypes.Timestamp updateTime_;
    ///
    /// Output only. The time when the metadata import was last updated.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp UpdateTime {
      get { return updateTime_; }
      set {
        updateTime_ = value;
      }
    }

    /// Field number for the "end_time" field.
    public const int EndTimeFieldNumber = 7;
    private global::Google.Protobuf.WellKnownTypes.Timestamp endTime_;
    ///
    /// Output only. The time when the metadata import finished.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp EndTime {
      get { return endTime_; }
      set {
        endTime_ = value;
      }
    }

    /// Field number for the "state" field.
    public const int StateFieldNumber = 5;
    private global::Google.Cloud.Metastore.V1.MetadataImport.Types.State state_ = global::Google.Cloud.Metastore.V1.MetadataImport.Types.State.Unspecified;
    ///
    /// Output only. The current state of the metadata import.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.MetadataImport.Types.State State {
      get { return state_; }
      set {
        state_ = value;
      }
    }

    private object metadata_;
    /// Enum of possible cases for the "metadata" oneof.
    public enum MetadataOneofCase {
      None = 0,
      DatabaseDump = 6,
    }
    private MetadataOneofCase metadataCase_ = MetadataOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public MetadataOneofCase MetadataCase {
      get { return metadataCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearMetadata() {
      metadataCase_ = MetadataOneofCase.None;
      metadata_ = null;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as MetadataImport);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(MetadataImport other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(DatabaseDump, other.DatabaseDump)) return false;
      if (Name != other.Name) return false;
      if (Description != other.Description) return false;
      if (!object.Equals(CreateTime, other.CreateTime)) return false;
      if (!object.Equals(UpdateTime, other.UpdateTime)) return false;
      if (!object.Equals(EndTime, other.EndTime)) return false;
      if (State != other.State) return false;
      if (MetadataCase != other.MetadataCase) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (metadataCase_ == MetadataOneofCase.DatabaseDump) hash ^= DatabaseDump.GetHashCode();
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (Description.Length != 0) hash ^= Description.GetHashCode();
      if (createTime_ != null) hash ^= CreateTime.GetHashCode();
      if (updateTime_ != null) hash ^= UpdateTime.GetHashCode();
      if (endTime_ != null) hash ^= EndTime.GetHashCode();
      if (State != global::Google.Cloud.Metastore.V1.MetadataImport.Types.State.Unspecified) hash ^= State.GetHashCode();
      hash ^= (int) metadataCase_;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (Description.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Description);
      }
      if (createTime_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(CreateTime);
      }
      if (updateTime_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(UpdateTime);
      }
      if (State != global::Google.Cloud.Metastore.V1.MetadataImport.Types.State.Unspecified) {
        output.WriteRawTag(40);
        output.WriteEnum((int) State);
      }
      if (metadataCase_ == MetadataOneofCase.DatabaseDump) {
        output.WriteRawTag(50);
        output.WriteMessage(DatabaseDump);
      }
      if (endTime_ != null) {
        output.WriteRawTag(58);
        output.WriteMessage(EndTime);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (Description.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Description);
      }
      if (createTime_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(CreateTime);
      }
      if (updateTime_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(UpdateTime);
      }
      if (State != global::Google.Cloud.Metastore.V1.MetadataImport.Types.State.Unspecified) {
        output.WriteRawTag(40);
        output.WriteEnum((int) State);
      }
      if (metadataCase_ == MetadataOneofCase.DatabaseDump) {
        output.WriteRawTag(50);
        output.WriteMessage(DatabaseDump);
      }
      if (endTime_ != null) {
        output.WriteRawTag(58);
        output.WriteMessage(EndTime);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (metadataCase_ == MetadataOneofCase.DatabaseDump) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(DatabaseDump);
      }
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (Description.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Description);
      }
      if (createTime_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(CreateTime);
      }
      if (updateTime_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(UpdateTime);
      }
      if (endTime_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(EndTime);
      }
      if (State != global::Google.Cloud.Metastore.V1.MetadataImport.Types.State.Unspecified) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) State);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(MetadataImport other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.Description.Length != 0) {
        Description = other.Description;
      }
      if (other.createTime_ != null) {
        if (createTime_ == null) {
          CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        CreateTime.MergeFrom(other.CreateTime);
      }
      if (other.updateTime_ != null) {
        if (updateTime_ == null) {
          UpdateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        UpdateTime.MergeFrom(other.UpdateTime);
      }
      if (other.endTime_ != null) {
        if (endTime_ == null) {
          EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        EndTime.MergeFrom(other.EndTime);
      }
      if (other.State != global::Google.Cloud.Metastore.V1.MetadataImport.Types.State.Unspecified) {
        State = other.State;
      }
      switch (other.MetadataCase) {
        case MetadataOneofCase.DatabaseDump:
          if (DatabaseDump == null) {
            DatabaseDump = new global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump();
          }
          DatabaseDump.MergeFrom(other.DatabaseDump);
          break;
      }

      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            Description = input.ReadString();
            break;
          }
          case 26: {
            if (createTime_ == null) {
              CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(CreateTime);
            break;
          }
          case 34: {
            if (updateTime_ == null) {
              UpdateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(UpdateTime);
            break;
          }
          case 40: {
            State = (global::Google.Cloud.Metastore.V1.MetadataImport.Types.State) input.ReadEnum();
            break;
          }
          case 50: {
            global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump subBuilder = new global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump();
            if (metadataCase_ == MetadataOneofCase.DatabaseDump) {
              subBuilder.MergeFrom(DatabaseDump);
            }
            input.ReadMessage(subBuilder);
            DatabaseDump = subBuilder;
            break;
          }
          case 58: {
            if (endTime_ == null) {
              EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(EndTime);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            Description = input.ReadString();
            break;
          }
          case 26: {
            if (createTime_ == null) {
              CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(CreateTime);
            break;
          }
          case 34: {
            if (updateTime_ == null) {
              UpdateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(UpdateTime);
            break;
          }
          case 40: {
            State = (global::Google.Cloud.Metastore.V1.MetadataImport.Types.State) input.ReadEnum();
            break;
          }
          case 50: {
            global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump subBuilder = new global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump();
            if (metadataCase_ == MetadataOneofCase.DatabaseDump) {
              subBuilder.MergeFrom(DatabaseDump);
            }
            input.ReadMessage(subBuilder);
            DatabaseDump = subBuilder;
            break;
          }
          case 58: {
            if (endTime_ == null) {
              EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(EndTime);
            break;
          }
        }
      }
    }
    #endif

    #region Nested types
    /// Container for nested types declared in the MetadataImport message type.
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static partial class Types {
      ///
      /// The current state of the metadata import.
      ///
      public enum State {
        ///
        /// The state of the metadata import is unknown.
        ///
        [pbr::OriginalName("STATE_UNSPECIFIED")] Unspecified = 0,
        ///
        /// The metadata import is running.
        ///
        [pbr::OriginalName("RUNNING")] Running = 1,
        ///
        /// The metadata import completed successfully.
        ///
        [pbr::OriginalName("SUCCEEDED")] Succeeded = 2,
        ///
        /// The metadata import is being updated.
        ///
        [pbr::OriginalName("UPDATING")] Updating = 3,
        ///
        /// The metadata import failed, and attempted metadata changes were rolled
        /// back.
        ///
        [pbr::OriginalName("FAILED")] Failed = 4,
      }

      ///
      /// A specification of the location of and metadata about a database dump from
      /// a relational database management system.
      ///
      public sealed partial class DatabaseDump : pb::IMessage<DatabaseDump>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<DatabaseDump> _parser = new pb::MessageParser<DatabaseDump>(() => new DatabaseDump());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<DatabaseDump> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::Google.Cloud.Metastore.V1.MetadataImport.Descriptor.NestedTypes[0]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        pbr::MessageDescriptor pb::IMessage.Descriptor {
          get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public DatabaseDump() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public DatabaseDump(DatabaseDump other) : this() {
          databaseType_ = other.databaseType_;
          gcsUri_ = other.gcsUri_;
          type_ = other.type_;
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public DatabaseDump Clone() {
          return new DatabaseDump(this);
        }

        /// Field number for the "database_type" field.
        public const int DatabaseTypeFieldNumber = 1;
        private global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump.Types.DatabaseType databaseType_ = global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump.Types.DatabaseType.Unspecified;
        ///
        /// The type of the database.
        ///
        [global::System.ObsoleteAttribute]
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump.Types.DatabaseType DatabaseType {
          get { return databaseType_; }
          set {
            databaseType_ = value;
          }
        }

        /// Field number for the "gcs_uri" field.
        public const int GcsUriFieldNumber = 2;
        private string gcsUri_ = "";
        ///
        /// A Cloud Storage object or folder URI that specifies the source from which
        /// to import metadata. It must begin with `gs://`.
        ///
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public string GcsUri {
          get { return gcsUri_; }
          set {
            gcsUri_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
          }
        }

        /// Field number for the "type" field.
        public const int TypeFieldNumber = 4;
        private global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type type_ = global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified;
        ///
        /// Optional. The type of the database dump. If unspecified, defaults to `MYSQL`.
        ///
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type Type {
          get { return type_; }
          set {
            type_ = value;
          }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override bool Equals(object other) {
          return Equals(other as DatabaseDump);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(DatabaseDump other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (DatabaseType != other.DatabaseType) return false;
          if (GcsUri != other.GcsUri) return false;
          if (Type != other.Type) return false;
          return Equals(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override int GetHashCode() {
          int hash = 1;
          if (DatabaseType != global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump.Types.DatabaseType.Unspecified) hash ^= DatabaseType.GetHashCode();
          if (GcsUri.Length != 0) hash ^= GcsUri.GetHashCode();
          if (Type != global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified) hash ^= Type.GetHashCode();
          if (_unknownFields != null) {
            hash ^= _unknownFields.GetHashCode();
          }
          return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override string ToString() {
          return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void WriteTo(pb::CodedOutputStream output) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          output.WriteRawMessage(this);
        #else
          if (DatabaseType != global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump.Types.DatabaseType.Unspecified) {
            output.WriteRawTag(8);
            output.WriteEnum((int) DatabaseType);
          }
          if (GcsUri.Length != 0) {
            output.WriteRawTag(18);
            output.WriteString(GcsUri);
          }
          if (Type != global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified) {
            output.WriteRawTag(32);
            output.WriteEnum((int) Type);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(output);
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
          if (DatabaseType != global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump.Types.DatabaseType.Unspecified) {
            output.WriteRawTag(8);
            output.WriteEnum((int) DatabaseType);
          }
          if (GcsUri.Length != 0) {
            output.WriteRawTag(18);
            output.WriteString(GcsUri);
          }
          if (Type != global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified) {
            output.WriteRawTag(32);
            output.WriteEnum((int) Type);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(ref output);
          }
        }
        #endif

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int CalculateSize() {
          int size = 0;
          if (DatabaseType != global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump.Types.DatabaseType.Unspecified) {
            size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DatabaseType);
          }
          if (GcsUri.Length != 0) {
            size += 1 + pb::CodedOutputStream.ComputeStringSize(GcsUri);
          }
          if (Type != global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified) {
            size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Type);
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(DatabaseDump other) {
          if (other == null) {
            return;
          }
          if (other.DatabaseType != global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump.Types.DatabaseType.Unspecified) {
            DatabaseType = other.DatabaseType;
          }
          if (other.GcsUri.Length != 0) {
            GcsUri = other.GcsUri;
          }
          if (other.Type != global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified) {
            Type = other.Type;
          }
          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(pb::CodedInputStream input) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          input.ReadRawMessage(this);
        #else
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
            switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 8: {
                DatabaseType = (global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump.Types.DatabaseType) input.ReadEnum();
                break;
              }
              case 18: {
                GcsUri = input.ReadString();
                break;
              }
              case 32: {
                Type = (global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type) input.ReadEnum();
                break;
              }
            }
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
            switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 8: {
                DatabaseType = (global::Google.Cloud.Metastore.V1.MetadataImport.Types.DatabaseDump.Types.DatabaseType) input.ReadEnum();
                break;
              }
              case 18: {
                GcsUri = input.ReadString();
                break;
              }
              case 32: {
                Type = (global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type) input.ReadEnum();
                break;
              }
            }
          }
        }
        #endif

        #region Nested types
        /// Container for nested types declared in the DatabaseDump message type.
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static partial class Types {
          ///
          /// The type of the database.
          ///
          public enum DatabaseType {
            ///
            /// The type of the source database is unknown.
            ///
            [pbr::OriginalName("DATABASE_TYPE_UNSPECIFIED")] Unspecified = 0,
            ///
            /// The type of the source database is MySQL.
            ///
            [pbr::OriginalName("MYSQL")] Mysql = 1,
          }

        }
        #endregion

      }

    }
    #endregion

  }

  ///
  /// The details of a metadata export operation.
  ///
  public sealed partial class MetadataExport : pb::IMessage<MetadataExport>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<MetadataExport> _parser = new pb::MessageParser<MetadataExport>(() => new MetadataExport());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<MetadataExport> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[7]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public MetadataExport() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public MetadataExport(MetadataExport other) : this() {
      startTime_ = other.startTime_ != null ? other.startTime_.Clone() : null;
      endTime_ = other.endTime_ != null ? other.endTime_.Clone() : null;
      state_ = other.state_;
      databaseDumpType_ = other.databaseDumpType_;
      switch (other.DestinationCase) {
        case DestinationOneofCase.DestinationGcsUri:
          DestinationGcsUri = other.DestinationGcsUri;
          break;
      }

      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public MetadataExport Clone() {
      return new MetadataExport(this);
    }

    /// Field number for the "destination_gcs_uri" field.
    public const int DestinationGcsUriFieldNumber = 4;
    ///
    /// Output only. A Cloud Storage URI of a folder that metadata are exported to, in the
    /// form of `gs://<bucket_name>/<path_inside_bucket>/<export_folder>`, where
    /// `<export_folder>` is automatically generated.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string DestinationGcsUri {
      get { return destinationCase_ == DestinationOneofCase.DestinationGcsUri ? (string) destination_ : ""; }
      set {
        destination_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
        destinationCase_ = DestinationOneofCase.DestinationGcsUri;
      }
    }

    /// Field number for the "start_time" field.
    public const int StartTimeFieldNumber = 1;
    private global::Google.Protobuf.WellKnownTypes.Timestamp startTime_;
    ///
    /// Output only. The time when the export started.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp StartTime {
      get { return startTime_; }
      set {
        startTime_ = value;
      }
    }

    /// Field number for the "end_time" field.
    public const int EndTimeFieldNumber = 2;
    private global::Google.Protobuf.WellKnownTypes.Timestamp endTime_;
    ///
    /// Output only. The time when the export ended.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp EndTime {
      get { return endTime_; }
      set {
        endTime_ = value;
      }
    }

    /// Field number for the "state" field.
    public const int StateFieldNumber = 3;
    private global::Google.Cloud.Metastore.V1.MetadataExport.Types.State state_ = global::Google.Cloud.Metastore.V1.MetadataExport.Types.State.Unspecified;
    ///
    /// Output only. The current state of the export.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.MetadataExport.Types.State State {
      get { return state_; }
      set {
        state_ = value;
      }
    }

    /// Field number for the "database_dump_type" field.
    public const int DatabaseDumpTypeFieldNumber = 5;
    private global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type databaseDumpType_ = global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified;
    ///
    /// Output only. The type of the database dump.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type DatabaseDumpType {
      get { return databaseDumpType_; }
      set {
        databaseDumpType_ = value;
      }
    }

    private object destination_;
    /// Enum of possible cases for the "destination" oneof.
    public enum DestinationOneofCase {
      None = 0,
      DestinationGcsUri = 4,
    }
    private DestinationOneofCase destinationCase_ = DestinationOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DestinationOneofCase DestinationCase {
      get { return destinationCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDestination() {
      destinationCase_ = DestinationOneofCase.None;
      destination_ = null;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as MetadataExport);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(MetadataExport other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (DestinationGcsUri != other.DestinationGcsUri) return false;
      if (!object.Equals(StartTime, other.StartTime)) return false;
      if (!object.Equals(EndTime, other.EndTime)) return false;
      if (State != other.State) return false;
      if (DatabaseDumpType != other.DatabaseDumpType) return false;
      if (DestinationCase != other.DestinationCase) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (destinationCase_ == DestinationOneofCase.DestinationGcsUri) hash ^= DestinationGcsUri.GetHashCode();
      if (startTime_ != null) hash ^= StartTime.GetHashCode();
      if (endTime_ != null) hash ^= EndTime.GetHashCode();
      if (State != global::Google.Cloud.Metastore.V1.MetadataExport.Types.State.Unspecified) hash ^= State.GetHashCode();
      if (DatabaseDumpType != global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified) hash ^= DatabaseDumpType.GetHashCode();
      hash ^= (int) destinationCase_;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (startTime_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(StartTime);
      }
      if (endTime_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(EndTime);
      }
      if (State != global::Google.Cloud.Metastore.V1.MetadataExport.Types.State.Unspecified) {
        output.WriteRawTag(24);
        output.WriteEnum((int) State);
      }
      if (destinationCase_ == DestinationOneofCase.DestinationGcsUri) {
        output.WriteRawTag(34);
        output.WriteString(DestinationGcsUri);
      }
      if (DatabaseDumpType != global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified) {
        output.WriteRawTag(40);
        output.WriteEnum((int) DatabaseDumpType);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (startTime_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(StartTime);
      }
      if (endTime_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(EndTime);
      }
      if (State != global::Google.Cloud.Metastore.V1.MetadataExport.Types.State.Unspecified) {
        output.WriteRawTag(24);
        output.WriteEnum((int) State);
      }
      if (destinationCase_ == DestinationOneofCase.DestinationGcsUri) {
        output.WriteRawTag(34);
        output.WriteString(DestinationGcsUri);
      }
      if (DatabaseDumpType != global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified) {
        output.WriteRawTag(40);
        output.WriteEnum((int) DatabaseDumpType);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (destinationCase_ == DestinationOneofCase.DestinationGcsUri) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DestinationGcsUri);
      }
      if (startTime_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(StartTime);
      }
      if (endTime_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(EndTime);
      }
      if (State != global::Google.Cloud.Metastore.V1.MetadataExport.Types.State.Unspecified) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) State);
      }
      if (DatabaseDumpType != global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DatabaseDumpType);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(MetadataExport other) {
      if (other == null) {
        return;
      }
      if (other.startTime_ != null) {
        if (startTime_ == null) {
          StartTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        StartTime.MergeFrom(other.StartTime);
      }
      if (other.endTime_ != null) {
        if (endTime_ == null) {
          EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        EndTime.MergeFrom(other.EndTime);
      }
      if (other.State != global::Google.Cloud.Metastore.V1.MetadataExport.Types.State.Unspecified) {
        State = other.State;
      }
      if (other.DatabaseDumpType != global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified) {
        DatabaseDumpType = other.DatabaseDumpType;
      }
      switch (other.DestinationCase) {
        case DestinationOneofCase.DestinationGcsUri:
          DestinationGcsUri = other.DestinationGcsUri;
          break;
      }

      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (startTime_ == null) {
              StartTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(StartTime);
            break;
          }
          case 18: {
            if (endTime_ == null) {
              EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(EndTime);
            break;
          }
          case 24: {
            State = (global::Google.Cloud.Metastore.V1.MetadataExport.Types.State) input.ReadEnum();
            break;
          }
          case 34: {
            DestinationGcsUri = input.ReadString();
            break;
          }
          case 40: {
            DatabaseDumpType = (global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type) input.ReadEnum();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (startTime_ == null) {
              StartTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(StartTime);
            break;
          }
          case 18: {
            if (endTime_ == null) {
              EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(EndTime);
            break;
          }
          case 24: {
            State = (global::Google.Cloud.Metastore.V1.MetadataExport.Types.State) input.ReadEnum();
            break;
          }
          case 34: {
            DestinationGcsUri = input.ReadString();
            break;
          }
          case 40: {
            DatabaseDumpType = (global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type) input.ReadEnum();
            break;
          }
        }
      }
    }
    #endif

    #region Nested types
    /// Container for nested types declared in the MetadataExport message type.
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static partial class Types {
      ///
      /// The current state of the metadata export.
      ///
      public enum State {
        ///
        /// The state of the metadata export is unknown.
        ///
        [pbr::OriginalName("STATE_UNSPECIFIED")] Unspecified = 0,
        ///
        /// The metadata export is running.
        ///
        [pbr::OriginalName("RUNNING")] Running = 1,
        ///
        /// The metadata export completed successfully.
        ///
        [pbr::OriginalName("SUCCEEDED")] Succeeded = 2,
        ///
        /// The metadata export failed.
        ///
        [pbr::OriginalName("FAILED")] Failed = 3,
        ///
        /// The metadata export is cancelled.
        ///
        [pbr::OriginalName("CANCELLED")] Cancelled = 4,
      }

    }
    #endregion

  }

  ///
  /// The details of a backup resource.
  ///
  public sealed partial class Backup : pb::IMessage<Backup>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Backup> _parser = new pb::MessageParser<Backup>(() => new Backup());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Backup> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[8]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Backup() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Backup(Backup other) : this() {
      name_ = other.name_;
      createTime_ = other.createTime_ != null ? other.createTime_.Clone() : null;
      endTime_ = other.endTime_ != null ? other.endTime_.Clone() : null;
      state_ = other.state_;
      serviceRevision_ = other.serviceRevision_ != null ? other.serviceRevision_.Clone() : null;
      description_ = other.description_;
      restoringServices_ = other.restoringServices_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Backup Clone() {
      return new Backup(this);
    }

    /// Field number for the "name" field.
    public const int NameFieldNumber = 1;
    private string name_ = "";
    ///
    /// Immutable. The relative resource name of the backup, in the following form:
    ///
    /// `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "create_time" field.
    public const int CreateTimeFieldNumber = 2;
    private global::Google.Protobuf.WellKnownTypes.Timestamp createTime_;
    ///
    /// Output only. The time when the backup was started.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp CreateTime {
      get { return createTime_; }
      set {
        createTime_ = value;
      }
    }

    /// Field number for the "end_time" field.
    public const int EndTimeFieldNumber = 3;
    private global::Google.Protobuf.WellKnownTypes.Timestamp endTime_;
    ///
    /// Output only. The time when the backup finished creating.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp EndTime {
      get { return endTime_; }
      set {
        endTime_ = value;
      }
    }

    /// Field number for the "state" field.
    public const int StateFieldNumber = 4;
    private global::Google.Cloud.Metastore.V1.Backup.Types.State state_ = global::Google.Cloud.Metastore.V1.Backup.Types.State.Unspecified;
    ///
    /// Output only. The current state of the backup.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.Backup.Types.State State {
      get { return state_; }
      set {
        state_ = value;
      }
    }

    /// Field number for the "service_revision" field.
    public const int ServiceRevisionFieldNumber = 5;
    private global::Google.Cloud.Metastore.V1.Service serviceRevision_;
    ///
    /// Output only. The revision of the service at the time of backup.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.Service ServiceRevision {
      get { return serviceRevision_; }
      set {
        serviceRevision_ = value;
      }
    }

    /// Field number for the "description" field.
    public const int DescriptionFieldNumber = 6;
    private string description_ = "";
    ///
    /// The description of the backup.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Description {
      get { return description_; }
      set {
        description_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "restoring_services" field.
    public const int RestoringServicesFieldNumber = 7;
    private static readonly pb::FieldCodec<string> _repeated_restoringServices_codec
        = pb::FieldCodec.ForString(58);
    private readonly pbc::RepeatedField<string> restoringServices_ = new pbc::RepeatedField<string>();
    ///
    /// Output only. Services that are restoring from the backup.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<string> RestoringServices {
      get { return restoringServices_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Backup);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Backup other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (!object.Equals(CreateTime, other.CreateTime)) return false;
      if (!object.Equals(EndTime, other.EndTime)) return false;
      if (State != other.State) return false;
      if (!object.Equals(ServiceRevision, other.ServiceRevision)) return false;
      if (Description != other.Description) return false;
      if(!restoringServices_.Equals(other.restoringServices_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (createTime_ != null) hash ^= CreateTime.GetHashCode();
      if (endTime_ != null) hash ^= EndTime.GetHashCode();
      if (State != global::Google.Cloud.Metastore.V1.Backup.Types.State.Unspecified) hash ^= State.GetHashCode();
      if (serviceRevision_ != null) hash ^= ServiceRevision.GetHashCode();
      if (Description.Length != 0) hash ^= Description.GetHashCode();
      hash ^= restoringServices_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (createTime_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(CreateTime);
      }
      if (endTime_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(EndTime);
      }
      if (State != global::Google.Cloud.Metastore.V1.Backup.Types.State.Unspecified) {
        output.WriteRawTag(32);
        output.WriteEnum((int) State);
      }
      if (serviceRevision_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(ServiceRevision);
      }
      if (Description.Length != 0) {
        output.WriteRawTag(50);
        output.WriteString(Description);
      }
      restoringServices_.WriteTo(output, _repeated_restoringServices_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (createTime_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(CreateTime);
      }
      if (endTime_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(EndTime);
      }
      if (State != global::Google.Cloud.Metastore.V1.Backup.Types.State.Unspecified) {
        output.WriteRawTag(32);
        output.WriteEnum((int) State);
      }
      if (serviceRevision_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(ServiceRevision);
      }
      if (Description.Length != 0) {
        output.WriteRawTag(50);
        output.WriteString(Description);
      }
      restoringServices_.WriteTo(ref output, _repeated_restoringServices_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (createTime_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(CreateTime);
      }
      if (endTime_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(EndTime);
      }
      if (State != global::Google.Cloud.Metastore.V1.Backup.Types.State.Unspecified) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) State);
      }
      if (serviceRevision_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ServiceRevision);
      }
      if (Description.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Description);
      }
      size += restoringServices_.CalculateSize(_repeated_restoringServices_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Backup other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.createTime_ != null) {
        if (createTime_ == null) {
          CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        CreateTime.MergeFrom(other.CreateTime);
      }
      if (other.endTime_ != null) {
        if (endTime_ == null) {
          EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        EndTime.MergeFrom(other.EndTime);
      }
      if (other.State != global::Google.Cloud.Metastore.V1.Backup.Types.State.Unspecified) {
        State = other.State;
      }
      if (other.serviceRevision_ != null) {
        if (serviceRevision_ == null) {
          ServiceRevision = new global::Google.Cloud.Metastore.V1.Service();
        }
        ServiceRevision.MergeFrom(other.ServiceRevision);
      }
      if (other.Description.Length != 0) {
        Description = other.Description;
      }
      restoringServices_.Add(other.restoringServices_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            if (createTime_ == null) {
              CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(CreateTime);
            break;
          }
          case 26: {
            if (endTime_ == null) {
              EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(EndTime);
            break;
          }
          case 32: {
            State = (global::Google.Cloud.Metastore.V1.Backup.Types.State) input.ReadEnum();
            break;
          }
          case 42: {
            if (serviceRevision_ == null) {
              ServiceRevision = new global::Google.Cloud.Metastore.V1.Service();
            }
            input.ReadMessage(ServiceRevision);
            break;
          }
          case 50: {
            Description = input.ReadString();
            break;
          }
          case 58: {
            restoringServices_.AddEntriesFrom(input, _repeated_restoringServices_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            if (createTime_ == null) {
              CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(CreateTime);
            break;
          }
          case 26: {
            if (endTime_ == null) {
              EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(EndTime);
            break;
          }
          case 32: {
            State = (global::Google.Cloud.Metastore.V1.Backup.Types.State) input.ReadEnum();
            break;
          }
          case 42: {
            if (serviceRevision_ == null) {
              ServiceRevision = new global::Google.Cloud.Metastore.V1.Service();
            }
            input.ReadMessage(ServiceRevision);
            break;
          }
          case 50: {
            Description = input.ReadString();
            break;
          }
          case 58: {
            restoringServices_.AddEntriesFrom(ref input, _repeated_restoringServices_codec);
            break;
          }
        }
      }
    }
    #endif

    #region Nested types
    /// Container for nested types declared in the Backup message type.
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static partial class Types {
      ///
      /// The current state of the backup.
      ///
      public enum State {
        ///
        /// The state of the backup is unknown.
        ///
        [pbr::OriginalName("STATE_UNSPECIFIED")] Unspecified = 0,
        ///
        /// The backup is being created.
        ///
        [pbr::OriginalName("CREATING")] Creating = 1,
        ///
        /// The backup is being deleted.
        ///
        [pbr::OriginalName("DELETING")] Deleting = 2,
        ///
        /// The backup is active and ready to use.
        ///
        [pbr::OriginalName("ACTIVE")] Active = 3,
        ///
        /// The backup failed.
        ///
        [pbr::OriginalName("FAILED")] Failed = 4,
        ///
        /// The backup is being restored.
        ///
        [pbr::OriginalName("RESTORING")] Restoring = 5,
      }

    }
    #endregion

  }

  ///
  /// The details of a metadata restore operation.
  ///
  public sealed partial class Restore : pb::IMessage<Restore>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Restore> _parser = new pb::MessageParser<Restore>(() => new Restore());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Restore> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[9]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Restore() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Restore(Restore other) : this() {
      startTime_ = other.startTime_ != null ? other.startTime_.Clone() : null;
      endTime_ = other.endTime_ != null ? other.endTime_.Clone() : null;
      state_ = other.state_;
      backup_ = other.backup_;
      type_ = other.type_;
      details_ = other.details_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Restore Clone() {
      return new Restore(this);
    }

    /// Field number for the "start_time" field.
    public const int StartTimeFieldNumber = 1;
    private global::Google.Protobuf.WellKnownTypes.Timestamp startTime_;
    ///
    /// Output only. The time when the restore started.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp StartTime {
      get { return startTime_; }
      set {
        startTime_ = value;
      }
    }

    /// Field number for the "end_time" field.
    public const int EndTimeFieldNumber = 2;
    private global::Google.Protobuf.WellKnownTypes.Timestamp endTime_;
    ///
    /// Output only. The time when the restore ended.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp EndTime {
      get { return endTime_; }
      set {
        endTime_ = value;
      }
    }

    /// Field number for the "state" field.
    public const int StateFieldNumber = 3;
    private global::Google.Cloud.Metastore.V1.Restore.Types.State state_ = global::Google.Cloud.Metastore.V1.Restore.Types.State.Unspecified;
    ///
    /// Output only. The current state of the restore.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.Restore.Types.State State {
      get { return state_; }
      set {
        state_ = value;
      }
    }

    /// Field number for the "backup" field.
    public const int BackupFieldNumber = 4;
    private string backup_ = "";
    ///
    /// Output only. The relative resource name of the metastore service backup to restore
    /// from, in the following form:
    ///
    /// `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Backup {
      get { return backup_; }
      set {
        backup_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "type" field.
    public const int TypeFieldNumber = 5;
    private global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType type_ = global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType.Unspecified;
    ///
    /// Output only. The type of restore.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType Type {
      get { return type_; }
      set {
        type_ = value;
      }
    }

    /// Field number for the "details" field.
    public const int DetailsFieldNumber = 6;
    private string details_ = "";
    ///
    /// Output only. The restore details containing the revision of the service to be restored
    /// to, in format of JSON.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Details {
      get { return details_; }
      set {
        details_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Restore);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Restore other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(StartTime, other.StartTime)) return false;
      if (!object.Equals(EndTime, other.EndTime)) return false;
      if (State != other.State) return false;
      if (Backup != other.Backup) return false;
      if (Type != other.Type) return false;
      if (Details != other.Details) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (startTime_ != null) hash ^= StartTime.GetHashCode();
      if (endTime_ != null) hash ^= EndTime.GetHashCode();
      if (State != global::Google.Cloud.Metastore.V1.Restore.Types.State.Unspecified) hash ^= State.GetHashCode();
      if (Backup.Length != 0) hash ^= Backup.GetHashCode();
      if (Type != global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType.Unspecified) hash ^= Type.GetHashCode();
      if (Details.Length != 0) hash ^= Details.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (startTime_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(StartTime);
      }
      if (endTime_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(EndTime);
      }
      if (State != global::Google.Cloud.Metastore.V1.Restore.Types.State.Unspecified) {
        output.WriteRawTag(24);
        output.WriteEnum((int) State);
      }
      if (Backup.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Backup);
      }
      if (Type != global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType.Unspecified) {
        output.WriteRawTag(40);
        output.WriteEnum((int) Type);
      }
      if (Details.Length != 0) {
        output.WriteRawTag(50);
        output.WriteString(Details);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (startTime_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(StartTime);
      }
      if (endTime_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(EndTime);
      }
      if (State != global::Google.Cloud.Metastore.V1.Restore.Types.State.Unspecified) {
        output.WriteRawTag(24);
        output.WriteEnum((int) State);
      }
      if (Backup.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Backup);
      }
      if (Type != global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType.Unspecified) {
        output.WriteRawTag(40);
        output.WriteEnum((int) Type);
      }
      if (Details.Length != 0) {
        output.WriteRawTag(50);
        output.WriteString(Details);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (startTime_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(StartTime);
      }
      if (endTime_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(EndTime);
      }
      if (State != global::Google.Cloud.Metastore.V1.Restore.Types.State.Unspecified) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) State);
      }
      if (Backup.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Backup);
      }
      if (Type != global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType.Unspecified) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Type);
      }
      if (Details.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Details);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Restore other) {
      if (other == null) {
        return;
      }
      if (other.startTime_ != null) {
        if (startTime_ == null) {
          StartTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        StartTime.MergeFrom(other.StartTime);
      }
      if (other.endTime_ != null) {
        if (endTime_ == null) {
          EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        EndTime.MergeFrom(other.EndTime);
      }
      if (other.State != global::Google.Cloud.Metastore.V1.Restore.Types.State.Unspecified) {
        State = other.State;
      }
      if (other.Backup.Length != 0) {
        Backup = other.Backup;
      }
      if (other.Type != global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType.Unspecified) {
        Type = other.Type;
      }
      if (other.Details.Length != 0) {
        Details = other.Details;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (startTime_ == null) {
              StartTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(StartTime);
            break;
          }
          case 18: {
            if (endTime_ == null) {
              EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(EndTime);
            break;
          }
          case 24: {
            State = (global::Google.Cloud.Metastore.V1.Restore.Types.State) input.ReadEnum();
            break;
          }
          case 34: {
            Backup = input.ReadString();
            break;
          }
          case 40: {
            Type = (global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType) input.ReadEnum();
            break;
          }
          case 50: {
            Details = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (startTime_ == null) {
              StartTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(StartTime);
            break;
          }
          case 18: {
            if (endTime_ == null) {
              EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(EndTime);
            break;
          }
          case 24: {
            State = (global::Google.Cloud.Metastore.V1.Restore.Types.State) input.ReadEnum();
            break;
          }
          case 34: {
            Backup = input.ReadString();
            break;
          }
          case 40: {
            Type = (global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType) input.ReadEnum();
            break;
          }
          case 50: {
            Details = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

    #region Nested types
    /// Container for nested types declared in the Restore message type.
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static partial class Types {
      ///
      /// The current state of the restore.
      ///
      public enum State {
        ///
        /// The state of the metadata restore is unknown.
        ///
        [pbr::OriginalName("STATE_UNSPECIFIED")] Unspecified = 0,
        ///
        /// The metadata restore is running.
        ///
        [pbr::OriginalName("RUNNING")] Running = 1,
        ///
        /// The metadata restore completed successfully.
        ///
        [pbr::OriginalName("SUCCEEDED")] Succeeded = 2,
        ///
        /// The metadata restore failed.
        ///
        [pbr::OriginalName("FAILED")] Failed = 3,
        ///
        /// The metadata restore is cancelled.
        ///
        [pbr::OriginalName("CANCELLED")] Cancelled = 4,
      }

      ///
      /// The type of restore. If unspecified, defaults to `METADATA_ONLY`.
      ///
      public enum RestoreType {
        ///
        /// The restore type is unknown.
        ///
        [pbr::OriginalName("RESTORE_TYPE_UNSPECIFIED")] Unspecified = 0,
        ///
        /// The service's metadata and configuration are restored.
        ///
        [pbr::OriginalName("FULL")] Full = 1,
        ///
        /// Only the service's metadata is restored.
        ///
        [pbr::OriginalName("METADATA_ONLY")] MetadataOnly = 2,
      }

    }
    #endregion

  }

  ///
  /// Request message for [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices].
  ///
  public sealed partial class ListServicesRequest : pb::IMessage<ListServicesRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ListServicesRequest> _parser = new pb::MessageParser<ListServicesRequest>(() => new ListServicesRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ListServicesRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[10]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListServicesRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListServicesRequest(ListServicesRequest other) : this() {
      parent_ = other.parent_;
      pageSize_ = other.pageSize_;
      pageToken_ = other.pageToken_;
      filter_ = other.filter_;
      orderBy_ = other.orderBy_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListServicesRequest Clone() {
      return new ListServicesRequest(this);
    }

    /// Field number for the "parent" field.
    public const int ParentFieldNumber = 1;
    private string parent_ = "";
    ///
    /// Required. The relative resource name of the location of metastore services to
    /// list, in the following form:
    ///
    /// `projects/{project_number}/locations/{location_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Parent {
      get { return parent_; }
      set {
        parent_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "page_size" field.
    public const int PageSizeFieldNumber = 2;
    private int pageSize_;
    ///
    /// Optional. The maximum number of services to return. The response may contain less
    /// than the maximum number. If unspecified, no more than 500 services are
    /// returned. The maximum value is 1000; values above 1000 are changed to 1000.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int PageSize {
      get { return pageSize_; }
      set {
        pageSize_ = value;
      }
    }

    /// Field number for the "page_token" field.
    public const int PageTokenFieldNumber = 3;
    private string pageToken_ = "";
    ///
    /// Optional. A page token, received from a previous [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
    /// call. Provide this token to retrieve the subsequent page.
    ///
    /// To retrieve the first page, supply an empty page token.
    ///
    /// When paginating, other parameters provided to
    /// [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices] must match the call that provided the
    /// page token.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string PageToken {
      get { return pageToken_; }
      set {
        pageToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "filter" field.
    public const int FilterFieldNumber = 4;
    private string filter_ = "";
    ///
    /// Optional. The filter to apply to list results.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Filter {
      get { return filter_; }
      set {
        filter_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "order_by" field.
    public const int OrderByFieldNumber = 5;
    private string orderBy_ = "";
    ///
    /// Optional. Specify the ordering of results as described in [Sorting
    /// Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
    /// If not specified, the results will be sorted in the default order.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string OrderBy {
      get { return orderBy_; }
      set {
        orderBy_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ListServicesRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ListServicesRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Parent != other.Parent) return false;
      if (PageSize != other.PageSize) return false;
      if (PageToken != other.PageToken) return false;
      if (Filter != other.Filter) return false;
      if (OrderBy != other.OrderBy) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Parent.Length != 0) hash ^= Parent.GetHashCode();
      if (PageSize != 0) hash ^= PageSize.GetHashCode();
      if (PageToken.Length != 0) hash ^= PageToken.GetHashCode();
      if (Filter.Length != 0) hash ^= Filter.GetHashCode();
      if (OrderBy.Length != 0) hash ^= OrderBy.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Parent.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Parent);
      }
      if (PageSize != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(PageSize);
      }
      if (PageToken.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(PageToken);
      }
      if (Filter.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Filter);
      }
      if (OrderBy.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(OrderBy);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Parent.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Parent);
      }
      if (PageSize != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(PageSize);
      }
      if (PageToken.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(PageToken);
      }
      if (Filter.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Filter);
      }
      if (OrderBy.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(OrderBy);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Parent.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Parent);
      }
      if (PageSize != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(PageSize);
      }
      if (PageToken.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PageToken);
      }
      if (Filter.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Filter);
      }
      if (OrderBy.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(OrderBy);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ListServicesRequest other) {
      if (other == null) {
        return;
      }
      if (other.Parent.Length != 0) {
        Parent = other.Parent;
      }
      if (other.PageSize != 0) {
        PageSize = other.PageSize;
      }
      if (other.PageToken.Length != 0) {
        PageToken = other.PageToken;
      }
      if (other.Filter.Length != 0) {
        Filter = other.Filter;
      }
      if (other.OrderBy.Length != 0) {
        OrderBy = other.OrderBy;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Parent = input.ReadString();
            break;
          }
          case 16: {
            PageSize = input.ReadInt32();
            break;
          }
          case 26: {
            PageToken = input.ReadString();
            break;
          }
          case 34: {
            Filter = input.ReadString();
            break;
          }
          case 42: {
            OrderBy = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Parent = input.ReadString();
            break;
          }
          case 16: {
            PageSize = input.ReadInt32();
            break;
          }
          case 26: {
            PageToken = input.ReadString();
            break;
          }
          case 34: {
            Filter = input.ReadString();
            break;
          }
          case 42: {
            OrderBy = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Response message for [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices].
  ///
  public sealed partial class ListServicesResponse : pb::IMessage<ListServicesResponse>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ListServicesResponse> _parser = new pb::MessageParser<ListServicesResponse>(() => new ListServicesResponse());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ListServicesResponse> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[11]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListServicesResponse() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListServicesResponse(ListServicesResponse other) : this() {
      services_ = other.services_.Clone();
      nextPageToken_ = other.nextPageToken_;
      unreachable_ = other.unreachable_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListServicesResponse Clone() {
      return new ListServicesResponse(this);
    }

    /// Field number for the "services" field.
    public const int ServicesFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Google.Cloud.Metastore.V1.Service> _repeated_services_codec
        = pb::FieldCodec.ForMessage(10, global::Google.Cloud.Metastore.V1.Service.Parser);
    private readonly pbc::RepeatedField<global::Google.Cloud.Metastore.V1.Service> services_ = new pbc::RepeatedField<global::Google.Cloud.Metastore.V1.Service>();
    ///
    /// The services in the specified location.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Google.Cloud.Metastore.V1.Service> Services {
      get { return services_; }
    }

    /// Field number for the "next_page_token" field.
    public const int NextPageTokenFieldNumber = 2;
    private string nextPageToken_ = "";
    ///
    /// A token that can be sent as `page_token` to retrieve the next page. If this
    /// field is omitted, there are no subsequent pages.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string NextPageToken {
      get { return nextPageToken_; }
      set {
        nextPageToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "unreachable" field.
    public const int UnreachableFieldNumber = 3;
    private static readonly pb::FieldCodec<string> _repeated_unreachable_codec
        = pb::FieldCodec.ForString(26);
    private readonly pbc::RepeatedField<string> unreachable_ = new pbc::RepeatedField<string>();
    ///
    /// Locations that could not be reached.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<string> Unreachable {
      get { return unreachable_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ListServicesResponse);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ListServicesResponse other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!services_.Equals(other.services_)) return false;
      if (NextPageToken != other.NextPageToken) return false;
      if(!unreachable_.Equals(other.unreachable_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= services_.GetHashCode();
      if (NextPageToken.Length != 0) hash ^= NextPageToken.GetHashCode();
      hash ^= unreachable_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      services_.WriteTo(output, _repeated_services_codec);
      if (NextPageToken.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(NextPageToken);
      }
      unreachable_.WriteTo(output, _repeated_unreachable_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      services_.WriteTo(ref output, _repeated_services_codec);
      if (NextPageToken.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(NextPageToken);
      }
      unreachable_.WriteTo(ref output, _repeated_unreachable_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      size += services_.CalculateSize(_repeated_services_codec);
      if (NextPageToken.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(NextPageToken);
      }
      size += unreachable_.CalculateSize(_repeated_unreachable_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ListServicesResponse other) {
      if (other == null) {
        return;
      }
      services_.Add(other.services_);
      if (other.NextPageToken.Length != 0) {
        NextPageToken = other.NextPageToken;
      }
      unreachable_.Add(other.unreachable_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            services_.AddEntriesFrom(input, _repeated_services_codec);
            break;
          }
          case 18: {
            NextPageToken = input.ReadString();
            break;
          }
          case 26: {
            unreachable_.AddEntriesFrom(input, _repeated_unreachable_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            services_.AddEntriesFrom(ref input, _repeated_services_codec);
            break;
          }
          case 18: {
            NextPageToken = input.ReadString();
            break;
          }
          case 26: {
            unreachable_.AddEntriesFrom(ref input, _repeated_unreachable_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Request message for [DataprocMetastore.GetService][google.cloud.metastore.v1.DataprocMetastore.GetService].
  ///
  public sealed partial class GetServiceRequest : pb::IMessage<GetServiceRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<GetServiceRequest> _parser = new pb::MessageParser<GetServiceRequest>(() => new GetServiceRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<GetServiceRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[12]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GetServiceRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GetServiceRequest(GetServiceRequest other) : this() {
      name_ = other.name_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GetServiceRequest Clone() {
      return new GetServiceRequest(this);
    }

    /// Field number for the "name" field.
    public const int NameFieldNumber = 1;
    private string name_ = "";
    ///
    /// Required. The relative resource name of the metastore service to retrieve, in the
    /// following form:
    ///
    /// `projects/{project_number}/locations/{location_id}/services/{service_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as GetServiceRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(GetServiceRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(GetServiceRequest other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Request message for [DataprocMetastore.CreateService][google.cloud.metastore.v1.DataprocMetastore.CreateService].
  ///
  public sealed partial class CreateServiceRequest : pb::IMessage<CreateServiceRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<CreateServiceRequest> _parser = new pb::MessageParser<CreateServiceRequest>(() => new CreateServiceRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<CreateServiceRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[13]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public CreateServiceRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public CreateServiceRequest(CreateServiceRequest other) : this() {
      parent_ = other.parent_;
      serviceId_ = other.serviceId_;
      service_ = other.service_ != null ? other.service_.Clone() : null;
      requestId_ = other.requestId_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public CreateServiceRequest Clone() {
      return new CreateServiceRequest(this);
    }

    /// Field number for the "parent" field.
    public const int ParentFieldNumber = 1;
    private string parent_ = "";
    ///
    /// Required. The relative resource name of the location in which to create a metastore
    /// service, in the following form:
    ///
    /// `projects/{project_number}/locations/{location_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Parent {
      get { return parent_; }
      set {
        parent_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "service_id" field.
    public const int ServiceIdFieldNumber = 2;
    private string serviceId_ = "";
    ///
    /// Required. The ID of the metastore service, which is used as the final
    /// component of the metastore service's name.
    ///
    /// This value must be between 2 and 63 characters long inclusive, begin with a
    /// letter, end with a letter or number, and consist of alpha-numeric
    /// ASCII characters or hyphens.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ServiceId {
      get { return serviceId_; }
      set {
        serviceId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "service" field.
    public const int ServiceFieldNumber = 3;
    private global::Google.Cloud.Metastore.V1.Service service_;
    ///
    /// Required. The Metastore service to create. The `name` field is
    /// ignored. The ID of the created metastore service must be provided in
    /// the request's `service_id` field.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.Service Service {
      get { return service_; }
      set {
        service_ = value;
      }
    }

    /// Field number for the "request_id" field.
    public const int RequestIdFieldNumber = 4;
    private string requestId_ = "";
    ///
    /// Optional. A request ID. Specify a unique request ID to allow the server to ignore the
    /// request if it has completed. The server will ignore subsequent requests
    /// that provide a duplicate request ID for at least 60 minutes after the first
    /// request.
    ///
    /// For example, if an initial request times out, followed by another request
    /// with the same request ID, the server ignores the second request to prevent
    /// the creation of duplicate commitments.
    ///
    /// The request ID must be a valid
    /// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
    /// A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string RequestId {
      get { return requestId_; }
      set {
        requestId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as CreateServiceRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(CreateServiceRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Parent != other.Parent) return false;
      if (ServiceId != other.ServiceId) return false;
      if (!object.Equals(Service, other.Service)) return false;
      if (RequestId != other.RequestId) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Parent.Length != 0) hash ^= Parent.GetHashCode();
      if (ServiceId.Length != 0) hash ^= ServiceId.GetHashCode();
      if (service_ != null) hash ^= Service.GetHashCode();
      if (RequestId.Length != 0) hash ^= RequestId.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Parent.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Parent);
      }
      if (ServiceId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(ServiceId);
      }
      if (service_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(Service);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Parent.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Parent);
      }
      if (ServiceId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(ServiceId);
      }
      if (service_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(Service);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Parent.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Parent);
      }
      if (ServiceId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ServiceId);
      }
      if (service_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Service);
      }
      if (RequestId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(RequestId);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(CreateServiceRequest other) {
      if (other == null) {
        return;
      }
      if (other.Parent.Length != 0) {
        Parent = other.Parent;
      }
      if (other.ServiceId.Length != 0) {
        ServiceId = other.ServiceId;
      }
      if (other.service_ != null) {
        if (service_ == null) {
          Service = new global::Google.Cloud.Metastore.V1.Service();
        }
        Service.MergeFrom(other.Service);
      }
      if (other.RequestId.Length != 0) {
        RequestId = other.RequestId;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Parent = input.ReadString();
            break;
          }
          case 18: {
            ServiceId = input.ReadString();
            break;
          }
          case 26: {
            if (service_ == null) {
              Service = new global::Google.Cloud.Metastore.V1.Service();
            }
            input.ReadMessage(Service);
            break;
          }
          case 34: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Parent = input.ReadString();
            break;
          }
          case 18: {
            ServiceId = input.ReadString();
            break;
          }
          case 26: {
            if (service_ == null) {
              Service = new global::Google.Cloud.Metastore.V1.Service();
            }
            input.ReadMessage(Service);
            break;
          }
          case 34: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Request message for [DataprocMetastore.UpdateService][google.cloud.metastore.v1.DataprocMetastore.UpdateService].
  ///
  public sealed partial class UpdateServiceRequest : pb::IMessage<UpdateServiceRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<UpdateServiceRequest> _parser = new pb::MessageParser<UpdateServiceRequest>(() => new UpdateServiceRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<UpdateServiceRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[14]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public UpdateServiceRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public UpdateServiceRequest(UpdateServiceRequest other) : this() {
      updateMask_ = other.updateMask_ != null ? other.updateMask_.Clone() : null;
      service_ = other.service_ != null ? other.service_.Clone() : null;
      requestId_ = other.requestId_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public UpdateServiceRequest Clone() {
      return new UpdateServiceRequest(this);
    }

    /// Field number for the "update_mask" field.
    public const int UpdateMaskFieldNumber = 1;
    private global::Google.Protobuf.WellKnownTypes.FieldMask updateMask_;
    ///
    /// Required. A field mask used to specify the fields to be overwritten in the
    /// metastore service resource by the update.
    /// Fields specified in the `update_mask` are relative to the resource (not
    /// to the full request). A field is overwritten if it is in the mask.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.FieldMask UpdateMask {
      get { return updateMask_; }
      set {
        updateMask_ = value;
      }
    }

    /// Field number for the "service" field.
    public const int ServiceFieldNumber = 2;
    private global::Google.Cloud.Metastore.V1.Service service_;
    ///
    /// Required. The metastore service to update. The server only merges fields
    /// in the service if they are specified in `update_mask`.
    ///
    /// The metastore service's `name` field is used to identify the metastore
    /// service to be updated.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.Service Service {
      get { return service_; }
      set {
        service_ = value;
      }
    }

    /// Field number for the "request_id" field.
    public const int RequestIdFieldNumber = 3;
    private string requestId_ = "";
    ///
    /// Optional. A request ID. Specify a unique request ID to allow the server to ignore the
    /// request if it has completed. The server will ignore subsequent requests
    /// that provide a duplicate request ID for at least 60 minutes after the first
    /// request.
    ///
    /// For example, if an initial request times out, followed by another request
    /// with the same request ID, the server ignores the second request to prevent
    /// the creation of duplicate commitments.
    ///
    /// The request ID must be a valid
    /// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
    /// A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string RequestId {
      get { return requestId_; }
      set {
        requestId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as UpdateServiceRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(UpdateServiceRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(UpdateMask, other.UpdateMask)) return false;
      if (!object.Equals(Service, other.Service)) return false;
      if (RequestId != other.RequestId) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (updateMask_ != null) hash ^= UpdateMask.GetHashCode();
      if (service_ != null) hash ^= Service.GetHashCode();
      if (RequestId.Length != 0) hash ^= RequestId.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (updateMask_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(UpdateMask);
      }
      if (service_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Service);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (updateMask_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(UpdateMask);
      }
      if (service_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Service);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (updateMask_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(UpdateMask);
      }
      if (service_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Service);
      }
      if (RequestId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(RequestId);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(UpdateServiceRequest other) {
      if (other == null) {
        return;
      }
      if (other.updateMask_ != null) {
        if (updateMask_ == null) {
          UpdateMask = new global::Google.Protobuf.WellKnownTypes.FieldMask();
        }
        UpdateMask.MergeFrom(other.UpdateMask);
      }
      if (other.service_ != null) {
        if (service_ == null) {
          Service = new global::Google.Cloud.Metastore.V1.Service();
        }
        Service.MergeFrom(other.Service);
      }
      if (other.RequestId.Length != 0) {
        RequestId = other.RequestId;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (updateMask_ == null) {
              UpdateMask = new global::Google.Protobuf.WellKnownTypes.FieldMask();
            }
            input.ReadMessage(UpdateMask);
            break;
          }
          case 18: {
            if (service_ == null) {
              Service = new global::Google.Cloud.Metastore.V1.Service();
            }
            input.ReadMessage(Service);
            break;
          }
          case 26: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (updateMask_ == null) {
              UpdateMask = new global::Google.Protobuf.WellKnownTypes.FieldMask();
            }
            input.ReadMessage(UpdateMask);
            break;
          }
          case 18: {
            if (service_ == null) {
              Service = new global::Google.Cloud.Metastore.V1.Service();
            }
            input.ReadMessage(Service);
            break;
          }
          case 26: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Request message for [DataprocMetastore.DeleteService][google.cloud.metastore.v1.DataprocMetastore.DeleteService].
  ///
  public sealed partial class DeleteServiceRequest : pb::IMessage<DeleteServiceRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<DeleteServiceRequest> _parser = new pb::MessageParser<DeleteServiceRequest>(() => new DeleteServiceRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<DeleteServiceRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[15]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DeleteServiceRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DeleteServiceRequest(DeleteServiceRequest other) : this() {
      name_ = other.name_;
      requestId_ = other.requestId_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DeleteServiceRequest Clone() {
      return new DeleteServiceRequest(this);
    }

    /// Field number for the "name" field.
    public const int NameFieldNumber = 1;
    private string name_ = "";
    ///
    /// Required. The relative resource name of the metastore service to delete, in the
    /// following form:
    ///
    /// `projects/{project_number}/locations/{location_id}/services/{service_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "request_id" field.
    public const int RequestIdFieldNumber = 2;
    private string requestId_ = "";
    ///
    /// Optional. A request ID. Specify a unique request ID to allow the server to ignore the
    /// request if it has completed. The server will ignore subsequent requests
    /// that provide a duplicate request ID for at least 60 minutes after the first
    /// request.
    ///
    /// For example, if an initial request times out, followed by another request
    /// with the same request ID, the server ignores the second request to prevent
    /// the creation of duplicate commitments.
    ///
    /// The request ID must be a valid
    /// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
    /// A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string RequestId {
      get { return requestId_; }
      set {
        requestId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as DeleteServiceRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(DeleteServiceRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (RequestId != other.RequestId) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (RequestId.Length != 0) hash ^= RequestId.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (RequestId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(RequestId);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(DeleteServiceRequest other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.RequestId.Length != 0) {
        RequestId = other.RequestId;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Request message for [DataprocMetastore.ListMetadataImports][google.cloud.metastore.v1.DataprocMetastore.ListMetadataImports].
  ///
  public sealed partial class ListMetadataImportsRequest : pb::IMessage<ListMetadataImportsRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ListMetadataImportsRequest> _parser = new pb::MessageParser<ListMetadataImportsRequest>(() => new ListMetadataImportsRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ListMetadataImportsRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[16]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListMetadataImportsRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListMetadataImportsRequest(ListMetadataImportsRequest other) : this() {
      parent_ = other.parent_;
      pageSize_ = other.pageSize_;
      pageToken_ = other.pageToken_;
      filter_ = other.filter_;
      orderBy_ = other.orderBy_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListMetadataImportsRequest Clone() {
      return new ListMetadataImportsRequest(this);
    }

    /// Field number for the "parent" field.
    public const int ParentFieldNumber = 1;
    private string parent_ = "";
    ///
    /// Required. The relative resource name of the service whose metadata imports to
    /// list, in the following form:
    ///
    /// `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Parent {
      get { return parent_; }
      set {
        parent_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "page_size" field.
    public const int PageSizeFieldNumber = 2;
    private int pageSize_;
    ///
    /// Optional. The maximum number of imports to return. The response may contain less
    /// than the maximum number. If unspecified, no more than 500 imports are
    /// returned. The maximum value is 1000; values above 1000 are changed to 1000.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int PageSize {
      get { return pageSize_; }
      set {
        pageSize_ = value;
      }
    }

    /// Field number for the "page_token" field.
    public const int PageTokenFieldNumber = 3;
    private string pageToken_ = "";
    ///
    /// Optional. A page token, received from a previous [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices]
    /// call. Provide this token to retrieve the subsequent page.
    ///
    /// To retrieve the first page, supply an empty page token.
    ///
    /// When paginating, other parameters provided to
    /// [DataprocMetastore.ListServices][google.cloud.metastore.v1.DataprocMetastore.ListServices] must match the call that provided the
    /// page token.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string PageToken {
      get { return pageToken_; }
      set {
        pageToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "filter" field.
    public const int FilterFieldNumber = 4;
    private string filter_ = "";
    ///
    /// Optional. The filter to apply to list results.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Filter {
      get { return filter_; }
      set {
        filter_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "order_by" field.
    public const int OrderByFieldNumber = 5;
    private string orderBy_ = "";
    ///
    /// Optional. Specify the ordering of results as described in [Sorting
    /// Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
    /// If not specified, the results will be sorted in the default order.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string OrderBy {
      get { return orderBy_; }
      set {
        orderBy_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ListMetadataImportsRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ListMetadataImportsRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Parent != other.Parent) return false;
      if (PageSize != other.PageSize) return false;
      if (PageToken != other.PageToken) return false;
      if (Filter != other.Filter) return false;
      if (OrderBy != other.OrderBy) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Parent.Length != 0) hash ^= Parent.GetHashCode();
      if (PageSize != 0) hash ^= PageSize.GetHashCode();
      if (PageToken.Length != 0) hash ^= PageToken.GetHashCode();
      if (Filter.Length != 0) hash ^= Filter.GetHashCode();
      if (OrderBy.Length != 0) hash ^= OrderBy.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Parent.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Parent);
      }
      if (PageSize != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(PageSize);
      }
      if (PageToken.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(PageToken);
      }
      if (Filter.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Filter);
      }
      if (OrderBy.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(OrderBy);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Parent.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Parent);
      }
      if (PageSize != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(PageSize);
      }
      if (PageToken.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(PageToken);
      }
      if (Filter.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Filter);
      }
      if (OrderBy.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(OrderBy);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Parent.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Parent);
      }
      if (PageSize != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(PageSize);
      }
      if (PageToken.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PageToken);
      }
      if (Filter.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Filter);
      }
      if (OrderBy.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(OrderBy);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ListMetadataImportsRequest other) {
      if (other == null) {
        return;
      }
      if (other.Parent.Length != 0) {
        Parent = other.Parent;
      }
      if (other.PageSize != 0) {
        PageSize = other.PageSize;
      }
      if (other.PageToken.Length != 0) {
        PageToken = other.PageToken;
      }
      if (other.Filter.Length != 0) {
        Filter = other.Filter;
      }
      if (other.OrderBy.Length != 0) {
        OrderBy = other.OrderBy;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Parent = input.ReadString();
            break;
          }
          case 16: {
            PageSize = input.ReadInt32();
            break;
          }
          case 26: {
            PageToken = input.ReadString();
            break;
          }
          case 34: {
            Filter = input.ReadString();
            break;
          }
          case 42: {
            OrderBy = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Parent = input.ReadString();
            break;
          }
          case 16: {
            PageSize = input.ReadInt32();
            break;
          }
          case 26: {
            PageToken = input.ReadString();
            break;
          }
          case 34: {
            Filter = input.ReadString();
            break;
          }
          case 42: {
            OrderBy = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Response message for [DataprocMetastore.ListMetadataImports][google.cloud.metastore.v1.DataprocMetastore.ListMetadataImports].
  ///
  public sealed partial class ListMetadataImportsResponse : pb::IMessage<ListMetadataImportsResponse>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ListMetadataImportsResponse> _parser = new pb::MessageParser<ListMetadataImportsResponse>(() => new ListMetadataImportsResponse());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ListMetadataImportsResponse> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[17]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListMetadataImportsResponse() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListMetadataImportsResponse(ListMetadataImportsResponse other) : this() {
      metadataImports_ = other.metadataImports_.Clone();
      nextPageToken_ = other.nextPageToken_;
      unreachable_ = other.unreachable_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListMetadataImportsResponse Clone() {
      return new ListMetadataImportsResponse(this);
    }

    /// Field number for the "metadata_imports" field.
    public const int MetadataImportsFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Google.Cloud.Metastore.V1.MetadataImport> _repeated_metadataImports_codec
        = pb::FieldCodec.ForMessage(10, global::Google.Cloud.Metastore.V1.MetadataImport.Parser);
    private readonly pbc::RepeatedField<global::Google.Cloud.Metastore.V1.MetadataImport> metadataImports_ = new pbc::RepeatedField<global::Google.Cloud.Metastore.V1.MetadataImport>();
    ///
    /// The imports in the specified service.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Google.Cloud.Metastore.V1.MetadataImport> MetadataImports {
      get { return metadataImports_; }
    }

    /// Field number for the "next_page_token" field.
    public const int NextPageTokenFieldNumber = 2;
    private string nextPageToken_ = "";
    ///
    /// A token that can be sent as `page_token` to retrieve the next page. If this
    /// field is omitted, there are no subsequent pages.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string NextPageToken {
      get { return nextPageToken_; }
      set {
        nextPageToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "unreachable" field.
    public const int UnreachableFieldNumber = 3;
    private static readonly pb::FieldCodec<string> _repeated_unreachable_codec
        = pb::FieldCodec.ForString(26);
    private readonly pbc::RepeatedField<string> unreachable_ = new pbc::RepeatedField<string>();
    ///
    /// Locations that could not be reached.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<string> Unreachable {
      get { return unreachable_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ListMetadataImportsResponse);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ListMetadataImportsResponse other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!metadataImports_.Equals(other.metadataImports_)) return false;
      if (NextPageToken != other.NextPageToken) return false;
      if(!unreachable_.Equals(other.unreachable_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= metadataImports_.GetHashCode();
      if (NextPageToken.Length != 0) hash ^= NextPageToken.GetHashCode();
      hash ^= unreachable_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      metadataImports_.WriteTo(output, _repeated_metadataImports_codec);
      if (NextPageToken.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(NextPageToken);
      }
      unreachable_.WriteTo(output, _repeated_unreachable_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      metadataImports_.WriteTo(ref output, _repeated_metadataImports_codec);
      if (NextPageToken.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(NextPageToken);
      }
      unreachable_.WriteTo(ref output, _repeated_unreachable_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      size += metadataImports_.CalculateSize(_repeated_metadataImports_codec);
      if (NextPageToken.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(NextPageToken);
      }
      size += unreachable_.CalculateSize(_repeated_unreachable_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ListMetadataImportsResponse other) {
      if (other == null) {
        return;
      }
      metadataImports_.Add(other.metadataImports_);
      if (other.NextPageToken.Length != 0) {
        NextPageToken = other.NextPageToken;
      }
      unreachable_.Add(other.unreachable_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            metadataImports_.AddEntriesFrom(input, _repeated_metadataImports_codec);
            break;
          }
          case 18: {
            NextPageToken = input.ReadString();
            break;
          }
          case 26: {
            unreachable_.AddEntriesFrom(input, _repeated_unreachable_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            metadataImports_.AddEntriesFrom(ref input, _repeated_metadataImports_codec);
            break;
          }
          case 18: {
            NextPageToken = input.ReadString();
            break;
          }
          case 26: {
            unreachable_.AddEntriesFrom(ref input, _repeated_unreachable_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Request message for [DataprocMetastore.GetMetadataImport][google.cloud.metastore.v1.DataprocMetastore.GetMetadataImport].
  ///
  public sealed partial class GetMetadataImportRequest : pb::IMessage<GetMetadataImportRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<GetMetadataImportRequest> _parser = new pb::MessageParser<GetMetadataImportRequest>(() => new GetMetadataImportRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<GetMetadataImportRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[18]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GetMetadataImportRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GetMetadataImportRequest(GetMetadataImportRequest other) : this() {
      name_ = other.name_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GetMetadataImportRequest Clone() {
      return new GetMetadataImportRequest(this);
    }

    /// Field number for the "name" field.
    public const int NameFieldNumber = 1;
    private string name_ = "";
    ///
    /// Required. The relative resource name of the metadata import to retrieve, in the
    /// following form:
    ///
    /// `projects/{project_number}/locations/{location_id}/services/{service_id}/metadataImports/{import_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as GetMetadataImportRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(GetMetadataImportRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(GetMetadataImportRequest other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Request message for [DataprocMetastore.CreateMetadataImport][google.cloud.metastore.v1.DataprocMetastore.CreateMetadataImport].
  ///
  public sealed partial class CreateMetadataImportRequest : pb::IMessage<CreateMetadataImportRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<CreateMetadataImportRequest> _parser = new pb::MessageParser<CreateMetadataImportRequest>(() => new CreateMetadataImportRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<CreateMetadataImportRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[19]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public CreateMetadataImportRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public CreateMetadataImportRequest(CreateMetadataImportRequest other) : this() {
      parent_ = other.parent_;
      metadataImportId_ = other.metadataImportId_;
      metadataImport_ = other.metadataImport_ != null ? other.metadataImport_.Clone() : null;
      requestId_ = other.requestId_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public CreateMetadataImportRequest Clone() {
      return new CreateMetadataImportRequest(this);
    }

    /// Field number for the "parent" field.
    public const int ParentFieldNumber = 1;
    private string parent_ = "";
    ///
    /// Required. The relative resource name of the service in which to create a metastore
    /// import, in the following form:
    ///
    /// `projects/{project_number}/locations/{location_id}/services/{service_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Parent {
      get { return parent_; }
      set {
        parent_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "metadata_import_id" field.
    public const int MetadataImportIdFieldNumber = 2;
    private string metadataImportId_ = "";
    ///
    /// Required. The ID of the metadata import, which is used as the final component of the
    /// metadata import's name.
    ///
    /// This value must be between 1 and 64 characters long, begin with a letter,
    /// end with a letter or number, and consist of alpha-numeric ASCII characters
    /// or hyphens.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string MetadataImportId {
      get { return metadataImportId_; }
      set {
        metadataImportId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "metadata_import" field.
    public const int MetadataImportFieldNumber = 3;
    private global::Google.Cloud.Metastore.V1.MetadataImport metadataImport_;
    ///
    /// Required. The metadata import to create. The `name` field is ignored. The ID of the
    /// created metadata import must be provided in the request's
    /// `metadata_import_id` field.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.MetadataImport MetadataImport {
      get { return metadataImport_; }
      set {
        metadataImport_ = value;
      }
    }

    /// Field number for the "request_id" field.
    public const int RequestIdFieldNumber = 4;
    private string requestId_ = "";
    ///
    /// Optional. A request ID. Specify a unique request ID to allow the server to ignore the
    /// request if it has completed. The server will ignore subsequent requests
    /// that provide a duplicate request ID for at least 60 minutes after the first
    /// request.
    ///
    /// For example, if an initial request times out, followed by another request
    /// with the same request ID, the server ignores the second request to prevent
    /// the creation of duplicate commitments.
    ///
    /// The request ID must be a valid
    /// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
    /// A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string RequestId {
      get { return requestId_; }
      set {
        requestId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as CreateMetadataImportRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(CreateMetadataImportRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Parent != other.Parent) return false;
      if (MetadataImportId != other.MetadataImportId) return false;
      if (!object.Equals(MetadataImport, other.MetadataImport)) return false;
      if (RequestId != other.RequestId) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Parent.Length != 0) hash ^= Parent.GetHashCode();
      if (MetadataImportId.Length != 0) hash ^= MetadataImportId.GetHashCode();
      if (metadataImport_ != null) hash ^= MetadataImport.GetHashCode();
      if (RequestId.Length != 0) hash ^= RequestId.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Parent.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Parent);
      }
      if (MetadataImportId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(MetadataImportId);
      }
      if (metadataImport_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(MetadataImport);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Parent.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Parent);
      }
      if (MetadataImportId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(MetadataImportId);
      }
      if (metadataImport_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(MetadataImport);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Parent.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Parent);
      }
      if (MetadataImportId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(MetadataImportId);
      }
      if (metadataImport_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(MetadataImport);
      }
      if (RequestId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(RequestId);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(CreateMetadataImportRequest other) {
      if (other == null) {
        return;
      }
      if (other.Parent.Length != 0) {
        Parent = other.Parent;
      }
      if (other.MetadataImportId.Length != 0) {
        MetadataImportId = other.MetadataImportId;
      }
      if (other.metadataImport_ != null) {
        if (metadataImport_ == null) {
          MetadataImport = new global::Google.Cloud.Metastore.V1.MetadataImport();
        }
        MetadataImport.MergeFrom(other.MetadataImport);
      }
      if (other.RequestId.Length != 0) {
        RequestId = other.RequestId;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Parent = input.ReadString();
            break;
          }
          case 18: {
            MetadataImportId = input.ReadString();
            break;
          }
          case 26: {
            if (metadataImport_ == null) {
              MetadataImport = new global::Google.Cloud.Metastore.V1.MetadataImport();
            }
            input.ReadMessage(MetadataImport);
            break;
          }
          case 34: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Parent = input.ReadString();
            break;
          }
          case 18: {
            MetadataImportId = input.ReadString();
            break;
          }
          case 26: {
            if (metadataImport_ == null) {
              MetadataImport = new global::Google.Cloud.Metastore.V1.MetadataImport();
            }
            input.ReadMessage(MetadataImport);
            break;
          }
          case 34: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Request message for [DataprocMetastore.UpdateMetadataImport][google.cloud.metastore.v1.DataprocMetastore.UpdateMetadataImport].
  ///
  public sealed partial class UpdateMetadataImportRequest : pb::IMessage<UpdateMetadataImportRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<UpdateMetadataImportRequest> _parser = new pb::MessageParser<UpdateMetadataImportRequest>(() => new UpdateMetadataImportRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<UpdateMetadataImportRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[20]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public UpdateMetadataImportRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public UpdateMetadataImportRequest(UpdateMetadataImportRequest other) : this() {
      updateMask_ = other.updateMask_ != null ? other.updateMask_.Clone() : null;
      metadataImport_ = other.metadataImport_ != null ? other.metadataImport_.Clone() : null;
      requestId_ = other.requestId_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public UpdateMetadataImportRequest Clone() {
      return new UpdateMetadataImportRequest(this);
    }

    /// Field number for the "update_mask" field.
    public const int UpdateMaskFieldNumber = 1;
    private global::Google.Protobuf.WellKnownTypes.FieldMask updateMask_;
    ///
    /// Required. A field mask used to specify the fields to be overwritten in the
    /// metadata import resource by the update.
    /// Fields specified in the `update_mask` are relative to the resource (not
    /// to the full request). A field is overwritten if it is in the mask.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.FieldMask UpdateMask {
      get { return updateMask_; }
      set {
        updateMask_ = value;
      }
    }

    /// Field number for the "metadata_import" field.
    public const int MetadataImportFieldNumber = 2;
    private global::Google.Cloud.Metastore.V1.MetadataImport metadataImport_;
    ///
    /// Required. The metadata import to update. The server only merges fields
    /// in the import if they are specified in `update_mask`.
    ///
    /// The metadata import's `name` field is used to identify the metastore
    /// import to be updated.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.MetadataImport MetadataImport {
      get { return metadataImport_; }
      set {
        metadataImport_ = value;
      }
    }

    /// Field number for the "request_id" field.
    public const int RequestIdFieldNumber = 3;
    private string requestId_ = "";
    ///
    /// Optional. A request ID. Specify a unique request ID to allow the server to ignore the
    /// request if it has completed. The server will ignore subsequent requests
    /// that provide a duplicate request ID for at least 60 minutes after the first
    /// request.
    ///
    /// For example, if an initial request times out, followed by another request
    /// with the same request ID, the server ignores the second request to prevent
    /// the creation of duplicate commitments.
    ///
    /// The request ID must be a valid
    /// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
    /// A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string RequestId {
      get { return requestId_; }
      set {
        requestId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as UpdateMetadataImportRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(UpdateMetadataImportRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(UpdateMask, other.UpdateMask)) return false;
      if (!object.Equals(MetadataImport, other.MetadataImport)) return false;
      if (RequestId != other.RequestId) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (updateMask_ != null) hash ^= UpdateMask.GetHashCode();
      if (metadataImport_ != null) hash ^= MetadataImport.GetHashCode();
      if (RequestId.Length != 0) hash ^= RequestId.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (updateMask_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(UpdateMask);
      }
      if (metadataImport_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(MetadataImport);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (updateMask_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(UpdateMask);
      }
      if (metadataImport_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(MetadataImport);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (updateMask_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(UpdateMask);
      }
      if (metadataImport_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(MetadataImport);
      }
      if (RequestId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(RequestId);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(UpdateMetadataImportRequest other) {
      if (other == null) {
        return;
      }
      if (other.updateMask_ != null) {
        if (updateMask_ == null) {
          UpdateMask = new global::Google.Protobuf.WellKnownTypes.FieldMask();
        }
        UpdateMask.MergeFrom(other.UpdateMask);
      }
      if (other.metadataImport_ != null) {
        if (metadataImport_ == null) {
          MetadataImport = new global::Google.Cloud.Metastore.V1.MetadataImport();
        }
        MetadataImport.MergeFrom(other.MetadataImport);
      }
      if (other.RequestId.Length != 0) {
        RequestId = other.RequestId;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (updateMask_ == null) {
              UpdateMask = new global::Google.Protobuf.WellKnownTypes.FieldMask();
            }
            input.ReadMessage(UpdateMask);
            break;
          }
          case 18: {
            if (metadataImport_ == null) {
              MetadataImport = new global::Google.Cloud.Metastore.V1.MetadataImport();
            }
            input.ReadMessage(MetadataImport);
            break;
          }
          case 26: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (updateMask_ == null) {
              UpdateMask = new global::Google.Protobuf.WellKnownTypes.FieldMask();
            }
            input.ReadMessage(UpdateMask);
            break;
          }
          case 18: {
            if (metadataImport_ == null) {
              MetadataImport = new global::Google.Cloud.Metastore.V1.MetadataImport();
            }
            input.ReadMessage(MetadataImport);
            break;
          }
          case 26: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Request message for [DataprocMetastore.ListBackups][google.cloud.metastore.v1.DataprocMetastore.ListBackups].
  ///
  public sealed partial class ListBackupsRequest : pb::IMessage<ListBackupsRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ListBackupsRequest> _parser = new pb::MessageParser<ListBackupsRequest>(() => new ListBackupsRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ListBackupsRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[21]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListBackupsRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListBackupsRequest(ListBackupsRequest other) : this() {
      parent_ = other.parent_;
      pageSize_ = other.pageSize_;
      pageToken_ = other.pageToken_;
      filter_ = other.filter_;
      orderBy_ = other.orderBy_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListBackupsRequest Clone() {
      return new ListBackupsRequest(this);
    }

    /// Field number for the "parent" field.
    public const int ParentFieldNumber = 1;
    private string parent_ = "";
    ///
    /// Required. The relative resource name of the service whose backups to
    /// list, in the following form:
    ///
    /// `projects/{project_number}/locations/{location_id}/services/{service_id}/backups`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Parent {
      get { return parent_; }
      set {
        parent_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "page_size" field.
    public const int PageSizeFieldNumber = 2;
    private int pageSize_;
    ///
    /// Optional. The maximum number of backups to return. The response may contain less
    /// than the maximum number. If unspecified, no more than 500 backups are
    /// returned. The maximum value is 1000; values above 1000 are changed to 1000.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int PageSize {
      get { return pageSize_; }
      set {
        pageSize_ = value;
      }
    }

    /// Field number for the "page_token" field.
    public const int PageTokenFieldNumber = 3;
    private string pageToken_ = "";
    ///
    /// Optional. A page token, received from a previous [DataprocMetastore.ListBackups][google.cloud.metastore.v1.DataprocMetastore.ListBackups]
    /// call. Provide this token to retrieve the subsequent page.
    ///
    /// To retrieve the first page, supply an empty page token.
    ///
    /// When paginating, other parameters provided to
    /// [DataprocMetastore.ListBackups][google.cloud.metastore.v1.DataprocMetastore.ListBackups] must match the call that provided the
    /// page token.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string PageToken {
      get { return pageToken_; }
      set {
        pageToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "filter" field.
    public const int FilterFieldNumber = 4;
    private string filter_ = "";
    ///
    /// Optional. The filter to apply to list results.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Filter {
      get { return filter_; }
      set {
        filter_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "order_by" field.
    public const int OrderByFieldNumber = 5;
    private string orderBy_ = "";
    ///
    /// Optional. Specify the ordering of results as described in [Sorting
    /// Order](https://cloud.google.com/apis/design/design_patterns#sorting_order).
    /// If not specified, the results will be sorted in the default order.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string OrderBy {
      get { return orderBy_; }
      set {
        orderBy_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ListBackupsRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ListBackupsRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Parent != other.Parent) return false;
      if (PageSize != other.PageSize) return false;
      if (PageToken != other.PageToken) return false;
      if (Filter != other.Filter) return false;
      if (OrderBy != other.OrderBy) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Parent.Length != 0) hash ^= Parent.GetHashCode();
      if (PageSize != 0) hash ^= PageSize.GetHashCode();
      if (PageToken.Length != 0) hash ^= PageToken.GetHashCode();
      if (Filter.Length != 0) hash ^= Filter.GetHashCode();
      if (OrderBy.Length != 0) hash ^= OrderBy.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Parent.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Parent);
      }
      if (PageSize != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(PageSize);
      }
      if (PageToken.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(PageToken);
      }
      if (Filter.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Filter);
      }
      if (OrderBy.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(OrderBy);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Parent.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Parent);
      }
      if (PageSize != 0) {
        output.WriteRawTag(16);
        output.WriteInt32(PageSize);
      }
      if (PageToken.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(PageToken);
      }
      if (Filter.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Filter);
      }
      if (OrderBy.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(OrderBy);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Parent.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Parent);
      }
      if (PageSize != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(PageSize);
      }
      if (PageToken.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(PageToken);
      }
      if (Filter.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Filter);
      }
      if (OrderBy.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(OrderBy);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ListBackupsRequest other) {
      if (other == null) {
        return;
      }
      if (other.Parent.Length != 0) {
        Parent = other.Parent;
      }
      if (other.PageSize != 0) {
        PageSize = other.PageSize;
      }
      if (other.PageToken.Length != 0) {
        PageToken = other.PageToken;
      }
      if (other.Filter.Length != 0) {
        Filter = other.Filter;
      }
      if (other.OrderBy.Length != 0) {
        OrderBy = other.OrderBy;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Parent = input.ReadString();
            break;
          }
          case 16: {
            PageSize = input.ReadInt32();
            break;
          }
          case 26: {
            PageToken = input.ReadString();
            break;
          }
          case 34: {
            Filter = input.ReadString();
            break;
          }
          case 42: {
            OrderBy = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Parent = input.ReadString();
            break;
          }
          case 16: {
            PageSize = input.ReadInt32();
            break;
          }
          case 26: {
            PageToken = input.ReadString();
            break;
          }
          case 34: {
            Filter = input.ReadString();
            break;
          }
          case 42: {
            OrderBy = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Response message for [DataprocMetastore.ListBackups][google.cloud.metastore.v1.DataprocMetastore.ListBackups].
  ///
  public sealed partial class ListBackupsResponse : pb::IMessage<ListBackupsResponse>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ListBackupsResponse> _parser = new pb::MessageParser<ListBackupsResponse>(() => new ListBackupsResponse());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ListBackupsResponse> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[22]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListBackupsResponse() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListBackupsResponse(ListBackupsResponse other) : this() {
      backups_ = other.backups_.Clone();
      nextPageToken_ = other.nextPageToken_;
      unreachable_ = other.unreachable_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ListBackupsResponse Clone() {
      return new ListBackupsResponse(this);
    }

    /// Field number for the "backups" field.
    public const int BackupsFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Google.Cloud.Metastore.V1.Backup> _repeated_backups_codec
        = pb::FieldCodec.ForMessage(10, global::Google.Cloud.Metastore.V1.Backup.Parser);
    private readonly pbc::RepeatedField<global::Google.Cloud.Metastore.V1.Backup> backups_ = new pbc::RepeatedField<global::Google.Cloud.Metastore.V1.Backup>();
    ///
    /// The backups of the specified service.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Google.Cloud.Metastore.V1.Backup> Backups {
      get { return backups_; }
    }

    /// Field number for the "next_page_token" field.
    public const int NextPageTokenFieldNumber = 2;
    private string nextPageToken_ = "";
    ///
    /// A token that can be sent as `page_token` to retrieve the next page. If this
    /// field is omitted, there are no subsequent pages.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string NextPageToken {
      get { return nextPageToken_; }
      set {
        nextPageToken_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "unreachable" field.
    public const int UnreachableFieldNumber = 3;
    private static readonly pb::FieldCodec<string> _repeated_unreachable_codec
        = pb::FieldCodec.ForString(26);
    private readonly pbc::RepeatedField<string> unreachable_ = new pbc::RepeatedField<string>();
    ///
    /// Locations that could not be reached.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<string> Unreachable {
      get { return unreachable_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ListBackupsResponse);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ListBackupsResponse other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!backups_.Equals(other.backups_)) return false;
      if (NextPageToken != other.NextPageToken) return false;
      if(!unreachable_.Equals(other.unreachable_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= backups_.GetHashCode();
      if (NextPageToken.Length != 0) hash ^= NextPageToken.GetHashCode();
      hash ^= unreachable_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      backups_.WriteTo(output, _repeated_backups_codec);
      if (NextPageToken.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(NextPageToken);
      }
      unreachable_.WriteTo(output, _repeated_unreachable_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      backups_.WriteTo(ref output, _repeated_backups_codec);
      if (NextPageToken.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(NextPageToken);
      }
      unreachable_.WriteTo(ref output, _repeated_unreachable_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      size += backups_.CalculateSize(_repeated_backups_codec);
      if (NextPageToken.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(NextPageToken);
      }
      size += unreachable_.CalculateSize(_repeated_unreachable_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ListBackupsResponse other) {
      if (other == null) {
        return;
      }
      backups_.Add(other.backups_);
      if (other.NextPageToken.Length != 0) {
        NextPageToken = other.NextPageToken;
      }
      unreachable_.Add(other.unreachable_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            backups_.AddEntriesFrom(input, _repeated_backups_codec);
            break;
          }
          case 18: {
            NextPageToken = input.ReadString();
            break;
          }
          case 26: {
            unreachable_.AddEntriesFrom(input, _repeated_unreachable_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            backups_.AddEntriesFrom(ref input, _repeated_backups_codec);
            break;
          }
          case 18: {
            NextPageToken = input.ReadString();
            break;
          }
          case 26: {
            unreachable_.AddEntriesFrom(ref input, _repeated_unreachable_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Request message for [DataprocMetastore.GetBackup][google.cloud.metastore.v1.DataprocMetastore.GetBackup].
  ///
  public sealed partial class GetBackupRequest : pb::IMessage<GetBackupRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<GetBackupRequest> _parser = new pb::MessageParser<GetBackupRequest>(() => new GetBackupRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<GetBackupRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[23]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GetBackupRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GetBackupRequest(GetBackupRequest other) : this() {
      name_ = other.name_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public GetBackupRequest Clone() {
      return new GetBackupRequest(this);
    }

    /// Field number for the "name" field.
    public const int NameFieldNumber = 1;
    private string name_ = "";
    ///
    /// Required. The relative resource name of the backup to retrieve, in the
    /// following form:
    ///
    /// `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as GetBackupRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(GetBackupRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(GetBackupRequest other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Request message for [DataprocMetastore.CreateBackup][google.cloud.metastore.v1.DataprocMetastore.CreateBackup].
  ///
  public sealed partial class CreateBackupRequest : pb::IMessage<CreateBackupRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<CreateBackupRequest> _parser = new pb::MessageParser<CreateBackupRequest>(() => new CreateBackupRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<CreateBackupRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[24]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public CreateBackupRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public CreateBackupRequest(CreateBackupRequest other) : this() {
      parent_ = other.parent_;
      backupId_ = other.backupId_;
      backup_ = other.backup_ != null ? other.backup_.Clone() : null;
      requestId_ = other.requestId_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public CreateBackupRequest Clone() {
      return new CreateBackupRequest(this);
    }

    /// Field number for the "parent" field.
    public const int ParentFieldNumber = 1;
    private string parent_ = "";
    ///
    /// Required. The relative resource name of the service in which to create a backup
    /// of the following form:
    ///
    /// `projects/{project_number}/locations/{location_id}/services/{service_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Parent {
      get { return parent_; }
      set {
        parent_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "backup_id" field.
    public const int BackupIdFieldNumber = 2;
    private string backupId_ = "";
    ///
    /// Required. The ID of the backup, which is used as the final component of the
    /// backup's name.
    ///
    /// This value must be between 1 and 64 characters long, begin with a letter,
    /// end with a letter or number, and consist of alpha-numeric ASCII characters
    /// or hyphens.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string BackupId {
      get { return backupId_; }
      set {
        backupId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "backup" field.
    public const int BackupFieldNumber = 3;
    private global::Google.Cloud.Metastore.V1.Backup backup_;
    ///
    /// Required. The backup to create. The `name` field is ignored. The ID of the created
    /// backup must be provided in the request's `backup_id` field.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.Backup Backup {
      get { return backup_; }
      set {
        backup_ = value;
      }
    }

    /// Field number for the "request_id" field.
    public const int RequestIdFieldNumber = 4;
    private string requestId_ = "";
    ///
    /// Optional. A request ID. Specify a unique request ID to allow the server to ignore the
    /// request if it has completed. The server will ignore subsequent requests
    /// that provide a duplicate request ID for at least 60 minutes after the first
    /// request.
    ///
    /// For example, if an initial request times out, followed by another request
    /// with the same request ID, the server ignores the second request to prevent
    /// the creation of duplicate commitments.
    ///
    /// The request ID must be a valid
    /// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
    /// A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string RequestId {
      get { return requestId_; }
      set {
        requestId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as CreateBackupRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(CreateBackupRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Parent != other.Parent) return false;
      if (BackupId != other.BackupId) return false;
      if (!object.Equals(Backup, other.Backup)) return false;
      if (RequestId != other.RequestId) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Parent.Length != 0) hash ^= Parent.GetHashCode();
      if (BackupId.Length != 0) hash ^= BackupId.GetHashCode();
      if (backup_ != null) hash ^= Backup.GetHashCode();
      if (RequestId.Length != 0) hash ^= RequestId.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Parent.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Parent);
      }
      if (BackupId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(BackupId);
      }
      if (backup_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(Backup);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Parent.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Parent);
      }
      if (BackupId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(BackupId);
      }
      if (backup_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(Backup);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Parent.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Parent);
      }
      if (BackupId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(BackupId);
      }
      if (backup_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Backup);
      }
      if (RequestId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(RequestId);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(CreateBackupRequest other) {
      if (other == null) {
        return;
      }
      if (other.Parent.Length != 0) {
        Parent = other.Parent;
      }
      if (other.BackupId.Length != 0) {
        BackupId = other.BackupId;
      }
      if (other.backup_ != null) {
        if (backup_ == null) {
          Backup = new global::Google.Cloud.Metastore.V1.Backup();
        }
        Backup.MergeFrom(other.Backup);
      }
      if (other.RequestId.Length != 0) {
        RequestId = other.RequestId;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Parent = input.ReadString();
            break;
          }
          case 18: {
            BackupId = input.ReadString();
            break;
          }
          case 26: {
            if (backup_ == null) {
              Backup = new global::Google.Cloud.Metastore.V1.Backup();
            }
            input.ReadMessage(Backup);
            break;
          }
          case 34: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Parent = input.ReadString();
            break;
          }
          case 18: {
            BackupId = input.ReadString();
            break;
          }
          case 26: {
            if (backup_ == null) {
              Backup = new global::Google.Cloud.Metastore.V1.Backup();
            }
            input.ReadMessage(Backup);
            break;
          }
          case 34: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Request message for [DataprocMetastore.DeleteBackup][google.cloud.metastore.v1.DataprocMetastore.DeleteBackup].
  ///
  public sealed partial class DeleteBackupRequest : pb::IMessage<DeleteBackupRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<DeleteBackupRequest> _parser = new pb::MessageParser<DeleteBackupRequest>(() => new DeleteBackupRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<DeleteBackupRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[25]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DeleteBackupRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DeleteBackupRequest(DeleteBackupRequest other) : this() {
      name_ = other.name_;
      requestId_ = other.requestId_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DeleteBackupRequest Clone() {
      return new DeleteBackupRequest(this);
    }

    /// Field number for the "name" field.
    public const int NameFieldNumber = 1;
    private string name_ = "";
    ///
    /// Required. The relative resource name of the backup to delete, in the
    /// following form:
    ///
    /// `projects/{project_number}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "request_id" field.
    public const int RequestIdFieldNumber = 2;
    private string requestId_ = "";
    ///
    /// Optional. A request ID. Specify a unique request ID to allow the server to ignore the
    /// request if it has completed. The server will ignore subsequent requests
    /// that provide a duplicate request ID for at least 60 minutes after the first
    /// request.
    ///
    /// For example, if an initial request times out, followed by another request
    /// with the same request ID, the server ignores the second request to prevent
    /// the creation of duplicate commitments.
    ///
    /// The request ID must be a valid
    /// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format)
    /// A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string RequestId {
      get { return requestId_; }
      set {
        requestId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as DeleteBackupRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(DeleteBackupRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (RequestId != other.RequestId) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (RequestId.Length != 0) hash ^= RequestId.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (RequestId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(RequestId);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(DeleteBackupRequest other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.RequestId.Length != 0) {
        RequestId = other.RequestId;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Request message for [DataprocMetastore.ExportMetadata][google.cloud.metastore.v1.DataprocMetastore.ExportMetadata].
  ///
  public sealed partial class ExportMetadataRequest : pb::IMessage<ExportMetadataRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<ExportMetadataRequest> _parser = new pb::MessageParser<ExportMetadataRequest>(() => new ExportMetadataRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<ExportMetadataRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[26]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ExportMetadataRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ExportMetadataRequest(ExportMetadataRequest other) : this() {
      service_ = other.service_;
      requestId_ = other.requestId_;
      databaseDumpType_ = other.databaseDumpType_;
      switch (other.DestinationCase) {
        case DestinationOneofCase.DestinationGcsFolder:
          DestinationGcsFolder = other.DestinationGcsFolder;
          break;
      }

      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ExportMetadataRequest Clone() {
      return new ExportMetadataRequest(this);
    }

    /// Field number for the "destination_gcs_folder" field.
    public const int DestinationGcsFolderFieldNumber = 2;
    ///
    /// A Cloud Storage URI of a folder, in the format
    /// `gs://<bucket_name>/<path_inside_bucket>`. A sub-folder
    /// `<export_folder>` containing exported files will be created below it.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string DestinationGcsFolder {
      get { return destinationCase_ == DestinationOneofCase.DestinationGcsFolder ? (string) destination_ : ""; }
      set {
        destination_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
        destinationCase_ = DestinationOneofCase.DestinationGcsFolder;
      }
    }

    /// Field number for the "service" field.
    public const int ServiceFieldNumber = 1;
    private string service_ = "";
    ///
    /// Required. The relative resource name of the metastore service to run export, in the
    /// following form:
    ///
    /// `projects/{project_id}/locations/{location_id}/services/{service_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Service {
      get { return service_; }
      set {
        service_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "request_id" field.
    public const int RequestIdFieldNumber = 3;
    private string requestId_ = "";
    ///
    /// Optional. A request ID. Specify a unique request ID to allow the server to ignore the
    /// request if it has completed. The server will ignore subsequent requests
    /// that provide a duplicate request ID for at least 60 minutes after the first
    /// request.
    ///
    /// For example, if an initial request times out, followed by another request
    /// with the same request ID, the server ignores the second request to prevent
    /// the creation of duplicate commitments.
    ///
    /// The request ID must be a valid
    /// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
    /// A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string RequestId {
      get { return requestId_; }
      set {
        requestId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "database_dump_type" field.
    public const int DatabaseDumpTypeFieldNumber = 4;
    private global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type databaseDumpType_ = global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified;
    ///
    /// Optional. The type of the database dump. If unspecified, defaults to `MYSQL`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type DatabaseDumpType {
      get { return databaseDumpType_; }
      set {
        databaseDumpType_ = value;
      }
    }

    private object destination_;
    /// Enum of possible cases for the "destination" oneof.
    public enum DestinationOneofCase {
      None = 0,
      DestinationGcsFolder = 2,
    }
    private DestinationOneofCase destinationCase_ = DestinationOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DestinationOneofCase DestinationCase {
      get { return destinationCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearDestination() {
      destinationCase_ = DestinationOneofCase.None;
      destination_ = null;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as ExportMetadataRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(ExportMetadataRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (DestinationGcsFolder != other.DestinationGcsFolder) return false;
      if (Service != other.Service) return false;
      if (RequestId != other.RequestId) return false;
      if (DatabaseDumpType != other.DatabaseDumpType) return false;
      if (DestinationCase != other.DestinationCase) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (destinationCase_ == DestinationOneofCase.DestinationGcsFolder) hash ^= DestinationGcsFolder.GetHashCode();
      if (Service.Length != 0) hash ^= Service.GetHashCode();
      if (RequestId.Length != 0) hash ^= RequestId.GetHashCode();
      if (DatabaseDumpType != global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified) hash ^= DatabaseDumpType.GetHashCode();
      hash ^= (int) destinationCase_;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Service.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Service);
      }
      if (destinationCase_ == DestinationOneofCase.DestinationGcsFolder) {
        output.WriteRawTag(18);
        output.WriteString(DestinationGcsFolder);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(RequestId);
      }
      if (DatabaseDumpType != global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified) {
        output.WriteRawTag(32);
        output.WriteEnum((int) DatabaseDumpType);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Service.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Service);
      }
      if (destinationCase_ == DestinationOneofCase.DestinationGcsFolder) {
        output.WriteRawTag(18);
        output.WriteString(DestinationGcsFolder);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(RequestId);
      }
      if (DatabaseDumpType != global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified) {
        output.WriteRawTag(32);
        output.WriteEnum((int) DatabaseDumpType);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (destinationCase_ == DestinationOneofCase.DestinationGcsFolder) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(DestinationGcsFolder);
      }
      if (Service.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Service);
      }
      if (RequestId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(RequestId);
      }
      if (DatabaseDumpType != global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DatabaseDumpType);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(ExportMetadataRequest other) {
      if (other == null) {
        return;
      }
      if (other.Service.Length != 0) {
        Service = other.Service;
      }
      if (other.RequestId.Length != 0) {
        RequestId = other.RequestId;
      }
      if (other.DatabaseDumpType != global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type.Unspecified) {
        DatabaseDumpType = other.DatabaseDumpType;
      }
      switch (other.DestinationCase) {
        case DestinationOneofCase.DestinationGcsFolder:
          DestinationGcsFolder = other.DestinationGcsFolder;
          break;
      }

      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Service = input.ReadString();
            break;
          }
          case 18: {
            DestinationGcsFolder = input.ReadString();
            break;
          }
          case 26: {
            RequestId = input.ReadString();
            break;
          }
          case 32: {
            DatabaseDumpType = (global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type) input.ReadEnum();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Service = input.ReadString();
            break;
          }
          case 18: {
            DestinationGcsFolder = input.ReadString();
            break;
          }
          case 26: {
            RequestId = input.ReadString();
            break;
          }
          case 32: {
            DatabaseDumpType = (global::Google.Cloud.Metastore.V1.DatabaseDumpSpec.Types.Type) input.ReadEnum();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Request message for [DataprocMetastore.Restore][].
  ///
  public sealed partial class RestoreServiceRequest : pb::IMessage<RestoreServiceRequest>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<RestoreServiceRequest> _parser = new pb::MessageParser<RestoreServiceRequest>(() => new RestoreServiceRequest());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<RestoreServiceRequest> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[27]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public RestoreServiceRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public RestoreServiceRequest(RestoreServiceRequest other) : this() {
      service_ = other.service_;
      backup_ = other.backup_;
      restoreType_ = other.restoreType_;
      requestId_ = other.requestId_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public RestoreServiceRequest Clone() {
      return new RestoreServiceRequest(this);
    }

    /// Field number for the "service" field.
    public const int ServiceFieldNumber = 1;
    private string service_ = "";
    ///
    /// Required. The relative resource name of the metastore service to run restore, in the
    /// following form:
    ///
    /// `projects/{project_id}/locations/{location_id}/services/{service_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Service {
      get { return service_; }
      set {
        service_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "backup" field.
    public const int BackupFieldNumber = 2;
    private string backup_ = "";
    ///
    /// Required. The relative resource name of the metastore service backup to restore
    /// from, in the following form:
    ///
    /// `projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Backup {
      get { return backup_; }
      set {
        backup_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "restore_type" field.
    public const int RestoreTypeFieldNumber = 3;
    private global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType restoreType_ = global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType.Unspecified;
    ///
    /// Optional. The type of restore. If unspecified, defaults to `METADATA_ONLY`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType RestoreType {
      get { return restoreType_; }
      set {
        restoreType_ = value;
      }
    }

    /// Field number for the "request_id" field.
    public const int RequestIdFieldNumber = 4;
    private string requestId_ = "";
    ///
    /// Optional. A request ID. Specify a unique request ID to allow the server to ignore the
    /// request if it has completed. The server will ignore subsequent requests
    /// that provide a duplicate request ID for at least 60 minutes after the first
    /// request.
    ///
    /// For example, if an initial request times out, followed by another request
    /// with the same request ID, the server ignores the second request to prevent
    /// the creation of duplicate commitments.
    ///
    /// The request ID must be a valid
    /// [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Format).
    /// A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string RequestId {
      get { return requestId_; }
      set {
        requestId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as RestoreServiceRequest);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(RestoreServiceRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Service != other.Service) return false;
      if (Backup != other.Backup) return false;
      if (RestoreType != other.RestoreType) return false;
      if (RequestId != other.RequestId) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Service.Length != 0) hash ^= Service.GetHashCode();
      if (Backup.Length != 0) hash ^= Backup.GetHashCode();
      if (RestoreType != global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType.Unspecified) hash ^= RestoreType.GetHashCode();
      if (RequestId.Length != 0) hash ^= RequestId.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Service.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Service);
      }
      if (Backup.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Backup);
      }
      if (RestoreType != global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType.Unspecified) {
        output.WriteRawTag(24);
        output.WriteEnum((int) RestoreType);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Service.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Service);
      }
      if (Backup.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Backup);
      }
      if (RestoreType != global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType.Unspecified) {
        output.WriteRawTag(24);
        output.WriteEnum((int) RestoreType);
      }
      if (RequestId.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(RequestId);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Service.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Service);
      }
      if (Backup.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Backup);
      }
      if (RestoreType != global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType.Unspecified) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) RestoreType);
      }
      if (RequestId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(RequestId);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(RestoreServiceRequest other) {
      if (other == null) {
        return;
      }
      if (other.Service.Length != 0) {
        Service = other.Service;
      }
      if (other.Backup.Length != 0) {
        Backup = other.Backup;
      }
      if (other.RestoreType != global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType.Unspecified) {
        RestoreType = other.RestoreType;
      }
      if (other.RequestId.Length != 0) {
        RequestId = other.RequestId;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Service = input.ReadString();
            break;
          }
          case 18: {
            Backup = input.ReadString();
            break;
          }
          case 24: {
            RestoreType = (global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType) input.ReadEnum();
            break;
          }
          case 34: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Service = input.ReadString();
            break;
          }
          case 18: {
            Backup = input.ReadString();
            break;
          }
          case 24: {
            RestoreType = (global::Google.Cloud.Metastore.V1.Restore.Types.RestoreType) input.ReadEnum();
            break;
          }
          case 34: {
            RequestId = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Represents the metadata of a long-running operation.
  ///
  public sealed partial class OperationMetadata : pb::IMessage<OperationMetadata>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<OperationMetadata> _parser = new pb::MessageParser<OperationMetadata>(() => new OperationMetadata());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<OperationMetadata> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[28]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public OperationMetadata() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public OperationMetadata(OperationMetadata other) : this() {
      createTime_ = other.createTime_ != null ? other.createTime_.Clone() : null;
      endTime_ = other.endTime_ != null ? other.endTime_.Clone() : null;
      target_ = other.target_;
      verb_ = other.verb_;
      statusMessage_ = other.statusMessage_;
      requestedCancellation_ = other.requestedCancellation_;
      apiVersion_ = other.apiVersion_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public OperationMetadata Clone() {
      return new OperationMetadata(this);
    }

    /// Field number for the "create_time" field.
    public const int CreateTimeFieldNumber = 1;
    private global::Google.Protobuf.WellKnownTypes.Timestamp createTime_;
    ///
    /// Output only. The time the operation was created.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp CreateTime {
      get { return createTime_; }
      set {
        createTime_ = value;
      }
    }

    /// Field number for the "end_time" field.
    public const int EndTimeFieldNumber = 2;
    private global::Google.Protobuf.WellKnownTypes.Timestamp endTime_;
    ///
    /// Output only. The time the operation finished running.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp EndTime {
      get { return endTime_; }
      set {
        endTime_ = value;
      }
    }

    /// Field number for the "target" field.
    public const int TargetFieldNumber = 3;
    private string target_ = "";
    ///
    /// Output only. Server-defined resource path for the target of the operation.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Target {
      get { return target_; }
      set {
        target_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "verb" field.
    public const int VerbFieldNumber = 4;
    private string verb_ = "";
    ///
    /// Output only. Name of the verb executed by the operation.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Verb {
      get { return verb_; }
      set {
        verb_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "status_message" field.
    public const int StatusMessageFieldNumber = 5;
    private string statusMessage_ = "";
    ///
    /// Output only. Human-readable status of the operation, if any.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string StatusMessage {
      get { return statusMessage_; }
      set {
        statusMessage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// Field number for the "requested_cancellation" field.
    public const int RequestedCancellationFieldNumber = 6;
    private bool requestedCancellation_;
    ///
    /// Output only. Identifies whether the caller has requested cancellation
    /// of the operation. Operations that have successfully been cancelled
    /// have [Operation.error][] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
    /// corresponding to `Code.CANCELLED`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool RequestedCancellation {
      get { return requestedCancellation_; }
      set {
        requestedCancellation_ = value;
      }
    }

    /// Field number for the "api_version" field.
    public const int ApiVersionFieldNumber = 7;
    private string apiVersion_ = "";
    ///
    /// Output only. API version used to start the operation.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string ApiVersion {
      get { return apiVersion_; }
      set {
        apiVersion_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as OperationMetadata);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(OperationMetadata other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(CreateTime, other.CreateTime)) return false;
      if (!object.Equals(EndTime, other.EndTime)) return false;
      if (Target != other.Target) return false;
      if (Verb != other.Verb) return false;
      if (StatusMessage != other.StatusMessage) return false;
      if (RequestedCancellation != other.RequestedCancellation) return false;
      if (ApiVersion != other.ApiVersion) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (createTime_ != null) hash ^= CreateTime.GetHashCode();
      if (endTime_ != null) hash ^= EndTime.GetHashCode();
      if (Target.Length != 0) hash ^= Target.GetHashCode();
      if (Verb.Length != 0) hash ^= Verb.GetHashCode();
      if (StatusMessage.Length != 0) hash ^= StatusMessage.GetHashCode();
      if (RequestedCancellation != false) hash ^= RequestedCancellation.GetHashCode();
      if (ApiVersion.Length != 0) hash ^= ApiVersion.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (createTime_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(CreateTime);
      }
      if (endTime_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(EndTime);
      }
      if (Target.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Target);
      }
      if (Verb.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Verb);
      }
      if (StatusMessage.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(StatusMessage);
      }
      if (RequestedCancellation != false) {
        output.WriteRawTag(48);
        output.WriteBool(RequestedCancellation);
      }
      if (ApiVersion.Length != 0) {
        output.WriteRawTag(58);
        output.WriteString(ApiVersion);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (createTime_ != null) {
        output.WriteRawTag(10);
        output.WriteMessage(CreateTime);
      }
      if (endTime_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(EndTime);
      }
      if (Target.Length != 0) {
        output.WriteRawTag(26);
        output.WriteString(Target);
      }
      if (Verb.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(Verb);
      }
      if (StatusMessage.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(StatusMessage);
      }
      if (RequestedCancellation != false) {
        output.WriteRawTag(48);
        output.WriteBool(RequestedCancellation);
      }
      if (ApiVersion.Length != 0) {
        output.WriteRawTag(58);
        output.WriteString(ApiVersion);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (createTime_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(CreateTime);
      }
      if (endTime_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(EndTime);
      }
      if (Target.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Target);
      }
      if (Verb.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Verb);
      }
      if (StatusMessage.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(StatusMessage);
      }
      if (RequestedCancellation != false) {
        size += 1 + 1;
      }
      if (ApiVersion.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ApiVersion);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(OperationMetadata other) {
      if (other == null) {
        return;
      }
      if (other.createTime_ != null) {
        if (createTime_ == null) {
          CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        CreateTime.MergeFrom(other.CreateTime);
      }
      if (other.endTime_ != null) {
        if (endTime_ == null) {
          EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        EndTime.MergeFrom(other.EndTime);
      }
      if (other.Target.Length != 0) {
        Target = other.Target;
      }
      if (other.Verb.Length != 0) {
        Verb = other.Verb;
      }
      if (other.StatusMessage.Length != 0) {
        StatusMessage = other.StatusMessage;
      }
      if (other.RequestedCancellation != false) {
        RequestedCancellation = other.RequestedCancellation;
      }
      if (other.ApiVersion.Length != 0) {
        ApiVersion = other.ApiVersion;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            if (createTime_ == null) {
              CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(CreateTime);
            break;
          }
          case 18: {
            if (endTime_ == null) {
              EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(EndTime);
            break;
          }
          case 26: {
            Target = input.ReadString();
            break;
          }
          case 34: {
            Verb = input.ReadString();
            break;
          }
          case 42: {
            StatusMessage = input.ReadString();
            break;
          }
          case 48: {
            RequestedCancellation = input.ReadBool();
            break;
          }
          case 58: {
            ApiVersion = input.ReadString();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            if (createTime_ == null) {
              CreateTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(CreateTime);
            break;
          }
          case 18: {
            if (endTime_ == null) {
              EndTime = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(EndTime);
            break;
          }
          case 26: {
            Target = input.ReadString();
            break;
          }
          case 34: {
            Verb = input.ReadString();
            break;
          }
          case 42: {
            StatusMessage = input.ReadString();
            break;
          }
          case 48: {
            RequestedCancellation = input.ReadBool();
            break;
          }
          case 58: {
            ApiVersion = input.ReadString();
            break;
          }
        }
      }
    }
    #endif

  }

  ///
  /// Metadata about the service in a location.
  ///
  public sealed partial class LocationMetadata : pb::IMessage<LocationMetadata>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<LocationMetadata> _parser = new pb::MessageParser<LocationMetadata>(() => new LocationMetadata());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<LocationMetadata> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[29]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public LocationMetadata() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public LocationMetadata(LocationMetadata other) : this() {
      supportedHiveMetastoreVersions_ = other.supportedHiveMetastoreVersions_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public LocationMetadata Clone() {
      return new LocationMetadata(this);
    }

    /// Field number for the "supported_hive_metastore_versions" field.
    public const int SupportedHiveMetastoreVersionsFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Google.Cloud.Metastore.V1.LocationMetadata.Types.HiveMetastoreVersion> _repeated_supportedHiveMetastoreVersions_codec
        = pb::FieldCodec.ForMessage(10, global::Google.Cloud.Metastore.V1.LocationMetadata.Types.HiveMetastoreVersion.Parser);
    private readonly pbc::RepeatedField<global::Google.Cloud.Metastore.V1.LocationMetadata.Types.HiveMetastoreVersion> supportedHiveMetastoreVersions_ = new pbc::RepeatedField<global::Google.Cloud.Metastore.V1.LocationMetadata.Types.HiveMetastoreVersion>();
    ///
    /// The versions of Hive Metastore that can be used when creating a new
    /// metastore service in this location. The server guarantees that exactly one
    /// `HiveMetastoreVersion` in the list will set `is_default`.
    ///
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Google.Cloud.Metastore.V1.LocationMetadata.Types.HiveMetastoreVersion> SupportedHiveMetastoreVersions {
      get { return supportedHiveMetastoreVersions_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as LocationMetadata);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(LocationMetadata other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!supportedHiveMetastoreVersions_.Equals(other.supportedHiveMetastoreVersions_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= supportedHiveMetastoreVersions_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      supportedHiveMetastoreVersions_.WriteTo(output, _repeated_supportedHiveMetastoreVersions_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      supportedHiveMetastoreVersions_.WriteTo(ref output, _repeated_supportedHiveMetastoreVersions_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      size += supportedHiveMetastoreVersions_.CalculateSize(_repeated_supportedHiveMetastoreVersions_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(LocationMetadata other) {
      if (other == null) {
        return;
      }
      supportedHiveMetastoreVersions_.Add(other.supportedHiveMetastoreVersions_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            supportedHiveMetastoreVersions_.AddEntriesFrom(input, _repeated_supportedHiveMetastoreVersions_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            supportedHiveMetastoreVersions_.AddEntriesFrom(ref input, _repeated_supportedHiveMetastoreVersions_codec);
            break;
          }
        }
      }
    }
    #endif

    #region Nested types
    /// Container for nested types declared in the LocationMetadata message type.
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static partial class Types {
      ///
      /// A specification of a supported version of the Hive Metastore software.
      ///
      public sealed partial class HiveMetastoreVersion : pb::IMessage<HiveMetastoreVersion>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<HiveMetastoreVersion> _parser = new pb::MessageParser<HiveMetastoreVersion>(() => new HiveMetastoreVersion());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<HiveMetastoreVersion> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::Google.Cloud.Metastore.V1.LocationMetadata.Descriptor.NestedTypes[0]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        pbr::MessageDescriptor pb::IMessage.Descriptor {
          get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public HiveMetastoreVersion() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public HiveMetastoreVersion(HiveMetastoreVersion other) : this() {
          version_ = other.version_;
          isDefault_ = other.isDefault_;
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public HiveMetastoreVersion Clone() {
          return new HiveMetastoreVersion(this);
        }

        /// Field number for the "version" field.
        public const int VersionFieldNumber = 1;
        private string version_ = "";
        ///
        /// The semantic version of the Hive Metastore software.
        ///
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public string Version {
          get { return version_; }
          set {
            version_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
          }
        }

        /// Field number for the "is_default" field.
        public const int IsDefaultFieldNumber = 2;
        private bool isDefault_;
        ///
        /// Whether `version` will be chosen by the server if a metastore service is
        /// created with a `HiveMetastoreConfig` that omits the `version`.
        ///
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool IsDefault {
          get { return isDefault_; }
          set {
            isDefault_ = value;
          }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override bool Equals(object other) {
          return Equals(other as HiveMetastoreVersion);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(HiveMetastoreVersion other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (Version != other.Version) return false;
          if (IsDefault != other.IsDefault) return false;
          return Equals(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override int GetHashCode() {
          int hash = 1;
          if (Version.Length != 0) hash ^= Version.GetHashCode();
          if (IsDefault != false) hash ^= IsDefault.GetHashCode();
          if (_unknownFields != null) {
            hash ^= _unknownFields.GetHashCode();
          }
          return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override string ToString() {
          return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void WriteTo(pb::CodedOutputStream output) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          output.WriteRawMessage(this);
        #else
          if (Version.Length != 0) {
            output.WriteRawTag(10);
            output.WriteString(Version);
          }
          if (IsDefault != false) {
            output.WriteRawTag(16);
            output.WriteBool(IsDefault);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(output);
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
          if (Version.Length != 0) {
            output.WriteRawTag(10);
            output.WriteString(Version);
          }
          if (IsDefault != false) {
            output.WriteRawTag(16);
            output.WriteBool(IsDefault);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(ref output);
          }
        }
        #endif

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int CalculateSize() {
          int size = 0;
          if (Version.Length != 0) {
            size += 1 + pb::CodedOutputStream.ComputeStringSize(Version);
          }
          if (IsDefault != false) {
            size += 1 + 1;
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(HiveMetastoreVersion other) {
          if (other == null) {
            return;
          }
          if (other.Version.Length != 0) {
            Version = other.Version;
          }
          if (other.IsDefault != false) {
            IsDefault = other.IsDefault;
          }
          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(pb::CodedInputStream input) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          input.ReadRawMessage(this);
        #else
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
            switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 10: {
                Version = input.ReadString();
                break;
              }
              case 16: {
                IsDefault = input.ReadBool();
                break;
              }
            }
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
            switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 10: {
                Version = input.ReadString();
                break;
              }
              case 16: {
                IsDefault = input.ReadBool();
                break;
              }
            }
          }
        }
        #endif

      }

    }
    #endregion

  }

  ///
  /// The specification of database dump to import from or export to.
  ///
  public sealed partial class DatabaseDumpSpec : pb::IMessage<DatabaseDumpSpec>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<DatabaseDumpSpec> _parser = new pb::MessageParser<DatabaseDumpSpec>(() => new DatabaseDumpSpec());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<DatabaseDumpSpec> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Google.Cloud.Metastore.V1.MetastoreReflection.Descriptor.MessageTypes[30]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DatabaseDumpSpec() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DatabaseDumpSpec(DatabaseDumpSpec other) : this() {
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DatabaseDumpSpec Clone() {
      return new DatabaseDumpSpec(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as DatabaseDumpSpec);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(DatabaseDumpSpec other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(DatabaseDumpSpec other) {
      if (other == null) {
        return;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
        }
      }
    }
    #endif

    #region Nested types
    /// Container for nested types declared in the DatabaseDumpSpec message type.
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static partial class Types {
      ///
      /// The type of the database dump.
      ///
      public enum Type {
        ///
        /// The type of the database dump is unknown.
        ///
        [pbr::OriginalName("TYPE_UNSPECIFIED")] Unspecified = 0,
        ///
        /// Database dump is a MySQL dump file.
        ///
        [pbr::OriginalName("MYSQL")] Mysql = 1,
        ///
        /// Database dump contains Avro files.
        ///
        [pbr::OriginalName("AVRO")] Avro = 2,
      }

    }
    #endregion

  }

  #endregion

}

#endregion Designer generated code