# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: metadata_file.proto
"""Generated protocol buffer code."""
from google.protobuf.internal import builder as _builder
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13metadata_file.proto\x12\rmetadata_file\"]\n\x08Metadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12.\n\x0bthird_party\x18\x03 \x01(\x0b\x32\x19.metadata_file.ThirdParty\"\xa8\x03\n\nThirdParty\x12\x1f\n\x03url\x18\x01 \x03(\x0b\x32\x12.metadata_file.URL\x12\x0f\n\x07version\x18\x02 \x01(\t\x12.\n\x11last_upgrade_date\x18\x03 \x01(\x0b\x32\x13.metadata_file.Date\x12\x30\n\x0clicense_type\x18\x04 \x01(\x0e\x32\x1a.metadata_file.LicenseType\x12\x14\n\x0clicense_note\x18\x05 \x01(\t\x12\x1b\n\x13local_modifications\x18\x06 \x01(\t\x12)\n\x08security\x18\x07 \x01(\x0b\x32\x17.metadata_file.Security\x12\x33\n\x04type\x18\x08 \x01(\x0e\x32\x1c.metadata_file.DirectoryType:\x07PACKAGE\x12\x10\n\x08homepage\x18\t \x01(\t\x12*\n\x08sbom_ref\x18\n \x01(\x0b\x32\x16.metadata_file.SBOMRefH\x00\x12-\n\nidentifier\x18\x0b \x03(\x0b\x32\x19.metadata_file.IdentifierB\x06\n\x04sbom\"\xab\x01\n\x03URL\x12%\n\x04type\x18\x01 \x01(\x0e\x32\x17.metadata_file.URL.Type\x12\r\n\x05value\x18\x02 \x01(\t\"n\n\x04Type\x12\x0c\n\x08HOMEPAGE\x10\x01\x12\x0b\n\x07\x41RCHIVE\x10\x02\x12\x07\n\x03GIT\x10\x03\x12\x07\n\x03SVN\x10\x04\x12\x06\n\x02HG\x10\x05\x12\t\n\x05\x44\x41RCS\x10\x06\x12\t\n\x05PIPER\x10\x07\x12\t\n\x05OTHER\x10\x08\x12\x10\n\x0cLOCAL_SOURCE\x10\t\"\xe5\x01\n\x08Security\x12\x32\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32 .metadata_file.Security.Category\x12\x0c\n\x04note\x18\x02 \x01(\t\x12\x0b\n\x03tag\x18\x03 \x03(\t\x12 \n\x18mitigated_security_patch\x18\x04 \x03(\t\"h\n\x08\x43\x61tegory\x12\x18\n\x14\x43\x41TEGORY_UNSPECIFIED\x10\x00\x12\x12\n\x0eSANDBOXED_ONLY\x10\x01\x12\x15\n\x11TRUSTED_DATA_ONLY\x10\x02\x12\x17\n\x13REVIEWED_AND_SECURE\x10\x03\"0\n\x04\x44\x61te\x12\x0c\n\x04year\x18\x01 \x01(\x05\x12\r\n\x05month\x18\x02 \x01(\x05\x12\x0b\n\x03\x64\x61y\x18\x03 \x01(\x05\"<\n\x07SBOMRef\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08\x63hecksum\x18\x02 \x01(\t\x12\x12\n\nelement_id\x18\x03 \x01(\t\"\x84\x01\n\nIdentifier\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x17\n\x0fomission_reason\x18\x02 \x01(\t\x12\r\n\x05value\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\t\x12\x17\n\x0f\x63losest_version\x18\x05 \x01(\t\x12\x16\n\x0eprimary_source\x18\x06 \x01(\x08*\x97\x01\n\x0bLicenseType\x12\x15\n\x11\x42Y_EXCEPTION_ONLY\x10\x01\x12\n\n\x06NOTICE\x10\x02\x12\x0e\n\nPERMISSIVE\x10\x03\x12\x0e\n\nRECIPROCAL\x10\x04\x12#\n\x1fRESTRICTED_IF_STATICALLY_LINKED\x10\x05\x12\x0e\n\nRESTRICTED\x10\x06\x12\x10\n\x0cUNENCUMBERED\x10\x07*D\n\rDirectoryType\x12\r\n\tUNDEFINED\x10\x00\x12\x0b\n\x07PACKAGE\x10\x01\x12\t\n\x05GROUP\x10\x02\x12\x0c\n\x08VERSIONS\x10\x03')

_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'metadata_file_pb2', globals())
if _descriptor._USE_C_DESCRIPTORS == False:

  DESCRIPTOR._options = None
  _LICENSETYPE._serialized_start=1214
  _LICENSETYPE._serialized_end=1365
  _DIRECTORYTYPE._serialized_start=1367
  _DIRECTORYTYPE._serialized_end=1435
  _METADATA._serialized_start=38
  _METADATA._serialized_end=131
  _THIRDPARTY._serialized_start=134
  _THIRDPARTY._serialized_end=558
  _URL._serialized_start=561
  _URL._serialized_end=732
  _URL_TYPE._serialized_start=622
  _URL_TYPE._serialized_end=732
  _SECURITY._serialized_start=735
  _SECURITY._serialized_end=964
  _SECURITY_CATEGORY._serialized_start=860
  _SECURITY_CATEGORY._serialized_end=964
  _DATE._serialized_start=966
  _DATE._serialized_end=1014
  _SBOMREF._serialized_start=1016
  _SBOMREF._serialized_end=1076
  _IDENTIFIER._serialized_start=1079
  _IDENTIFIER._serialized_end=1211
# @@protoc_insertion_point(module_scope)
