diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..a7fe1bea --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "cyclonedx"] + path = protos/cyclonedx + url = https://github.com/CycloneDX/specification diff --git a/go/predicates/cyclonedx/v1/bom.pb.go b/go/predicates/cyclonedx/v1/bom.pb.go new file mode 100644 index 00000000..c40c882c --- /dev/null +++ b/go/predicates/cyclonedx/v1/bom.pb.go @@ -0,0 +1,12329 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.24.4 +// source: cyclonedx/schema/bom-1.5.proto + +package v1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Classification int32 + +const ( + Classification_CLASSIFICATION_NULL Classification = 0 + // A software application. Refer to https://en.wikipedia.org/wiki/Application_software for information about applications. + Classification_CLASSIFICATION_APPLICATION Classification = 1 + // A software framework. Refer to https://en.wikipedia.org/wiki/Software_framework for information on how frameworks vary slightly from libraries. + Classification_CLASSIFICATION_FRAMEWORK Classification = 2 + // A software library. Refer to https://en.wikipedia.org/wiki/Library_(computing) for information about libraries. All third-party and open source reusable components will likely be a library. If the library also has key features of a framework, then it should be classified as a framework. If not, or is unknown, then specifying library is recommended. + Classification_CLASSIFICATION_LIBRARY Classification = 3 + // A software operating system without regard to deployment model (i.e. installed on physical hardware, virtual machine, image, etc) Refer to https://en.wikipedia.org/wiki/Operating_system + Classification_CLASSIFICATION_OPERATING_SYSTEM Classification = 4 + // A hardware device such as a processor, or chip-set. A hardware device containing firmware should include a component for the physical hardware itself, and another component of type 'firmware' or 'operating-system' (whichever is relevant), describing information about the software running on the device. See also the list of known device properties: https://github.com/CycloneDX/cyclonedx-property-taxonomy/blob/main/cdx/device.md + Classification_CLASSIFICATION_DEVICE Classification = 5 + // A computer file. Refer to https://en.wikipedia.org/wiki/Computer_file for information about files. + Classification_CLASSIFICATION_FILE Classification = 6 + // A packaging and/or runtime format, not specific to any particular technology, which isolates software inside the container from software outside of a container through virtualization technology. Refer to https://en.wikipedia.org/wiki/OS-level_virtualization + Classification_CLASSIFICATION_CONTAINER Classification = 7 + // A special type of software that provides low-level control over a devices hardware. Refer to https://en.wikipedia.org/wiki/Firmware + Classification_CLASSIFICATION_FIRMWARE Classification = 8 + // A special type of software that operates or controls a particular type of device. Refer to https://en.wikipedia.org/wiki/Device_driver + Classification_CLASSIFICATION_DEVICE_DRIVER Classification = 9 + // A runtime environment which interprets or executes software. This may include runtimes such as those that execute bytecode or low-code/no-code application platforms. + Classification_CLASSIFICATION_PLATFORM Classification = 10 + // A model based on training data that can make predictions or decisions without being explicitly programmed to do so. + Classification_CLASSIFICATION_MACHINE_LEARNING_MODEL Classification = 11 + // A collection of discrete values that convey information. + Classification_CLASSIFICATION_DATA Classification = 12 +) + +// Enum value maps for Classification. +var ( + Classification_name = map[int32]string{ + 0: "CLASSIFICATION_NULL", + 1: "CLASSIFICATION_APPLICATION", + 2: "CLASSIFICATION_FRAMEWORK", + 3: "CLASSIFICATION_LIBRARY", + 4: "CLASSIFICATION_OPERATING_SYSTEM", + 5: "CLASSIFICATION_DEVICE", + 6: "CLASSIFICATION_FILE", + 7: "CLASSIFICATION_CONTAINER", + 8: "CLASSIFICATION_FIRMWARE", + 9: "CLASSIFICATION_DEVICE_DRIVER", + 10: "CLASSIFICATION_PLATFORM", + 11: "CLASSIFICATION_MACHINE_LEARNING_MODEL", + 12: "CLASSIFICATION_DATA", + } + Classification_value = map[string]int32{ + "CLASSIFICATION_NULL": 0, + "CLASSIFICATION_APPLICATION": 1, + "CLASSIFICATION_FRAMEWORK": 2, + "CLASSIFICATION_LIBRARY": 3, + "CLASSIFICATION_OPERATING_SYSTEM": 4, + "CLASSIFICATION_DEVICE": 5, + "CLASSIFICATION_FILE": 6, + "CLASSIFICATION_CONTAINER": 7, + "CLASSIFICATION_FIRMWARE": 8, + "CLASSIFICATION_DEVICE_DRIVER": 9, + "CLASSIFICATION_PLATFORM": 10, + "CLASSIFICATION_MACHINE_LEARNING_MODEL": 11, + "CLASSIFICATION_DATA": 12, + } +) + +func (x Classification) Enum() *Classification { + p := new(Classification) + *p = x + return p +} + +func (x Classification) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Classification) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[0].Descriptor() +} + +func (Classification) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[0] +} + +func (x Classification) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Classification.Descriptor instead. +func (Classification) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{0} +} + +// Specifies the flow direction of the data. Valid values are: inbound, outbound, bi-directional, and unknown. Direction is relative to the service. Inbound flow states that data enters the service. Outbound flow states that data leaves the service. Bi-directional states that data flows both ways, and unknown states that the direction is not known. +type DataFlowDirection int32 + +const ( + DataFlowDirection_DATA_FLOW_NULL DataFlowDirection = 0 + DataFlowDirection_DATA_FLOW_INBOUND DataFlowDirection = 1 + DataFlowDirection_DATA_FLOW_OUTBOUND DataFlowDirection = 2 + DataFlowDirection_DATA_FLOW_BI_DIRECTIONAL DataFlowDirection = 3 + DataFlowDirection_DATA_FLOW_UNKNOWN DataFlowDirection = 4 +) + +// Enum value maps for DataFlowDirection. +var ( + DataFlowDirection_name = map[int32]string{ + 0: "DATA_FLOW_NULL", + 1: "DATA_FLOW_INBOUND", + 2: "DATA_FLOW_OUTBOUND", + 3: "DATA_FLOW_BI_DIRECTIONAL", + 4: "DATA_FLOW_UNKNOWN", + } + DataFlowDirection_value = map[string]int32{ + "DATA_FLOW_NULL": 0, + "DATA_FLOW_INBOUND": 1, + "DATA_FLOW_OUTBOUND": 2, + "DATA_FLOW_BI_DIRECTIONAL": 3, + "DATA_FLOW_UNKNOWN": 4, + } +) + +func (x DataFlowDirection) Enum() *DataFlowDirection { + p := new(DataFlowDirection) + *p = x + return p +} + +func (x DataFlowDirection) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DataFlowDirection) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[1].Descriptor() +} + +func (DataFlowDirection) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[1] +} + +func (x DataFlowDirection) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DataFlowDirection.Descriptor instead. +func (DataFlowDirection) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{1} +} + +type ExternalReferenceType int32 + +const ( + // Use this if no other types accurately describe the purpose of the external reference + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_OTHER ExternalReferenceType = 0 + // Version Control System + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_VCS ExternalReferenceType = 1 + // Issue or defect tracking system, or an Application Lifecycle Management (ALM) system + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_ISSUE_TRACKER ExternalReferenceType = 2 + // Website + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_WEBSITE ExternalReferenceType = 3 + // Security advisories + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_ADVISORIES ExternalReferenceType = 4 + // Bill-of-material document (CycloneDX, SPDX, SWID, etc) + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_BOM ExternalReferenceType = 5 + // Mailing list or discussion group + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_MAILING_LIST ExternalReferenceType = 6 + // Social media account + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_SOCIAL ExternalReferenceType = 7 + // Real-time chat platform + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_CHAT ExternalReferenceType = 8 + // Documentation, guides, or how-to instructions + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_DOCUMENTATION ExternalReferenceType = 9 + // Community or commercial support + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_SUPPORT ExternalReferenceType = 10 + // Direct or repository download location + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_DISTRIBUTION ExternalReferenceType = 11 + // The URL to the license file. If a license URL has been defined in the license node, it should also be defined as an external reference for completeness + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_LICENSE ExternalReferenceType = 12 + // Build-system specific meta file (i.e. pom.xml, package.json, .nuspec, etc) + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_BUILD_META ExternalReferenceType = 13 + // URL to an automated build system + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_BUILD_SYSTEM ExternalReferenceType = 14 + // Specifies a way to contact the maintainer, supplier, or provider in the event of a security incident. Common URIs include links to a disclosure procedure, a mailto (RFC-2368) that specifies an email address, a tel (RFC-3966) that specifies a phone number, or dns (RFC-4501]) that specifies the records containing DNS Security TXT. + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_SECURITY_CONTACT ExternalReferenceType = 15 + // Human or machine-readable statements containing facts, evidence, or testimony + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_ATTESTATION ExternalReferenceType = 16 + // An enumeration of identified weaknesses, threats, and countermeasures, dataflow diagram (DFD), attack tree, and other supporting documentation in human-readable or machine-readable format + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_THREAT_MODEL ExternalReferenceType = 17 + // The defined assumptions, goals, and capabilities of an adversary. + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_ADVERSARY_MODEL ExternalReferenceType = 18 + // Identifies and analyzes the potential of future events that may negatively impact individuals, assets, and/or the environment. Risk assessments may also include judgments on the tolerability of each risk. + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_RISK_ASSESSMENT ExternalReferenceType = 19 + // The location where a component was published to. This is often the same as "distribution" but may also include specialized publishing processes that act as an intermediary + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_DISTRIBUTION_INTAKE ExternalReferenceType = 20 + // A Vulnerability Disclosure Report (VDR) which asserts the known and previously unknown vulnerabilities that affect a component, service, or product including the analysis and findings describing the impact (or lack of impact) that the reported vulnerability has on a component, service, or product + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_VULNERABILITY_ASSERTION ExternalReferenceType = 21 + // A Vulnerability Exploitability eXchange (VEX) which asserts the known vulnerabilities that do not affect a product, product family, or organization, and optionally the ones that do. The VEX should include the analysis and findings describing the impact (or lack of impact) that the reported vulnerability has on the product, product family, or organization + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_EXPLOITABILITY_STATEMENT ExternalReferenceType = 22 + // Results from an authorized simulated cyberattack on a component or service, otherwise known as a penetration test + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_PENTEST_REPORT ExternalReferenceType = 23 + // SARIF or proprietary machine or human-readable report for which static analysis has identified code quality, security, and other potential issues with the source code + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_STATIC_ANALYSIS_REPORT ExternalReferenceType = 24 + // Dynamic analysis report that has identified issues such as vulnerabilities and misconfigurations + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_DYNAMIC_ANALYSIS_REPORT ExternalReferenceType = 25 + // Report generated by analyzing the call stack of a running application + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_RUNTIME_ANALYSIS_REPORT ExternalReferenceType = 26 + // Report generated by Software Composition Analysis (SCA), container analysis, or other forms of component analysis + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_COMPONENT_ANALYSIS_REPORT ExternalReferenceType = 27 + // Report containing a formal assessment of an organization, business unit, or team against a maturity model + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_MATURITY_REPORT ExternalReferenceType = 28 + // Industry, regulatory, or other certification from an accredited (if applicable) certification body + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_CERTIFICATION_REPORT ExternalReferenceType = 29 + // Report or system in which quality metrics can be obtained + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_QUALITY_METRICS ExternalReferenceType = 30 + // Code or configuration that defines and provisions virtualized infrastructure, commonly referred to as Infrastructure as Code (IaC) + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_CODIFIED_INFRASTRUCTURE ExternalReferenceType = 31 + // A model card describes the intended uses of a machine learning model, potential limitations, biases, ethical considerations, training parameters, datasets used to train the model, performance metrics, and other relevant data useful for ML transparency. + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_MODEL_CARD ExternalReferenceType = 32 + // Plans of Action and Milestones (POAM) compliment an "attestation" external reference. POAM is defined by NIST as a "document that identifies tasks needing to be accomplished. It details resources required to accomplish the elements of the plan, any milestones in meeting the tasks and scheduled completion dates for the milestones". + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_POAM ExternalReferenceType = 33 + // A record of events that occurred in a computer system or application, such as problems, errors, or information on current operations. + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_LOG ExternalReferenceType = 34 + // Parameters or settings that may be used by other components or services. + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_CONFIGURATION ExternalReferenceType = 35 + // Information used to substantiate a claim. + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_EVIDENCE ExternalReferenceType = 36 + // Describes how a component or service was manufactured or deployed. + ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_FORMULATION ExternalReferenceType = 37 +) + +// Enum value maps for ExternalReferenceType. +var ( + ExternalReferenceType_name = map[int32]string{ + 0: "EXTERNAL_REFERENCE_TYPE_OTHER", + 1: "EXTERNAL_REFERENCE_TYPE_VCS", + 2: "EXTERNAL_REFERENCE_TYPE_ISSUE_TRACKER", + 3: "EXTERNAL_REFERENCE_TYPE_WEBSITE", + 4: "EXTERNAL_REFERENCE_TYPE_ADVISORIES", + 5: "EXTERNAL_REFERENCE_TYPE_BOM", + 6: "EXTERNAL_REFERENCE_TYPE_MAILING_LIST", + 7: "EXTERNAL_REFERENCE_TYPE_SOCIAL", + 8: "EXTERNAL_REFERENCE_TYPE_CHAT", + 9: "EXTERNAL_REFERENCE_TYPE_DOCUMENTATION", + 10: "EXTERNAL_REFERENCE_TYPE_SUPPORT", + 11: "EXTERNAL_REFERENCE_TYPE_DISTRIBUTION", + 12: "EXTERNAL_REFERENCE_TYPE_LICENSE", + 13: "EXTERNAL_REFERENCE_TYPE_BUILD_META", + 14: "EXTERNAL_REFERENCE_TYPE_BUILD_SYSTEM", + 15: "EXTERNAL_REFERENCE_TYPE_SECURITY_CONTACT", + 16: "EXTERNAL_REFERENCE_TYPE_ATTESTATION", + 17: "EXTERNAL_REFERENCE_TYPE_THREAT_MODEL", + 18: "EXTERNAL_REFERENCE_TYPE_ADVERSARY_MODEL", + 19: "EXTERNAL_REFERENCE_TYPE_RISK_ASSESSMENT", + 20: "EXTERNAL_REFERENCE_TYPE_DISTRIBUTION_INTAKE", + 21: "EXTERNAL_REFERENCE_TYPE_VULNERABILITY_ASSERTION", + 22: "EXTERNAL_REFERENCE_TYPE_EXPLOITABILITY_STATEMENT", + 23: "EXTERNAL_REFERENCE_TYPE_PENTEST_REPORT", + 24: "EXTERNAL_REFERENCE_TYPE_STATIC_ANALYSIS_REPORT", + 25: "EXTERNAL_REFERENCE_TYPE_DYNAMIC_ANALYSIS_REPORT", + 26: "EXTERNAL_REFERENCE_TYPE_RUNTIME_ANALYSIS_REPORT", + 27: "EXTERNAL_REFERENCE_TYPE_COMPONENT_ANALYSIS_REPORT", + 28: "EXTERNAL_REFERENCE_TYPE_MATURITY_REPORT", + 29: "EXTERNAL_REFERENCE_TYPE_CERTIFICATION_REPORT", + 30: "EXTERNAL_REFERENCE_TYPE_QUALITY_METRICS", + 31: "EXTERNAL_REFERENCE_TYPE_CODIFIED_INFRASTRUCTURE", + 32: "EXTERNAL_REFERENCE_TYPE_MODEL_CARD", + 33: "EXTERNAL_REFERENCE_TYPE_POAM", + 34: "EXTERNAL_REFERENCE_TYPE_LOG", + 35: "EXTERNAL_REFERENCE_TYPE_CONFIGURATION", + 36: "EXTERNAL_REFERENCE_TYPE_EVIDENCE", + 37: "EXTERNAL_REFERENCE_TYPE_FORMULATION", + } + ExternalReferenceType_value = map[string]int32{ + "EXTERNAL_REFERENCE_TYPE_OTHER": 0, + "EXTERNAL_REFERENCE_TYPE_VCS": 1, + "EXTERNAL_REFERENCE_TYPE_ISSUE_TRACKER": 2, + "EXTERNAL_REFERENCE_TYPE_WEBSITE": 3, + "EXTERNAL_REFERENCE_TYPE_ADVISORIES": 4, + "EXTERNAL_REFERENCE_TYPE_BOM": 5, + "EXTERNAL_REFERENCE_TYPE_MAILING_LIST": 6, + "EXTERNAL_REFERENCE_TYPE_SOCIAL": 7, + "EXTERNAL_REFERENCE_TYPE_CHAT": 8, + "EXTERNAL_REFERENCE_TYPE_DOCUMENTATION": 9, + "EXTERNAL_REFERENCE_TYPE_SUPPORT": 10, + "EXTERNAL_REFERENCE_TYPE_DISTRIBUTION": 11, + "EXTERNAL_REFERENCE_TYPE_LICENSE": 12, + "EXTERNAL_REFERENCE_TYPE_BUILD_META": 13, + "EXTERNAL_REFERENCE_TYPE_BUILD_SYSTEM": 14, + "EXTERNAL_REFERENCE_TYPE_SECURITY_CONTACT": 15, + "EXTERNAL_REFERENCE_TYPE_ATTESTATION": 16, + "EXTERNAL_REFERENCE_TYPE_THREAT_MODEL": 17, + "EXTERNAL_REFERENCE_TYPE_ADVERSARY_MODEL": 18, + "EXTERNAL_REFERENCE_TYPE_RISK_ASSESSMENT": 19, + "EXTERNAL_REFERENCE_TYPE_DISTRIBUTION_INTAKE": 20, + "EXTERNAL_REFERENCE_TYPE_VULNERABILITY_ASSERTION": 21, + "EXTERNAL_REFERENCE_TYPE_EXPLOITABILITY_STATEMENT": 22, + "EXTERNAL_REFERENCE_TYPE_PENTEST_REPORT": 23, + "EXTERNAL_REFERENCE_TYPE_STATIC_ANALYSIS_REPORT": 24, + "EXTERNAL_REFERENCE_TYPE_DYNAMIC_ANALYSIS_REPORT": 25, + "EXTERNAL_REFERENCE_TYPE_RUNTIME_ANALYSIS_REPORT": 26, + "EXTERNAL_REFERENCE_TYPE_COMPONENT_ANALYSIS_REPORT": 27, + "EXTERNAL_REFERENCE_TYPE_MATURITY_REPORT": 28, + "EXTERNAL_REFERENCE_TYPE_CERTIFICATION_REPORT": 29, + "EXTERNAL_REFERENCE_TYPE_QUALITY_METRICS": 30, + "EXTERNAL_REFERENCE_TYPE_CODIFIED_INFRASTRUCTURE": 31, + "EXTERNAL_REFERENCE_TYPE_MODEL_CARD": 32, + "EXTERNAL_REFERENCE_TYPE_POAM": 33, + "EXTERNAL_REFERENCE_TYPE_LOG": 34, + "EXTERNAL_REFERENCE_TYPE_CONFIGURATION": 35, + "EXTERNAL_REFERENCE_TYPE_EVIDENCE": 36, + "EXTERNAL_REFERENCE_TYPE_FORMULATION": 37, + } +) + +func (x ExternalReferenceType) Enum() *ExternalReferenceType { + p := new(ExternalReferenceType) + *p = x + return p +} + +func (x ExternalReferenceType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ExternalReferenceType) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[2].Descriptor() +} + +func (ExternalReferenceType) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[2] +} + +func (x ExternalReferenceType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ExternalReferenceType.Descriptor instead. +func (ExternalReferenceType) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{2} +} + +type HashAlg int32 + +const ( + HashAlg_HASH_ALG_NULL HashAlg = 0 + HashAlg_HASH_ALG_MD_5 HashAlg = 1 + HashAlg_HASH_ALG_SHA_1 HashAlg = 2 + HashAlg_HASH_ALG_SHA_256 HashAlg = 3 + HashAlg_HASH_ALG_SHA_384 HashAlg = 4 + HashAlg_HASH_ALG_SHA_512 HashAlg = 5 + HashAlg_HASH_ALG_SHA_3_256 HashAlg = 6 + HashAlg_HASH_ALG_SHA_3_384 HashAlg = 7 + HashAlg_HASH_ALG_SHA_3_512 HashAlg = 8 + HashAlg_HASH_ALG_BLAKE_2_B_256 HashAlg = 9 + HashAlg_HASH_ALG_BLAKE_2_B_384 HashAlg = 10 + HashAlg_HASH_ALG_BLAKE_2_B_512 HashAlg = 11 + HashAlg_HASH_ALG_BLAKE_3 HashAlg = 12 +) + +// Enum value maps for HashAlg. +var ( + HashAlg_name = map[int32]string{ + 0: "HASH_ALG_NULL", + 1: "HASH_ALG_MD_5", + 2: "HASH_ALG_SHA_1", + 3: "HASH_ALG_SHA_256", + 4: "HASH_ALG_SHA_384", + 5: "HASH_ALG_SHA_512", + 6: "HASH_ALG_SHA_3_256", + 7: "HASH_ALG_SHA_3_384", + 8: "HASH_ALG_SHA_3_512", + 9: "HASH_ALG_BLAKE_2_B_256", + 10: "HASH_ALG_BLAKE_2_B_384", + 11: "HASH_ALG_BLAKE_2_B_512", + 12: "HASH_ALG_BLAKE_3", + } + HashAlg_value = map[string]int32{ + "HASH_ALG_NULL": 0, + "HASH_ALG_MD_5": 1, + "HASH_ALG_SHA_1": 2, + "HASH_ALG_SHA_256": 3, + "HASH_ALG_SHA_384": 4, + "HASH_ALG_SHA_512": 5, + "HASH_ALG_SHA_3_256": 6, + "HASH_ALG_SHA_3_384": 7, + "HASH_ALG_SHA_3_512": 8, + "HASH_ALG_BLAKE_2_B_256": 9, + "HASH_ALG_BLAKE_2_B_384": 10, + "HASH_ALG_BLAKE_2_B_512": 11, + "HASH_ALG_BLAKE_3": 12, + } +) + +func (x HashAlg) Enum() *HashAlg { + p := new(HashAlg) + *p = x + return p +} + +func (x HashAlg) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (HashAlg) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[3].Descriptor() +} + +func (HashAlg) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[3] +} + +func (x HashAlg) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use HashAlg.Descriptor instead. +func (HashAlg) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{3} +} + +type IssueClassification int32 + +const ( + IssueClassification_ISSUE_CLASSIFICATION_NULL IssueClassification = 0 + // A fault, flaw, or bug in software + IssueClassification_ISSUE_CLASSIFICATION_DEFECT IssueClassification = 1 + // A new feature or behavior in software + IssueClassification_ISSUE_CLASSIFICATION_ENHANCEMENT IssueClassification = 2 + // A special type of defect which impacts security + IssueClassification_ISSUE_CLASSIFICATION_SECURITY IssueClassification = 3 +) + +// Enum value maps for IssueClassification. +var ( + IssueClassification_name = map[int32]string{ + 0: "ISSUE_CLASSIFICATION_NULL", + 1: "ISSUE_CLASSIFICATION_DEFECT", + 2: "ISSUE_CLASSIFICATION_ENHANCEMENT", + 3: "ISSUE_CLASSIFICATION_SECURITY", + } + IssueClassification_value = map[string]int32{ + "ISSUE_CLASSIFICATION_NULL": 0, + "ISSUE_CLASSIFICATION_DEFECT": 1, + "ISSUE_CLASSIFICATION_ENHANCEMENT": 2, + "ISSUE_CLASSIFICATION_SECURITY": 3, + } +) + +func (x IssueClassification) Enum() *IssueClassification { + p := new(IssueClassification) + *p = x + return p +} + +func (x IssueClassification) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IssueClassification) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[4].Descriptor() +} + +func (IssueClassification) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[4] +} + +func (x IssueClassification) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IssueClassification.Descriptor instead. +func (IssueClassification) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{4} +} + +type LicensingTypeEnum int32 + +const ( + LicensingTypeEnum_LICENSING_TYPE_NULL LicensingTypeEnum = 0 + // A license that grants use of software solely for the purpose of education or research. + LicensingTypeEnum_LICENSING_TYPE_ACADEMIC LicensingTypeEnum = 1 + // A license covering use of software embedded in a specific piece of hardware. + LicensingTypeEnum_LICENSING_TYPE_APPLIANCE LicensingTypeEnum = 2 + // A Client Access License (CAL) allows client computers to access services provided by server software. + LicensingTypeEnum_LICENSING_TYPE_CLIENT_ACCESS LicensingTypeEnum = 3 + // A Concurrent User license (aka floating license) limits the number of licenses for a software application and licenses are shared among a larger number of users. + LicensingTypeEnum_LICENSING_TYPE_CONCURRENT_USER LicensingTypeEnum = 4 + // A license where the core of a computer's processor is assigned a specific number of points. + LicensingTypeEnum_LICENSING_TYPE_CORE_POINTS LicensingTypeEnum = 5 + // A license for which consumption is measured by non-standard metrics. + LicensingTypeEnum_LICENSING_TYPE_CUSTOM_METRIC LicensingTypeEnum = 6 + // A license that covers a defined number of installations on computers and other types of devices. + LicensingTypeEnum_LICENSING_TYPE_DEVICE LicensingTypeEnum = 7 + // A license that grants permission to install and use software for trial purposes. + LicensingTypeEnum_LICENSING_TYPE_EVALUATION LicensingTypeEnum = 8 + // A license that grants access to the software to one or more pre-defined users. + LicensingTypeEnum_LICENSING_TYPE_NAMED_USER LicensingTypeEnum = 9 + // A license that grants access to the software on one or more pre-defined computers or devices. + LicensingTypeEnum_LICENSING_TYPE_NODE_LOCKED LicensingTypeEnum = 10 + // An Original Equipment Manufacturer license that is delivered with hardware, cannot be transferred to other hardware, and is valid for the life of the hardware. + LicensingTypeEnum_LICENSING_TYPE_OEM LicensingTypeEnum = 11 + // A license where the software is sold on a one-time basis and the licensee can use a copy of the software indefinitely. + LicensingTypeEnum_LICENSING_TYPE_PERPETUAL LicensingTypeEnum = 12 + // A license where each installation consumes points per processor. + LicensingTypeEnum_LICENSING_TYPE_PROCESSOR_POINTS LicensingTypeEnum = 13 + // A license where the licensee pays a fee to use the software or service. + LicensingTypeEnum_LICENSING_TYPE_SUBSCRIPTION LicensingTypeEnum = 14 + // A license that grants access to the software or service by a specified number of users. + LicensingTypeEnum_LICENSING_TYPE_USER LicensingTypeEnum = 15 + // Another license type. + LicensingTypeEnum_LICENSING_TYPE_OTHER LicensingTypeEnum = 16 +) + +// Enum value maps for LicensingTypeEnum. +var ( + LicensingTypeEnum_name = map[int32]string{ + 0: "LICENSING_TYPE_NULL", + 1: "LICENSING_TYPE_ACADEMIC", + 2: "LICENSING_TYPE_APPLIANCE", + 3: "LICENSING_TYPE_CLIENT_ACCESS", + 4: "LICENSING_TYPE_CONCURRENT_USER", + 5: "LICENSING_TYPE_CORE_POINTS", + 6: "LICENSING_TYPE_CUSTOM_METRIC", + 7: "LICENSING_TYPE_DEVICE", + 8: "LICENSING_TYPE_EVALUATION", + 9: "LICENSING_TYPE_NAMED_USER", + 10: "LICENSING_TYPE_NODE_LOCKED", + 11: "LICENSING_TYPE_OEM", + 12: "LICENSING_TYPE_PERPETUAL", + 13: "LICENSING_TYPE_PROCESSOR_POINTS", + 14: "LICENSING_TYPE_SUBSCRIPTION", + 15: "LICENSING_TYPE_USER", + 16: "LICENSING_TYPE_OTHER", + } + LicensingTypeEnum_value = map[string]int32{ + "LICENSING_TYPE_NULL": 0, + "LICENSING_TYPE_ACADEMIC": 1, + "LICENSING_TYPE_APPLIANCE": 2, + "LICENSING_TYPE_CLIENT_ACCESS": 3, + "LICENSING_TYPE_CONCURRENT_USER": 4, + "LICENSING_TYPE_CORE_POINTS": 5, + "LICENSING_TYPE_CUSTOM_METRIC": 6, + "LICENSING_TYPE_DEVICE": 7, + "LICENSING_TYPE_EVALUATION": 8, + "LICENSING_TYPE_NAMED_USER": 9, + "LICENSING_TYPE_NODE_LOCKED": 10, + "LICENSING_TYPE_OEM": 11, + "LICENSING_TYPE_PERPETUAL": 12, + "LICENSING_TYPE_PROCESSOR_POINTS": 13, + "LICENSING_TYPE_SUBSCRIPTION": 14, + "LICENSING_TYPE_USER": 15, + "LICENSING_TYPE_OTHER": 16, + } +) + +func (x LicensingTypeEnum) Enum() *LicensingTypeEnum { + p := new(LicensingTypeEnum) + *p = x + return p +} + +func (x LicensingTypeEnum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LicensingTypeEnum) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[5].Descriptor() +} + +func (LicensingTypeEnum) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[5] +} + +func (x LicensingTypeEnum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LicensingTypeEnum.Descriptor instead. +func (LicensingTypeEnum) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{5} +} + +type LifecyclePhase int32 + +const ( + // BOM produced early in the development lifecycle containing inventory of components and services that are proposed or planned to be used. The inventory may need to be procured, retrieved, or resourced prior to use. + LifecyclePhase_LIFECYCLE_PHASE_DESIGN LifecyclePhase = 0 + // BOM consisting of information obtained prior to a build process and may contain source files and development artifacts and manifests. The inventory may need to be resolved and retrieved prior to use. + LifecyclePhase_LIFECYCLE_PHASE_PRE_BUILD LifecyclePhase = 1 + // BOM consisting of information obtained during a build process where component inventory is available for use. The precise versions of resolved components are usually available at this time as well as the provenance of where the components were retrieved from. + LifecyclePhase_LIFECYCLE_PHASE_BUILD LifecyclePhase = 2 + // BOM consisting of information obtained after a build process has completed and the resulting components(s) are available for further analysis. Built components may exist as the result of a CI/CD process, may have been installed or deployed to a system or device, and may need to be retrieved or extracted from the system or device. + LifecyclePhase_LIFECYCLE_PHASE_POST_BUILD LifecyclePhase = 3 + // BOM produced that represents inventory that is running and operational. This may include staging or production environments and will generally encompass multiple SBOMs describing the applications and operating system, along with HBOMs describing the hardware that makes up the system. Operations Bill of Materials (OBOM) can provide full-stack inventory of runtime environments, configurations, and additional dependencies. + LifecyclePhase_LIFECYCLE_PHASE_OPERATIONS LifecyclePhase = 4 + // BOM consisting of information observed through network discovery providing point-in-time enumeration of embedded, on-premise, and cloud-native services such as server applications, connected devices, microservices, and serverless functions. + LifecyclePhase_LIFECYCLE_PHASE_DISCOVERY LifecyclePhase = 5 + // BOM containing inventory that will be, or has been retired from operations. + LifecyclePhase_LIFECYCLE_PHASE_DECOMMISSION LifecyclePhase = 6 +) + +// Enum value maps for LifecyclePhase. +var ( + LifecyclePhase_name = map[int32]string{ + 0: "LIFECYCLE_PHASE_DESIGN", + 1: "LIFECYCLE_PHASE_PRE_BUILD", + 2: "LIFECYCLE_PHASE_BUILD", + 3: "LIFECYCLE_PHASE_POST_BUILD", + 4: "LIFECYCLE_PHASE_OPERATIONS", + 5: "LIFECYCLE_PHASE_DISCOVERY", + 6: "LIFECYCLE_PHASE_DECOMMISSION", + } + LifecyclePhase_value = map[string]int32{ + "LIFECYCLE_PHASE_DESIGN": 0, + "LIFECYCLE_PHASE_PRE_BUILD": 1, + "LIFECYCLE_PHASE_BUILD": 2, + "LIFECYCLE_PHASE_POST_BUILD": 3, + "LIFECYCLE_PHASE_OPERATIONS": 4, + "LIFECYCLE_PHASE_DISCOVERY": 5, + "LIFECYCLE_PHASE_DECOMMISSION": 6, + } +) + +func (x LifecyclePhase) Enum() *LifecyclePhase { + p := new(LifecyclePhase) + *p = x + return p +} + +func (x LifecyclePhase) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LifecyclePhase) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[6].Descriptor() +} + +func (LifecyclePhase) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[6] +} + +func (x LifecyclePhase) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LifecyclePhase.Descriptor instead. +func (LifecyclePhase) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{6} +} + +type PatchClassification int32 + +const ( + PatchClassification_PATCH_CLASSIFICATION_NULL PatchClassification = 0 + // A patch which is not developed by the creators or maintainers of the software being patched. Refer to https://en.wikipedia.org/wiki/Unofficial_patch + PatchClassification_PATCH_CLASSIFICATION_UNOFFICIAL PatchClassification = 1 + // A patch which dynamically modifies runtime behavior. Refer to https://en.wikipedia.org/wiki/Monkey_patch + PatchClassification_PATCH_CLASSIFICATION_MONKEY PatchClassification = 2 + // A patch which takes code from a newer version of software and applies it to older versions of the same software. Refer to https://en.wikipedia.org/wiki/Backporting + PatchClassification_PATCH_CLASSIFICATION_BACKPORT PatchClassification = 3 + // A patch created by selectively applying commits from other versions or branches of the same software. + PatchClassification_PATCH_CLASSIFICATION_CHERRY_PICK PatchClassification = 4 +) + +// Enum value maps for PatchClassification. +var ( + PatchClassification_name = map[int32]string{ + 0: "PATCH_CLASSIFICATION_NULL", + 1: "PATCH_CLASSIFICATION_UNOFFICIAL", + 2: "PATCH_CLASSIFICATION_MONKEY", + 3: "PATCH_CLASSIFICATION_BACKPORT", + 4: "PATCH_CLASSIFICATION_CHERRY_PICK", + } + PatchClassification_value = map[string]int32{ + "PATCH_CLASSIFICATION_NULL": 0, + "PATCH_CLASSIFICATION_UNOFFICIAL": 1, + "PATCH_CLASSIFICATION_MONKEY": 2, + "PATCH_CLASSIFICATION_BACKPORT": 3, + "PATCH_CLASSIFICATION_CHERRY_PICK": 4, + } +) + +func (x PatchClassification) Enum() *PatchClassification { + p := new(PatchClassification) + *p = x + return p +} + +func (x PatchClassification) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PatchClassification) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[7].Descriptor() +} + +func (PatchClassification) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[7] +} + +func (x PatchClassification) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PatchClassification.Descriptor instead. +func (PatchClassification) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{7} +} + +type Scope int32 + +const ( + // Default + Scope_SCOPE_UNSPECIFIED Scope = 0 + // The component is required for runtime + Scope_SCOPE_REQUIRED Scope = 1 + // The component is optional at runtime. Optional components are components that are not capable of being called due to them not be installed or otherwise accessible by any means. Components that are installed but due to configuration or other restrictions are prohibited from being called must be scoped as 'required'. + Scope_SCOPE_OPTIONAL Scope = 2 + // Components that are excluded provide the ability to document component usage for test and other non-runtime purposes. Excluded components are not reachable within a call graph at runtime. + Scope_SCOPE_EXCLUDED Scope = 3 +) + +// Enum value maps for Scope. +var ( + Scope_name = map[int32]string{ + 0: "SCOPE_UNSPECIFIED", + 1: "SCOPE_REQUIRED", + 2: "SCOPE_OPTIONAL", + 3: "SCOPE_EXCLUDED", + } + Scope_value = map[string]int32{ + "SCOPE_UNSPECIFIED": 0, + "SCOPE_REQUIRED": 1, + "SCOPE_OPTIONAL": 2, + "SCOPE_EXCLUDED": 3, + } +) + +func (x Scope) Enum() *Scope { + p := new(Scope) + *p = x + return p +} + +func (x Scope) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Scope) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[8].Descriptor() +} + +func (Scope) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[8] +} + +func (x Scope) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Scope.Descriptor instead. +func (Scope) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{8} +} + +type Aggregate int32 + +const ( + // The relationship completeness is not specified. + Aggregate_AGGREGATE_NOT_SPECIFIED Aggregate = 0 + // The relationship is complete. No further relationships including constituent components, services, or dependencies are known to exist. + Aggregate_AGGREGATE_COMPLETE Aggregate = 1 + // The relationship is incomplete. Additional relationships exist and may include constituent components, services, or dependencies. + Aggregate_AGGREGATE_INCOMPLETE Aggregate = 2 + // The relationship is incomplete. Only relationships for first-party components, services, or their dependencies are represented. + Aggregate_AGGREGATE_INCOMPLETE_FIRST_PARTY_ONLY Aggregate = 3 + // The relationship is incomplete. Only relationships for third-party components, services, or their dependencies are represented. + Aggregate_AGGREGATE_INCOMPLETE_THIRD_PARTY_ONLY Aggregate = 4 + // The relationship may be complete or incomplete. This usually signifies a 'best-effort' to obtain constituent components, services, or dependencies but the completeness is inconclusive. + Aggregate_AGGREGATE_UNKNOWN Aggregate = 5 + // The relationship is incomplete. Only relationships for first-party components, services, or their dependencies are represented, limited specifically to those that are proprietary. + Aggregate_AGGREGATE_INCOMPLETE_FIRST_PARTY_PROPRIETARY_ONLY Aggregate = 6 + // The relationship is incomplete. Only relationships for first-party components, services, or their dependencies are represented, limited specifically to those that are opensource. + Aggregate_AGGREGATE_INCOMPLETE_FIRST_PARTY_OPENSOURCE_ONLY Aggregate = 7 + // The relationship is incomplete. Only relationships for third-party components, services, or their dependencies are represented, limited specifically to those that are proprietary. + Aggregate_AGGREGATE_INCOMPLETE_THIRD_PARTY_PROPRIETARY_ONLY Aggregate = 8 + // The relationship is incomplete. Only relationships for third-party components, services, or their dependencies are represented, limited specifically to those that are opensource. + Aggregate_AGGREGATE_INCOMPLETE_THIRD_PARTY_OPENSOURCE_ONLY Aggregate = 9 +) + +// Enum value maps for Aggregate. +var ( + Aggregate_name = map[int32]string{ + 0: "AGGREGATE_NOT_SPECIFIED", + 1: "AGGREGATE_COMPLETE", + 2: "AGGREGATE_INCOMPLETE", + 3: "AGGREGATE_INCOMPLETE_FIRST_PARTY_ONLY", + 4: "AGGREGATE_INCOMPLETE_THIRD_PARTY_ONLY", + 5: "AGGREGATE_UNKNOWN", + 6: "AGGREGATE_INCOMPLETE_FIRST_PARTY_PROPRIETARY_ONLY", + 7: "AGGREGATE_INCOMPLETE_FIRST_PARTY_OPENSOURCE_ONLY", + 8: "AGGREGATE_INCOMPLETE_THIRD_PARTY_PROPRIETARY_ONLY", + 9: "AGGREGATE_INCOMPLETE_THIRD_PARTY_OPENSOURCE_ONLY", + } + Aggregate_value = map[string]int32{ + "AGGREGATE_NOT_SPECIFIED": 0, + "AGGREGATE_COMPLETE": 1, + "AGGREGATE_INCOMPLETE": 2, + "AGGREGATE_INCOMPLETE_FIRST_PARTY_ONLY": 3, + "AGGREGATE_INCOMPLETE_THIRD_PARTY_ONLY": 4, + "AGGREGATE_UNKNOWN": 5, + "AGGREGATE_INCOMPLETE_FIRST_PARTY_PROPRIETARY_ONLY": 6, + "AGGREGATE_INCOMPLETE_FIRST_PARTY_OPENSOURCE_ONLY": 7, + "AGGREGATE_INCOMPLETE_THIRD_PARTY_PROPRIETARY_ONLY": 8, + "AGGREGATE_INCOMPLETE_THIRD_PARTY_OPENSOURCE_ONLY": 9, + } +) + +func (x Aggregate) Enum() *Aggregate { + p := new(Aggregate) + *p = x + return p +} + +func (x Aggregate) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Aggregate) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[9].Descriptor() +} + +func (Aggregate) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[9] +} + +func (x Aggregate) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Aggregate.Descriptor instead. +func (Aggregate) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{9} +} + +type EvidenceFieldType int32 + +const ( + EvidenceFieldType_EVIDENCE_FIELD_NULL EvidenceFieldType = 0 + EvidenceFieldType_EVIDENCE_FIELD_GROUP EvidenceFieldType = 1 + EvidenceFieldType_EVIDENCE_FIELD_NAME EvidenceFieldType = 2 + EvidenceFieldType_EVIDENCE_FIELD_VERSION EvidenceFieldType = 3 + EvidenceFieldType_EVIDENCE_FIELD_PURL EvidenceFieldType = 4 + EvidenceFieldType_EVIDENCE_FIELD_CPE EvidenceFieldType = 5 + EvidenceFieldType_EVIDENCE_FIELD_SWID EvidenceFieldType = 6 + EvidenceFieldType_EVIDENCE_FIELD_HASH EvidenceFieldType = 7 +) + +// Enum value maps for EvidenceFieldType. +var ( + EvidenceFieldType_name = map[int32]string{ + 0: "EVIDENCE_FIELD_NULL", + 1: "EVIDENCE_FIELD_GROUP", + 2: "EVIDENCE_FIELD_NAME", + 3: "EVIDENCE_FIELD_VERSION", + 4: "EVIDENCE_FIELD_PURL", + 5: "EVIDENCE_FIELD_CPE", + 6: "EVIDENCE_FIELD_SWID", + 7: "EVIDENCE_FIELD_HASH", + } + EvidenceFieldType_value = map[string]int32{ + "EVIDENCE_FIELD_NULL": 0, + "EVIDENCE_FIELD_GROUP": 1, + "EVIDENCE_FIELD_NAME": 2, + "EVIDENCE_FIELD_VERSION": 3, + "EVIDENCE_FIELD_PURL": 4, + "EVIDENCE_FIELD_CPE": 5, + "EVIDENCE_FIELD_SWID": 6, + "EVIDENCE_FIELD_HASH": 7, + } +) + +func (x EvidenceFieldType) Enum() *EvidenceFieldType { + p := new(EvidenceFieldType) + *p = x + return p +} + +func (x EvidenceFieldType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (EvidenceFieldType) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[10].Descriptor() +} + +func (EvidenceFieldType) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[10] +} + +func (x EvidenceFieldType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use EvidenceFieldType.Descriptor instead. +func (EvidenceFieldType) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{10} +} + +type EvidenceTechnique int32 + +const ( + EvidenceTechnique_EVIDENCE_TECHNIQUE_SOURCE_CODE_ANALYSIS EvidenceTechnique = 0 + EvidenceTechnique_EVIDENCE_TECHNIQUE_BINARY_ANALYSIS EvidenceTechnique = 1 + EvidenceTechnique_EVIDENCE_TECHNIQUE_MANIFEST_ANALYSIS EvidenceTechnique = 2 + EvidenceTechnique_EVIDENCE_TECHNIQUE_AST_FINGERPRINT EvidenceTechnique = 3 + EvidenceTechnique_EVIDENCE_TECHNIQUE_HASH_COMPARISON EvidenceTechnique = 4 + EvidenceTechnique_EVIDENCE_TECHNIQUE_INSTRUMENTATION EvidenceTechnique = 5 + EvidenceTechnique_EVIDENCE_TECHNIQUE_DYNAMIC_ANALYSIS EvidenceTechnique = 6 + EvidenceTechnique_EVIDENCE_TECHNIQUE_FILENAME EvidenceTechnique = 7 + EvidenceTechnique_EVIDENCE_TECHNIQUE_ATTESTATION EvidenceTechnique = 8 + EvidenceTechnique_EVIDENCE_TECHNIQUE_OTHER EvidenceTechnique = 9 +) + +// Enum value maps for EvidenceTechnique. +var ( + EvidenceTechnique_name = map[int32]string{ + 0: "EVIDENCE_TECHNIQUE_SOURCE_CODE_ANALYSIS", + 1: "EVIDENCE_TECHNIQUE_BINARY_ANALYSIS", + 2: "EVIDENCE_TECHNIQUE_MANIFEST_ANALYSIS", + 3: "EVIDENCE_TECHNIQUE_AST_FINGERPRINT", + 4: "EVIDENCE_TECHNIQUE_HASH_COMPARISON", + 5: "EVIDENCE_TECHNIQUE_INSTRUMENTATION", + 6: "EVIDENCE_TECHNIQUE_DYNAMIC_ANALYSIS", + 7: "EVIDENCE_TECHNIQUE_FILENAME", + 8: "EVIDENCE_TECHNIQUE_ATTESTATION", + 9: "EVIDENCE_TECHNIQUE_OTHER", + } + EvidenceTechnique_value = map[string]int32{ + "EVIDENCE_TECHNIQUE_SOURCE_CODE_ANALYSIS": 0, + "EVIDENCE_TECHNIQUE_BINARY_ANALYSIS": 1, + "EVIDENCE_TECHNIQUE_MANIFEST_ANALYSIS": 2, + "EVIDENCE_TECHNIQUE_AST_FINGERPRINT": 3, + "EVIDENCE_TECHNIQUE_HASH_COMPARISON": 4, + "EVIDENCE_TECHNIQUE_INSTRUMENTATION": 5, + "EVIDENCE_TECHNIQUE_DYNAMIC_ANALYSIS": 6, + "EVIDENCE_TECHNIQUE_FILENAME": 7, + "EVIDENCE_TECHNIQUE_ATTESTATION": 8, + "EVIDENCE_TECHNIQUE_OTHER": 9, + } +) + +func (x EvidenceTechnique) Enum() *EvidenceTechnique { + p := new(EvidenceTechnique) + *p = x + return p +} + +func (x EvidenceTechnique) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (EvidenceTechnique) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[11].Descriptor() +} + +func (EvidenceTechnique) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[11] +} + +func (x EvidenceTechnique) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use EvidenceTechnique.Descriptor instead. +func (EvidenceTechnique) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{11} +} + +type Severity int32 + +const ( + Severity_SEVERITY_UNKNOWN Severity = 0 + Severity_SEVERITY_CRITICAL Severity = 1 + Severity_SEVERITY_HIGH Severity = 2 + Severity_SEVERITY_MEDIUM Severity = 3 + Severity_SEVERITY_LOW Severity = 4 + Severity_SEVERITY_INFO Severity = 5 + Severity_SEVERITY_NONE Severity = 6 +) + +// Enum value maps for Severity. +var ( + Severity_name = map[int32]string{ + 0: "SEVERITY_UNKNOWN", + 1: "SEVERITY_CRITICAL", + 2: "SEVERITY_HIGH", + 3: "SEVERITY_MEDIUM", + 4: "SEVERITY_LOW", + 5: "SEVERITY_INFO", + 6: "SEVERITY_NONE", + } + Severity_value = map[string]int32{ + "SEVERITY_UNKNOWN": 0, + "SEVERITY_CRITICAL": 1, + "SEVERITY_HIGH": 2, + "SEVERITY_MEDIUM": 3, + "SEVERITY_LOW": 4, + "SEVERITY_INFO": 5, + "SEVERITY_NONE": 6, + } +) + +func (x Severity) Enum() *Severity { + p := new(Severity) + *p = x + return p +} + +func (x Severity) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Severity) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[12].Descriptor() +} + +func (Severity) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[12] +} + +func (x Severity) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Severity.Descriptor instead. +func (Severity) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{12} +} + +type ScoreMethod int32 + +const ( + // An undefined score method + ScoreMethod_SCORE_METHOD_NULL ScoreMethod = 0 + // Common Vulnerability Scoring System v2 - https://www.first.org/cvss/v2/ + ScoreMethod_SCORE_METHOD_CVSSV2 ScoreMethod = 1 + // Common Vulnerability Scoring System v3 - https://www.first.org/cvss/v3-0/ + ScoreMethod_SCORE_METHOD_CVSSV3 ScoreMethod = 2 + // Common Vulnerability Scoring System v3.1 - https://www.first.org/cvss/v3-1/ + ScoreMethod_SCORE_METHOD_CVSSV31 ScoreMethod = 3 + // OWASP Risk Rating Methodology - https://owasp.org/www-community/OWASP_Risk_Rating_Methodology + ScoreMethod_SCORE_METHOD_OWASP ScoreMethod = 4 + // Other scoring method + ScoreMethod_SCORE_METHOD_OTHER ScoreMethod = 5 + // Common Vulnerability Scoring System v3.1 - https://www.first.org/cvss/v4-0/ + ScoreMethod_SCORE_METHOD_CVSSV4 ScoreMethod = 6 + // Stakeholder Specific Vulnerability Categorization (all versions) - https://github.com/CERTCC/SSVC + ScoreMethod_SCORE_METHOD_SSVC ScoreMethod = 7 +) + +// Enum value maps for ScoreMethod. +var ( + ScoreMethod_name = map[int32]string{ + 0: "SCORE_METHOD_NULL", + 1: "SCORE_METHOD_CVSSV2", + 2: "SCORE_METHOD_CVSSV3", + 3: "SCORE_METHOD_CVSSV31", + 4: "SCORE_METHOD_OWASP", + 5: "SCORE_METHOD_OTHER", + 6: "SCORE_METHOD_CVSSV4", + 7: "SCORE_METHOD_SSVC", + } + ScoreMethod_value = map[string]int32{ + "SCORE_METHOD_NULL": 0, + "SCORE_METHOD_CVSSV2": 1, + "SCORE_METHOD_CVSSV3": 2, + "SCORE_METHOD_CVSSV31": 3, + "SCORE_METHOD_OWASP": 4, + "SCORE_METHOD_OTHER": 5, + "SCORE_METHOD_CVSSV4": 6, + "SCORE_METHOD_SSVC": 7, + } +) + +func (x ScoreMethod) Enum() *ScoreMethod { + p := new(ScoreMethod) + *p = x + return p +} + +func (x ScoreMethod) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ScoreMethod) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[13].Descriptor() +} + +func (ScoreMethod) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[13] +} + +func (x ScoreMethod) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ScoreMethod.Descriptor instead. +func (ScoreMethod) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{13} +} + +type ImpactAnalysisState int32 + +const ( + // An undefined impact analysis state + ImpactAnalysisState_IMPACT_ANALYSIS_STATE_NULL ImpactAnalysisState = 0 + // The vulnerability has been remediated. + ImpactAnalysisState_IMPACT_ANALYSIS_STATE_RESOLVED ImpactAnalysisState = 1 + // The vulnerability has been remediated and evidence of the changes are provided in the affected components pedigree containing verifiable commit history and/or diff(s). + ImpactAnalysisState_IMPACT_ANALYSIS_STATE_RESOLVED_WITH_PEDIGREE ImpactAnalysisState = 2 + // The vulnerability may be directly or indirectly exploitable. + ImpactAnalysisState_IMPACT_ANALYSIS_STATE_EXPLOITABLE ImpactAnalysisState = 3 + // The vulnerability is being investigated. + ImpactAnalysisState_IMPACT_ANALYSIS_STATE_IN_TRIAGE ImpactAnalysisState = 4 + // The vulnerability is not specific to the component or service and was falsely identified or associated. + ImpactAnalysisState_IMPACT_ANALYSIS_STATE_FALSE_POSITIVE ImpactAnalysisState = 5 + // The component or service is not affected by the vulnerability. Justification should be specified for all not_affected cases. + ImpactAnalysisState_IMPACT_ANALYSIS_STATE_NOT_AFFECTED ImpactAnalysisState = 6 +) + +// Enum value maps for ImpactAnalysisState. +var ( + ImpactAnalysisState_name = map[int32]string{ + 0: "IMPACT_ANALYSIS_STATE_NULL", + 1: "IMPACT_ANALYSIS_STATE_RESOLVED", + 2: "IMPACT_ANALYSIS_STATE_RESOLVED_WITH_PEDIGREE", + 3: "IMPACT_ANALYSIS_STATE_EXPLOITABLE", + 4: "IMPACT_ANALYSIS_STATE_IN_TRIAGE", + 5: "IMPACT_ANALYSIS_STATE_FALSE_POSITIVE", + 6: "IMPACT_ANALYSIS_STATE_NOT_AFFECTED", + } + ImpactAnalysisState_value = map[string]int32{ + "IMPACT_ANALYSIS_STATE_NULL": 0, + "IMPACT_ANALYSIS_STATE_RESOLVED": 1, + "IMPACT_ANALYSIS_STATE_RESOLVED_WITH_PEDIGREE": 2, + "IMPACT_ANALYSIS_STATE_EXPLOITABLE": 3, + "IMPACT_ANALYSIS_STATE_IN_TRIAGE": 4, + "IMPACT_ANALYSIS_STATE_FALSE_POSITIVE": 5, + "IMPACT_ANALYSIS_STATE_NOT_AFFECTED": 6, + } +) + +func (x ImpactAnalysisState) Enum() *ImpactAnalysisState { + p := new(ImpactAnalysisState) + *p = x + return p +} + +func (x ImpactAnalysisState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ImpactAnalysisState) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[14].Descriptor() +} + +func (ImpactAnalysisState) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[14] +} + +func (x ImpactAnalysisState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ImpactAnalysisState.Descriptor instead. +func (ImpactAnalysisState) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{14} +} + +type ImpactAnalysisJustification int32 + +const ( + // An undefined impact analysis justification + ImpactAnalysisJustification_IMPACT_ANALYSIS_JUSTIFICATION_NULL ImpactAnalysisJustification = 0 + // The code has been removed or tree-shaked. + ImpactAnalysisJustification_IMPACT_ANALYSIS_JUSTIFICATION_CODE_NOT_PRESENT ImpactAnalysisJustification = 1 + // The vulnerable code is not invoked at runtime. + ImpactAnalysisJustification_IMPACT_ANALYSIS_JUSTIFICATION_CODE_NOT_REACHABLE ImpactAnalysisJustification = 2 + // Exploitability requires a configurable option to be set/unset. + ImpactAnalysisJustification_IMPACT_ANALYSIS_JUSTIFICATION_REQUIRES_CONFIGURATION ImpactAnalysisJustification = 3 + // Exploitability requires a dependency that is not present. + ImpactAnalysisJustification_IMPACT_ANALYSIS_JUSTIFICATION_REQUIRES_DEPENDENCY ImpactAnalysisJustification = 4 + // Exploitability requires a certain environment which is not present. + ImpactAnalysisJustification_IMPACT_ANALYSIS_JUSTIFICATION_REQUIRES_ENVIRONMENT ImpactAnalysisJustification = 5 + // Exploitability requires a compiler flag to be set/unset. + ImpactAnalysisJustification_IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_BY_COMPILER ImpactAnalysisJustification = 6 + // Exploits are prevented at runtime. + ImpactAnalysisJustification_IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_AT_RUNTIME ImpactAnalysisJustification = 7 + // Attacks are blocked at physical, logical, or network perimeter. + ImpactAnalysisJustification_IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_AT_PERIMETER ImpactAnalysisJustification = 8 + // Preventative measures have been implemented that reduce the likelihood and/or impact of the vulnerability. + ImpactAnalysisJustification_IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_BY_MITIGATING_CONTROL ImpactAnalysisJustification = 9 +) + +// Enum value maps for ImpactAnalysisJustification. +var ( + ImpactAnalysisJustification_name = map[int32]string{ + 0: "IMPACT_ANALYSIS_JUSTIFICATION_NULL", + 1: "IMPACT_ANALYSIS_JUSTIFICATION_CODE_NOT_PRESENT", + 2: "IMPACT_ANALYSIS_JUSTIFICATION_CODE_NOT_REACHABLE", + 3: "IMPACT_ANALYSIS_JUSTIFICATION_REQUIRES_CONFIGURATION", + 4: "IMPACT_ANALYSIS_JUSTIFICATION_REQUIRES_DEPENDENCY", + 5: "IMPACT_ANALYSIS_JUSTIFICATION_REQUIRES_ENVIRONMENT", + 6: "IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_BY_COMPILER", + 7: "IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_AT_RUNTIME", + 8: "IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_AT_PERIMETER", + 9: "IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_BY_MITIGATING_CONTROL", + } + ImpactAnalysisJustification_value = map[string]int32{ + "IMPACT_ANALYSIS_JUSTIFICATION_NULL": 0, + "IMPACT_ANALYSIS_JUSTIFICATION_CODE_NOT_PRESENT": 1, + "IMPACT_ANALYSIS_JUSTIFICATION_CODE_NOT_REACHABLE": 2, + "IMPACT_ANALYSIS_JUSTIFICATION_REQUIRES_CONFIGURATION": 3, + "IMPACT_ANALYSIS_JUSTIFICATION_REQUIRES_DEPENDENCY": 4, + "IMPACT_ANALYSIS_JUSTIFICATION_REQUIRES_ENVIRONMENT": 5, + "IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_BY_COMPILER": 6, + "IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_AT_RUNTIME": 7, + "IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_AT_PERIMETER": 8, + "IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_BY_MITIGATING_CONTROL": 9, + } +) + +func (x ImpactAnalysisJustification) Enum() *ImpactAnalysisJustification { + p := new(ImpactAnalysisJustification) + *p = x + return p +} + +func (x ImpactAnalysisJustification) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ImpactAnalysisJustification) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[15].Descriptor() +} + +func (ImpactAnalysisJustification) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[15] +} + +func (x ImpactAnalysisJustification) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ImpactAnalysisJustification.Descriptor instead. +func (ImpactAnalysisJustification) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{15} +} + +type VulnerabilityResponse int32 + +const ( + VulnerabilityResponse_VULNERABILITY_RESPONSE_NULL VulnerabilityResponse = 0 + VulnerabilityResponse_VULNERABILITY_RESPONSE_CAN_NOT_FIX VulnerabilityResponse = 1 + VulnerabilityResponse_VULNERABILITY_RESPONSE_WILL_NOT_FIX VulnerabilityResponse = 2 + VulnerabilityResponse_VULNERABILITY_RESPONSE_UPDATE VulnerabilityResponse = 3 + VulnerabilityResponse_VULNERABILITY_RESPONSE_ROLLBACK VulnerabilityResponse = 4 + VulnerabilityResponse_VULNERABILITY_RESPONSE_WORKAROUND_AVAILABLE VulnerabilityResponse = 5 +) + +// Enum value maps for VulnerabilityResponse. +var ( + VulnerabilityResponse_name = map[int32]string{ + 0: "VULNERABILITY_RESPONSE_NULL", + 1: "VULNERABILITY_RESPONSE_CAN_NOT_FIX", + 2: "VULNERABILITY_RESPONSE_WILL_NOT_FIX", + 3: "VULNERABILITY_RESPONSE_UPDATE", + 4: "VULNERABILITY_RESPONSE_ROLLBACK", + 5: "VULNERABILITY_RESPONSE_WORKAROUND_AVAILABLE", + } + VulnerabilityResponse_value = map[string]int32{ + "VULNERABILITY_RESPONSE_NULL": 0, + "VULNERABILITY_RESPONSE_CAN_NOT_FIX": 1, + "VULNERABILITY_RESPONSE_WILL_NOT_FIX": 2, + "VULNERABILITY_RESPONSE_UPDATE": 3, + "VULNERABILITY_RESPONSE_ROLLBACK": 4, + "VULNERABILITY_RESPONSE_WORKAROUND_AVAILABLE": 5, + } +) + +func (x VulnerabilityResponse) Enum() *VulnerabilityResponse { + p := new(VulnerabilityResponse) + *p = x + return p +} + +func (x VulnerabilityResponse) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VulnerabilityResponse) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[16].Descriptor() +} + +func (VulnerabilityResponse) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[16] +} + +func (x VulnerabilityResponse) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VulnerabilityResponse.Descriptor instead. +func (VulnerabilityResponse) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{16} +} + +type VulnerabilityAffectedStatus int32 + +const ( + // The vulnerability status of a given version or range of versions of a product. The statuses 'affected' and 'unaffected' indicate that the version is affected or unaffected by the vulnerability. The status 'unknown' indicates that it is unknown or unspecified whether the given version is affected. There can be many reasons for an 'unknown' status, including that an investigation has not been undertaken or that a vendor has not disclosed the status. + VulnerabilityAffectedStatus_VULNERABILITY_AFFECTED_STATUS_UNKNOWN VulnerabilityAffectedStatus = 0 + VulnerabilityAffectedStatus_VULNERABILITY_AFFECTED_STATUS_AFFECTED VulnerabilityAffectedStatus = 1 + VulnerabilityAffectedStatus_VULNERABILITY_AFFECTED_STATUS_NOT_AFFECTED VulnerabilityAffectedStatus = 2 +) + +// Enum value maps for VulnerabilityAffectedStatus. +var ( + VulnerabilityAffectedStatus_name = map[int32]string{ + 0: "VULNERABILITY_AFFECTED_STATUS_UNKNOWN", + 1: "VULNERABILITY_AFFECTED_STATUS_AFFECTED", + 2: "VULNERABILITY_AFFECTED_STATUS_NOT_AFFECTED", + } + VulnerabilityAffectedStatus_value = map[string]int32{ + "VULNERABILITY_AFFECTED_STATUS_UNKNOWN": 0, + "VULNERABILITY_AFFECTED_STATUS_AFFECTED": 1, + "VULNERABILITY_AFFECTED_STATUS_NOT_AFFECTED": 2, + } +) + +func (x VulnerabilityAffectedStatus) Enum() *VulnerabilityAffectedStatus { + p := new(VulnerabilityAffectedStatus) + *p = x + return p +} + +func (x VulnerabilityAffectedStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (VulnerabilityAffectedStatus) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[17].Descriptor() +} + +func (VulnerabilityAffectedStatus) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[17] +} + +func (x VulnerabilityAffectedStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use VulnerabilityAffectedStatus.Descriptor instead. +func (VulnerabilityAffectedStatus) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{17} +} + +type ModelParameterApproachType int32 + +const ( + ModelParameterApproachType_MODEL_PARAMETER_APPROACH_TYPE_SUPERVISED ModelParameterApproachType = 0 + ModelParameterApproachType_MODEL_PARAMETER_APPROACH_TYPE_UNSUPERVISED ModelParameterApproachType = 1 + ModelParameterApproachType_MODEL_PARAMETER_APPROACH_TYPE_REINFORCED_LEARNING ModelParameterApproachType = 2 + ModelParameterApproachType_MODEL_PARAMETER_APPROACH_TYPE_SEMI_SUPERVISED ModelParameterApproachType = 3 + ModelParameterApproachType_MODEL_PARAMETER_APPROACH_TYPE_SELF_SUPERVISED ModelParameterApproachType = 4 +) + +// Enum value maps for ModelParameterApproachType. +var ( + ModelParameterApproachType_name = map[int32]string{ + 0: "MODEL_PARAMETER_APPROACH_TYPE_SUPERVISED", + 1: "MODEL_PARAMETER_APPROACH_TYPE_UNSUPERVISED", + 2: "MODEL_PARAMETER_APPROACH_TYPE_REINFORCED_LEARNING", + 3: "MODEL_PARAMETER_APPROACH_TYPE_SEMI_SUPERVISED", + 4: "MODEL_PARAMETER_APPROACH_TYPE_SELF_SUPERVISED", + } + ModelParameterApproachType_value = map[string]int32{ + "MODEL_PARAMETER_APPROACH_TYPE_SUPERVISED": 0, + "MODEL_PARAMETER_APPROACH_TYPE_UNSUPERVISED": 1, + "MODEL_PARAMETER_APPROACH_TYPE_REINFORCED_LEARNING": 2, + "MODEL_PARAMETER_APPROACH_TYPE_SEMI_SUPERVISED": 3, + "MODEL_PARAMETER_APPROACH_TYPE_SELF_SUPERVISED": 4, + } +) + +func (x ModelParameterApproachType) Enum() *ModelParameterApproachType { + p := new(ModelParameterApproachType) + *p = x + return p +} + +func (x ModelParameterApproachType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ModelParameterApproachType) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[18].Descriptor() +} + +func (ModelParameterApproachType) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[18] +} + +func (x ModelParameterApproachType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ModelParameterApproachType.Descriptor instead. +func (ModelParameterApproachType) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{18} +} + +type ComponentDataType int32 + +const ( + // Any type of code, code snippet, or data-as-code + ComponentDataType_COMPONENT_DATA_TYPE_SOURCE_CODE ComponentDataType = 0 + // Parameters or settings that may be used by other components. + ComponentDataType_COMPONENT_DATA_TYPE_CONFIGURATION ComponentDataType = 1 + // A collection of data. + ComponentDataType_COMPONENT_DATA_TYPE_DATASET ComponentDataType = 2 + // Data that can be used to create new instances of what the definition defines. + ComponentDataType_COMPONENT_DATA_TYPE_DEFINITION ComponentDataType = 3 + // Any other type of data that does not fit into existing definitions. + ComponentDataType_COMPONENT_DATA_TYPE_OTHER ComponentDataType = 4 +) + +// Enum value maps for ComponentDataType. +var ( + ComponentDataType_name = map[int32]string{ + 0: "COMPONENT_DATA_TYPE_SOURCE_CODE", + 1: "COMPONENT_DATA_TYPE_CONFIGURATION", + 2: "COMPONENT_DATA_TYPE_DATASET", + 3: "COMPONENT_DATA_TYPE_DEFINITION", + 4: "COMPONENT_DATA_TYPE_OTHER", + } + ComponentDataType_value = map[string]int32{ + "COMPONENT_DATA_TYPE_SOURCE_CODE": 0, + "COMPONENT_DATA_TYPE_CONFIGURATION": 1, + "COMPONENT_DATA_TYPE_DATASET": 2, + "COMPONENT_DATA_TYPE_DEFINITION": 3, + "COMPONENT_DATA_TYPE_OTHER": 4, + } +) + +func (x ComponentDataType) Enum() *ComponentDataType { + p := new(ComponentDataType) + *p = x + return p +} + +func (x ComponentDataType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ComponentDataType) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[19].Descriptor() +} + +func (ComponentDataType) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[19] +} + +func (x ComponentDataType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ComponentDataType.Descriptor instead. +func (ComponentDataType) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{19} +} + +type TaskType int32 + +const ( + TaskType_TASK_TYPE_COPY TaskType = 0 + TaskType_TASK_TYPE_CLONE TaskType = 1 + TaskType_TASK_TYPE_LINT TaskType = 2 + TaskType_TASK_TYPE_SCAN TaskType = 3 + TaskType_TASK_TYPE_MERGE TaskType = 4 + TaskType_TASK_TYPE_BUILD TaskType = 5 + TaskType_TASK_TYPE_TEST TaskType = 6 + TaskType_TASK_TYPE_DELIVER TaskType = 7 + TaskType_TASK_TYPE_DEPLOY TaskType = 8 + TaskType_TASK_TYPE_RELEASE TaskType = 9 + TaskType_TASK_TYPE_CLEAN TaskType = 10 + TaskType_TASK_TYPE_OTHER TaskType = 11 +) + +// Enum value maps for TaskType. +var ( + TaskType_name = map[int32]string{ + 0: "TASK_TYPE_COPY", + 1: "TASK_TYPE_CLONE", + 2: "TASK_TYPE_LINT", + 3: "TASK_TYPE_SCAN", + 4: "TASK_TYPE_MERGE", + 5: "TASK_TYPE_BUILD", + 6: "TASK_TYPE_TEST", + 7: "TASK_TYPE_DELIVER", + 8: "TASK_TYPE_DEPLOY", + 9: "TASK_TYPE_RELEASE", + 10: "TASK_TYPE_CLEAN", + 11: "TASK_TYPE_OTHER", + } + TaskType_value = map[string]int32{ + "TASK_TYPE_COPY": 0, + "TASK_TYPE_CLONE": 1, + "TASK_TYPE_LINT": 2, + "TASK_TYPE_SCAN": 3, + "TASK_TYPE_MERGE": 4, + "TASK_TYPE_BUILD": 5, + "TASK_TYPE_TEST": 6, + "TASK_TYPE_DELIVER": 7, + "TASK_TYPE_DEPLOY": 8, + "TASK_TYPE_RELEASE": 9, + "TASK_TYPE_CLEAN": 10, + "TASK_TYPE_OTHER": 11, + } +) + +func (x TaskType) Enum() *TaskType { + p := new(TaskType) + *p = x + return p +} + +func (x TaskType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TaskType) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[20].Descriptor() +} + +func (TaskType) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[20] +} + +func (x TaskType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TaskType.Descriptor instead. +func (TaskType) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{20} +} + +type Workspace_AccessMode int32 + +const ( + Workspace_ACCESS_MODE_READ_ONLY Workspace_AccessMode = 0 + Workspace_ACCESS_MODE_READ_WRITE Workspace_AccessMode = 1 + Workspace_ACCESS_MODE_READ_WRITE_ONCE Workspace_AccessMode = 2 + Workspace_ACCESS_MODE_WRITE_ONCE Workspace_AccessMode = 3 + Workspace_ACCESS_MODE_WRITE_ONLY Workspace_AccessMode = 4 +) + +// Enum value maps for Workspace_AccessMode. +var ( + Workspace_AccessMode_name = map[int32]string{ + 0: "ACCESS_MODE_READ_ONLY", + 1: "ACCESS_MODE_READ_WRITE", + 2: "ACCESS_MODE_READ_WRITE_ONCE", + 3: "ACCESS_MODE_WRITE_ONCE", + 4: "ACCESS_MODE_WRITE_ONLY", + } + Workspace_AccessMode_value = map[string]int32{ + "ACCESS_MODE_READ_ONLY": 0, + "ACCESS_MODE_READ_WRITE": 1, + "ACCESS_MODE_READ_WRITE_ONCE": 2, + "ACCESS_MODE_WRITE_ONCE": 3, + "ACCESS_MODE_WRITE_ONLY": 4, + } +) + +func (x Workspace_AccessMode) Enum() *Workspace_AccessMode { + p := new(Workspace_AccessMode) + *p = x + return p +} + +func (x Workspace_AccessMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Workspace_AccessMode) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[21].Descriptor() +} + +func (Workspace_AccessMode) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[21] +} + +func (x Workspace_AccessMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Workspace_AccessMode.Descriptor instead. +func (Workspace_AccessMode) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{55, 0} +} + +type Volume_VolumeMode int32 + +const ( + Volume_VOLUME_MODE_FILESYSTEM Volume_VolumeMode = 0 + Volume_VOLUME_MODE_BLOCK Volume_VolumeMode = 1 +) + +// Enum value maps for Volume_VolumeMode. +var ( + Volume_VolumeMode_name = map[int32]string{ + 0: "VOLUME_MODE_FILESYSTEM", + 1: "VOLUME_MODE_BLOCK", + } + Volume_VolumeMode_value = map[string]int32{ + "VOLUME_MODE_FILESYSTEM": 0, + "VOLUME_MODE_BLOCK": 1, + } +) + +func (x Volume_VolumeMode) Enum() *Volume_VolumeMode { + p := new(Volume_VolumeMode) + *p = x + return p +} + +func (x Volume_VolumeMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Volume_VolumeMode) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[22].Descriptor() +} + +func (Volume_VolumeMode) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[22] +} + +func (x Volume_VolumeMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Volume_VolumeMode.Descriptor instead. +func (Volume_VolumeMode) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{56, 0} +} + +type Trigger_TriggerType int32 + +const ( + Trigger_TRIGGER_TYPE_MANUAL Trigger_TriggerType = 0 + Trigger_TRIGGER_TYPE_API Trigger_TriggerType = 1 + Trigger_TRIGGER_TYPE_WEBHOOK Trigger_TriggerType = 2 + Trigger_TRIGGER_TYPE_SCHEDULED Trigger_TriggerType = 3 +) + +// Enum value maps for Trigger_TriggerType. +var ( + Trigger_TriggerType_name = map[int32]string{ + 0: "TRIGGER_TYPE_MANUAL", + 1: "TRIGGER_TYPE_API", + 2: "TRIGGER_TYPE_WEBHOOK", + 3: "TRIGGER_TYPE_SCHEDULED", + } + Trigger_TriggerType_value = map[string]int32{ + "TRIGGER_TYPE_MANUAL": 0, + "TRIGGER_TYPE_API": 1, + "TRIGGER_TYPE_WEBHOOK": 2, + "TRIGGER_TYPE_SCHEDULED": 3, + } +) + +func (x Trigger_TriggerType) Enum() *Trigger_TriggerType { + p := new(Trigger_TriggerType) + *p = x + return p +} + +func (x Trigger_TriggerType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Trigger_TriggerType) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[23].Descriptor() +} + +func (Trigger_TriggerType) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[23] +} + +func (x Trigger_TriggerType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Trigger_TriggerType.Descriptor instead. +func (Trigger_TriggerType) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{57, 0} +} + +type OutputType_OutputTypeType int32 + +const ( + OutputType_OUTPUT_TYPE_ARTIFACT OutputType_OutputTypeType = 0 + OutputType_OUTPUT_TYPE_ATTESTATION OutputType_OutputTypeType = 1 + OutputType_OUTPUT_TYPE_LOG OutputType_OutputTypeType = 2 + OutputType_OUTPUT_TYPE_EVIDENCE OutputType_OutputTypeType = 3 + OutputType_OUTPUT_TYPE_METRICS OutputType_OutputTypeType = 4 + OutputType_OUTPUT_TYPE_OTHER OutputType_OutputTypeType = 5 +) + +// Enum value maps for OutputType_OutputTypeType. +var ( + OutputType_OutputTypeType_name = map[int32]string{ + 0: "OUTPUT_TYPE_ARTIFACT", + 1: "OUTPUT_TYPE_ATTESTATION", + 2: "OUTPUT_TYPE_LOG", + 3: "OUTPUT_TYPE_EVIDENCE", + 4: "OUTPUT_TYPE_METRICS", + 5: "OUTPUT_TYPE_OTHER", + } + OutputType_OutputTypeType_value = map[string]int32{ + "OUTPUT_TYPE_ARTIFACT": 0, + "OUTPUT_TYPE_ATTESTATION": 1, + "OUTPUT_TYPE_LOG": 2, + "OUTPUT_TYPE_EVIDENCE": 3, + "OUTPUT_TYPE_METRICS": 4, + "OUTPUT_TYPE_OTHER": 5, + } +) + +func (x OutputType_OutputTypeType) Enum() *OutputType_OutputTypeType { + p := new(OutputType_OutputTypeType) + *p = x + return p +} + +func (x OutputType_OutputTypeType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OutputType_OutputTypeType) Descriptor() protoreflect.EnumDescriptor { + return file_cyclonedx_schema_bom_1_5_proto_enumTypes[24].Descriptor() +} + +func (OutputType_OutputTypeType) Type() protoreflect.EnumType { + return &file_cyclonedx_schema_bom_1_5_proto_enumTypes[24] +} + +func (x OutputType_OutputTypeType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OutputType_OutputTypeType.Descriptor instead. +func (OutputType_OutputTypeType) EnumDescriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{60, 0} +} + +// Specifies attributes of the text +type AttachedText struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Specifies the content type of the text. Defaults to 'text/plain' if not specified. + ContentType *string `protobuf:"bytes,1,opt,name=content_type,json=contentType,proto3,oneof" json:"content_type,omitempty"` + // Specifies the optional encoding the text is represented in + Encoding *string `protobuf:"bytes,2,opt,name=encoding,proto3,oneof" json:"encoding,omitempty"` + // SimpleContent value of element. Proactive controls such as input validation and sanitization should be employed to prevent misuse of attachment text. + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *AttachedText) Reset() { + *x = AttachedText{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AttachedText) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AttachedText) ProtoMessage() {} + +func (x *AttachedText) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AttachedText.ProtoReflect.Descriptor instead. +func (*AttachedText) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{0} +} + +func (x *AttachedText) GetContentType() string { + if x != nil && x.ContentType != nil { + return *x.ContentType + } + return "" +} + +func (x *AttachedText) GetEncoding() string { + if x != nil && x.Encoding != nil { + return *x.Encoding + } + return "" +} + +func (x *AttachedText) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type Bom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The version of the CycloneDX specification a BOM is written to (starting at version 1.3) + SpecVersion string `protobuf:"bytes,1,opt,name=spec_version,json=specVersion,proto3" json:"spec_version,omitempty"` + // The version allows component publishers/authors to make changes to existing BOMs to update various aspects of the document such as description or licenses. When a system is presented with multiple BOMs for the same component, the system should use the most recent version of the BOM. The default version is '1' and should be incremented for each version of the BOM that is published. Each version of a component should have a unique BOM and if no changes are made to the BOMs, then each BOM will have a version of '1'. + Version *int32 `protobuf:"varint,2,opt,name=version,proto3,oneof" json:"version,omitempty"` + // Every BOM generated should have a unique serial number, even if the contents of the BOM being generated have not changed over time. The process or tool responsible for creating the BOM should create random UUID's for every BOM generated. + SerialNumber *string `protobuf:"bytes,3,opt,name=serial_number,json=serialNumber,proto3,oneof" json:"serial_number,omitempty"` + // Provides additional information about a BOM. + Metadata *Metadata `protobuf:"bytes,4,opt,name=metadata,proto3,oneof" json:"metadata,omitempty"` + // Provides the ability to document a list of components. + Components []*Component `protobuf:"bytes,5,rep,name=components,proto3" json:"components,omitempty"` + // Provides the ability to document a list of external services. + Services []*Service `protobuf:"bytes,6,rep,name=services,proto3" json:"services,omitempty"` + // Provides the ability to document external references related to the BOM or to the project the BOM describes. + ExternalReferences []*ExternalReference `protobuf:"bytes,7,rep,name=external_references,json=externalReferences,proto3" json:"external_references,omitempty"` + // Provides the ability to document dependency relationships. + Dependencies []*Dependency `protobuf:"bytes,8,rep,name=dependencies,proto3" json:"dependencies,omitempty"` + // Compositions describe constituent parts (including components, services, and dependency relationships) and their completeness. The completeness of vulnerabilities expressed in a BOM may also be described. + Compositions []*Composition `protobuf:"bytes,9,rep,name=compositions,proto3" json:"compositions,omitempty"` + // Vulnerabilities identified in components or services. + Vulnerabilities []*Vulnerability `protobuf:"bytes,10,rep,name=vulnerabilities,proto3" json:"vulnerabilities,omitempty"` + // Comments made by people, organizations, or tools about any object with a bom-ref, such as components, services, vulnerabilities, or the BOM itself. Unlike inventory information, annotations may contain opinion or commentary from various stakeholders. + Annotations []*Annotation `protobuf:"bytes,11,rep,name=annotations,proto3" json:"annotations,omitempty"` + // Specifies optional, custom, properties + Properties []*Property `protobuf:"bytes,12,rep,name=properties,proto3" json:"properties,omitempty"` + // Describes how a component or service was manufactured or deployed. This is achieved through the use of formulas, workflows, tasks, and steps, which declare the precise steps to reproduce along with the observed formulas describing the steps which transpired in the manufacturing process. + Formulation []*Formula `protobuf:"bytes,13,rep,name=formulation,proto3" json:"formulation,omitempty"` +} + +func (x *Bom) Reset() { + *x = Bom{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Bom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Bom) ProtoMessage() {} + +func (x *Bom) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Bom.ProtoReflect.Descriptor instead. +func (*Bom) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{1} +} + +func (x *Bom) GetSpecVersion() string { + if x != nil { + return x.SpecVersion + } + return "" +} + +func (x *Bom) GetVersion() int32 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *Bom) GetSerialNumber() string { + if x != nil && x.SerialNumber != nil { + return *x.SerialNumber + } + return "" +} + +func (x *Bom) GetMetadata() *Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *Bom) GetComponents() []*Component { + if x != nil { + return x.Components + } + return nil +} + +func (x *Bom) GetServices() []*Service { + if x != nil { + return x.Services + } + return nil +} + +func (x *Bom) GetExternalReferences() []*ExternalReference { + if x != nil { + return x.ExternalReferences + } + return nil +} + +func (x *Bom) GetDependencies() []*Dependency { + if x != nil { + return x.Dependencies + } + return nil +} + +func (x *Bom) GetCompositions() []*Composition { + if x != nil { + return x.Compositions + } + return nil +} + +func (x *Bom) GetVulnerabilities() []*Vulnerability { + if x != nil { + return x.Vulnerabilities + } + return nil +} + +func (x *Bom) GetAnnotations() []*Annotation { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *Bom) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +func (x *Bom) GetFormulation() []*Formula { + if x != nil { + return x.Formulation + } + return nil +} + +type Commit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A unique identifier of the commit. This may be version control specific. For example, Subversion uses revision numbers whereas git uses commit hashes. + Uid *string `protobuf:"bytes,1,opt,name=uid,proto3,oneof" json:"uid,omitempty"` + // The URL to the commit. This URL will typically point to a commit in a version control system. + Url *string `protobuf:"bytes,2,opt,name=url,proto3,oneof" json:"url,omitempty"` + // The author who created the changes in the commit + Author *IdentifiableAction `protobuf:"bytes,3,opt,name=author,proto3,oneof" json:"author,omitempty"` + // The person who committed or pushed the commit + Committer *IdentifiableAction `protobuf:"bytes,4,opt,name=committer,proto3,oneof" json:"committer,omitempty"` + // The text description of the contents of the commit + Message *string `protobuf:"bytes,5,opt,name=message,proto3,oneof" json:"message,omitempty"` +} + +func (x *Commit) Reset() { + *x = Commit{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Commit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Commit) ProtoMessage() {} + +func (x *Commit) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Commit.ProtoReflect.Descriptor instead. +func (*Commit) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{2} +} + +func (x *Commit) GetUid() string { + if x != nil && x.Uid != nil { + return *x.Uid + } + return "" +} + +func (x *Commit) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +func (x *Commit) GetAuthor() *IdentifiableAction { + if x != nil { + return x.Author + } + return nil +} + +func (x *Commit) GetCommitter() *IdentifiableAction { + if x != nil { + return x.Committer + } + return nil +} + +func (x *Commit) GetMessage() string { + if x != nil && x.Message != nil { + return *x.Message + } + return "" +} + +type Component struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Specifies the type of component. For software components, classify as application if no more specific appropriate classification is available or cannot be determined for the component. + Type Classification `protobuf:"varint,1,opt,name=type,proto3,enum=cyclonedx.v1_5.Classification" json:"type,omitempty"` + // The optional mime-type of the component. When used on file components, the mime-type can provide additional context about the kind of file being represented such as an image, font, or executable. Some library or framework components may also have an associated mime-type. + MimeType *string `protobuf:"bytes,2,opt,name=mime_type,json=mimeType,proto3,oneof" json:"mime_type,omitempty"` + // An optional identifier which can be used to reference the component elsewhere in the BOM. Uniqueness is enforced within all elements and children of the root-level bom element. + BomRef *string `protobuf:"bytes,3,opt,name=bom_ref,json=bomRef,proto3,oneof" json:"bom_ref,omitempty"` + // The organization that supplied the component. The supplier may often be the manufacture, but may also be a distributor or repackager. + Supplier *OrganizationalEntity `protobuf:"bytes,4,opt,name=supplier,proto3,oneof" json:"supplier,omitempty"` + // The person(s) or organization(s) that authored the component + Author *string `protobuf:"bytes,5,opt,name=author,proto3,oneof" json:"author,omitempty"` + // The person(s) or organization(s) that published the component + Publisher *string `protobuf:"bytes,6,opt,name=publisher,proto3,oneof" json:"publisher,omitempty"` + // The grouping name or identifier. This will often be a shortened, single name of the company or project that produced the component, or the source package or domain name. Whitespace and special characters should be avoided. Examples include: apache, org.apache.commons, and apache.org. + Group *string `protobuf:"bytes,7,opt,name=group,proto3,oneof" json:"group,omitempty"` + // The name of the component. This will often be a shortened, single name of the component. Examples: commons-lang3 and jquery + Name string `protobuf:"bytes,8,opt,name=name,proto3" json:"name,omitempty"` + // The component version. The version should ideally comply with semantic versioning but is not enforced. Version was made optional in v1.4 of the spec. For backward compatibility, it is RECOMMENDED to use an empty string to represent components without version information. + Version string `protobuf:"bytes,9,opt,name=version,proto3" json:"version,omitempty"` + // Specifies a description for the component + Description *string `protobuf:"bytes,10,opt,name=description,proto3,oneof" json:"description,omitempty"` + // Specifies the scope of the component. If scope is not specified, SCOPE_REQUIRED scope should be assumed by the consumer of the BOM + Scope *Scope `protobuf:"varint,11,opt,name=scope,proto3,enum=cyclonedx.v1_5.Scope,oneof" json:"scope,omitempty"` + Hashes []*Hash `protobuf:"bytes,12,rep,name=hashes,proto3" json:"hashes,omitempty"` + Licenses []*LicenseChoice `protobuf:"bytes,13,rep,name=licenses,proto3" json:"licenses,omitempty"` + // An optional copyright notice informing users of the underlying claims to copyright ownership in a published work. + Copyright *string `protobuf:"bytes,14,opt,name=copyright,proto3,oneof" json:"copyright,omitempty"` + // DEPRECATED - DO NOT USE. This will be removed in a future version. Specifies a well-formed CPE name. See https://nvd.nist.gov/products/cpe + Cpe *string `protobuf:"bytes,15,opt,name=cpe,proto3,oneof" json:"cpe,omitempty"` + // Specifies the package-url (PURL). The purl, if specified, must be valid and conform to the specification defined at: https://github.com/package-url/purl-spec + Purl *string `protobuf:"bytes,16,opt,name=purl,proto3,oneof" json:"purl,omitempty"` + // Specifies metadata and content for ISO-IEC 19770-2 Software Identification (SWID) Tags. + Swid *Swid `protobuf:"bytes,17,opt,name=swid,proto3,oneof" json:"swid,omitempty"` + // DEPRECATED - DO NOT USE. This will be removed in a future version. Use the pedigree element instead to supply information on exactly how the component was modified. A boolean value indicating is the component has been modified from the original. A value of true indicates the component is a derivative of the original. A value of false indicates the component has not been modified from the original. + Modified *bool `protobuf:"varint,18,opt,name=modified,proto3,oneof" json:"modified,omitempty"` + // Component pedigree is a way to document complex supply chain scenarios where components are created, distributed, modified, redistributed, combined with other components, etc. + Pedigree *Pedigree `protobuf:"bytes,19,opt,name=pedigree,proto3,oneof" json:"pedigree,omitempty"` + // Provides the ability to document external references related to the component or to the project the component describes. + ExternalReferences []*ExternalReference `protobuf:"bytes,20,rep,name=external_references,json=externalReferences,proto3" json:"external_references,omitempty"` + // Specifies optional sub-components. This is not a dependency tree. It provides a way to specify a hierarchical representation of component assemblies, similar to system -> subsystem -> parts assembly in physical supply chains. + Components []*Component `protobuf:"bytes,21,rep,name=components,proto3" json:"components,omitempty"` + // Specifies optional, custom, properties + Properties []*Property `protobuf:"bytes,22,rep,name=properties,proto3" json:"properties,omitempty"` + // Specifies optional license and copyright evidence + Evidence []*Evidence `protobuf:"bytes,23,rep,name=evidence,proto3" json:"evidence,omitempty"` + // Specifies optional release notes. + ReleaseNotes *ReleaseNotes `protobuf:"bytes,24,opt,name=releaseNotes,proto3,oneof" json:"releaseNotes,omitempty"` + // A model card describes the intended uses of a machine learning model, potential limitations, biases, ethical considerations, training parameters, datasets used to train the model, performance metrics, and other relevant data useful for ML transparency. + ModelCard *ModelCard `protobuf:"bytes,25,opt,name=modelCard,proto3,oneof" json:"modelCard,omitempty"` + // This object SHOULD be specified for any component of type `data` and MUST NOT be specified for other component types. + Data *ComponentData `protobuf:"bytes,26,opt,name=data,proto3,oneof" json:"data,omitempty"` +} + +func (x *Component) Reset() { + *x = Component{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Component) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Component) ProtoMessage() {} + +func (x *Component) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Component.ProtoReflect.Descriptor instead. +func (*Component) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{3} +} + +func (x *Component) GetType() Classification { + if x != nil { + return x.Type + } + return Classification_CLASSIFICATION_NULL +} + +func (x *Component) GetMimeType() string { + if x != nil && x.MimeType != nil { + return *x.MimeType + } + return "" +} + +func (x *Component) GetBomRef() string { + if x != nil && x.BomRef != nil { + return *x.BomRef + } + return "" +} + +func (x *Component) GetSupplier() *OrganizationalEntity { + if x != nil { + return x.Supplier + } + return nil +} + +func (x *Component) GetAuthor() string { + if x != nil && x.Author != nil { + return *x.Author + } + return "" +} + +func (x *Component) GetPublisher() string { + if x != nil && x.Publisher != nil { + return *x.Publisher + } + return "" +} + +func (x *Component) GetGroup() string { + if x != nil && x.Group != nil { + return *x.Group + } + return "" +} + +func (x *Component) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Component) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *Component) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *Component) GetScope() Scope { + if x != nil && x.Scope != nil { + return *x.Scope + } + return Scope_SCOPE_UNSPECIFIED +} + +func (x *Component) GetHashes() []*Hash { + if x != nil { + return x.Hashes + } + return nil +} + +func (x *Component) GetLicenses() []*LicenseChoice { + if x != nil { + return x.Licenses + } + return nil +} + +func (x *Component) GetCopyright() string { + if x != nil && x.Copyright != nil { + return *x.Copyright + } + return "" +} + +func (x *Component) GetCpe() string { + if x != nil && x.Cpe != nil { + return *x.Cpe + } + return "" +} + +func (x *Component) GetPurl() string { + if x != nil && x.Purl != nil { + return *x.Purl + } + return "" +} + +func (x *Component) GetSwid() *Swid { + if x != nil { + return x.Swid + } + return nil +} + +func (x *Component) GetModified() bool { + if x != nil && x.Modified != nil { + return *x.Modified + } + return false +} + +func (x *Component) GetPedigree() *Pedigree { + if x != nil { + return x.Pedigree + } + return nil +} + +func (x *Component) GetExternalReferences() []*ExternalReference { + if x != nil { + return x.ExternalReferences + } + return nil +} + +func (x *Component) GetComponents() []*Component { + if x != nil { + return x.Components + } + return nil +} + +func (x *Component) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +func (x *Component) GetEvidence() []*Evidence { + if x != nil { + return x.Evidence + } + return nil +} + +func (x *Component) GetReleaseNotes() *ReleaseNotes { + if x != nil { + return x.ReleaseNotes + } + return nil +} + +func (x *Component) GetModelCard() *ModelCard { + if x != nil { + return x.ModelCard + } + return nil +} + +func (x *Component) GetData() *ComponentData { + if x != nil { + return x.Data + } + return nil +} + +// Specifies the data flow. +type DataFlow struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Specifies the flow direction of the data. + Flow DataFlowDirection `protobuf:"varint,1,opt,name=flow,proto3,enum=cyclonedx.v1_5.DataFlowDirection" json:"flow,omitempty"` + // Data classification tags data according to its type, sensitivity, and value if altered, stolen, or destroyed. + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + // Name for the defined data + Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Short description of the data content and usage + Description *string `protobuf:"bytes,4,opt,name=description,proto3,oneof" json:"description,omitempty"` + // The URI, URL, or BOM-Link of the components or services the data came in from + Source []string `protobuf:"bytes,5,rep,name=source,proto3" json:"source,omitempty"` + // The URI, URL, or BOM-Link of the components or services the data is sent to + Destination []string `protobuf:"bytes,6,rep,name=destination,proto3" json:"destination,omitempty"` + // Data Governance + Governance *DataGovernance `protobuf:"bytes,7,opt,name=governance,proto3,oneof" json:"governance,omitempty"` +} + +func (x *DataFlow) Reset() { + *x = DataFlow{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataFlow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataFlow) ProtoMessage() {} + +func (x *DataFlow) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DataFlow.ProtoReflect.Descriptor instead. +func (*DataFlow) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{4} +} + +func (x *DataFlow) GetFlow() DataFlowDirection { + if x != nil { + return x.Flow + } + return DataFlowDirection_DATA_FLOW_NULL +} + +func (x *DataFlow) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +func (x *DataFlow) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *DataFlow) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *DataFlow) GetSource() []string { + if x != nil { + return x.Source + } + return nil +} + +func (x *DataFlow) GetDestination() []string { + if x != nil { + return x.Destination + } + return nil +} + +func (x *DataFlow) GetGovernance() *DataGovernance { + if x != nil { + return x.Governance + } + return nil +} + +type Dependency struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // References a component or service by the its bom-ref attribute + Ref string `protobuf:"bytes,1,opt,name=ref,proto3" json:"ref,omitempty"` + Dependencies []*Dependency `protobuf:"bytes,2,rep,name=dependencies,proto3" json:"dependencies,omitempty"` +} + +func (x *Dependency) Reset() { + *x = Dependency{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Dependency) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Dependency) ProtoMessage() {} + +func (x *Dependency) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Dependency.ProtoReflect.Descriptor instead. +func (*Dependency) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{5} +} + +func (x *Dependency) GetRef() string { + if x != nil { + return x.Ref + } + return "" +} + +func (x *Dependency) GetDependencies() []*Dependency { + if x != nil { + return x.Dependencies + } + return nil +} + +type Diff struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Specifies the optional text of the diff + Text *AttachedText `protobuf:"bytes,1,opt,name=text,proto3,oneof" json:"text,omitempty"` + // Specifies the URL to the diff + Url *string `protobuf:"bytes,2,opt,name=url,proto3,oneof" json:"url,omitempty"` +} + +func (x *Diff) Reset() { + *x = Diff{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Diff) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Diff) ProtoMessage() {} + +func (x *Diff) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Diff.ProtoReflect.Descriptor instead. +func (*Diff) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{6} +} + +func (x *Diff) GetText() *AttachedText { + if x != nil { + return x.Text + } + return nil +} + +func (x *Diff) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +type ExternalReference struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Specifies the type of external reference. There are built-in types to describe common references. If a type does not exist for the reference being referred to, use the "other" type. + Type ExternalReferenceType `protobuf:"varint,1,opt,name=type,proto3,enum=cyclonedx.v1_5.ExternalReferenceType" json:"type,omitempty"` + // The URL to the external reference + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + // An optional comment describing the external reference + Comment *string `protobuf:"bytes,3,opt,name=comment,proto3,oneof" json:"comment,omitempty"` + // Optional integrity hashes for the external resource content + Hashes []*Hash `protobuf:"bytes,4,rep,name=hashes,proto3" json:"hashes,omitempty"` +} + +func (x *ExternalReference) Reset() { + *x = ExternalReference{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExternalReference) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExternalReference) ProtoMessage() {} + +func (x *ExternalReference) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExternalReference.ProtoReflect.Descriptor instead. +func (*ExternalReference) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{7} +} + +func (x *ExternalReference) GetType() ExternalReferenceType { + if x != nil { + return x.Type + } + return ExternalReferenceType_EXTERNAL_REFERENCE_TYPE_OTHER +} + +func (x *ExternalReference) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *ExternalReference) GetComment() string { + if x != nil && x.Comment != nil { + return *x.Comment + } + return "" +} + +func (x *ExternalReference) GetHashes() []*Hash { + if x != nil { + return x.Hashes + } + return nil +} + +// Specifies the file hash of the component +type Hash struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Specifies the algorithm used to create the hash + Alg HashAlg `protobuf:"varint,1,opt,name=alg,proto3,enum=cyclonedx.v1_5.HashAlg" json:"alg,omitempty"` + // SimpleContent value of element + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *Hash) Reset() { + *x = Hash{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Hash) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Hash) ProtoMessage() {} + +func (x *Hash) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Hash.ProtoReflect.Descriptor instead. +func (*Hash) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{8} +} + +func (x *Hash) GetAlg() HashAlg { + if x != nil { + return x.Alg + } + return HashAlg_HASH_ALG_NULL +} + +func (x *Hash) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type IdentifiableAction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The timestamp in which the action occurred + Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3,oneof" json:"timestamp,omitempty"` + // The name of the individual who performed the action + Name *string `protobuf:"bytes,2,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The email address of the individual who performed the action + Email *string `protobuf:"bytes,3,opt,name=email,proto3,oneof" json:"email,omitempty"` +} + +func (x *IdentifiableAction) Reset() { + *x = IdentifiableAction{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdentifiableAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdentifiableAction) ProtoMessage() {} + +func (x *IdentifiableAction) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdentifiableAction.ProtoReflect.Descriptor instead. +func (*IdentifiableAction) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{9} +} + +func (x *IdentifiableAction) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *IdentifiableAction) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *IdentifiableAction) GetEmail() string { + if x != nil && x.Email != nil { + return *x.Email + } + return "" +} + +type Issue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Specifies the type of issue + Type IssueClassification `protobuf:"varint,1,opt,name=type,proto3,enum=cyclonedx.v1_5.IssueClassification" json:"type,omitempty"` + // The identifier of the issue assigned by the source of the issue + Id *string `protobuf:"bytes,2,opt,name=id,proto3,oneof" json:"id,omitempty"` + // The name of the issue + Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` + // A description of the issue + Description *string `protobuf:"bytes,4,opt,name=description,proto3,oneof" json:"description,omitempty"` + Source *Source `protobuf:"bytes,5,opt,name=source,proto3,oneof" json:"source,omitempty"` + References []string `protobuf:"bytes,6,rep,name=references,proto3" json:"references,omitempty"` +} + +func (x *Issue) Reset() { + *x = Issue{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Issue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Issue) ProtoMessage() {} + +func (x *Issue) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Issue.ProtoReflect.Descriptor instead. +func (*Issue) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{10} +} + +func (x *Issue) GetType() IssueClassification { + if x != nil { + return x.Type + } + return IssueClassification_ISSUE_CLASSIFICATION_NULL +} + +func (x *Issue) GetId() string { + if x != nil && x.Id != nil { + return *x.Id + } + return "" +} + +func (x *Issue) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Issue) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *Issue) GetSource() *Source { + if x != nil { + return x.Source + } + return nil +} + +func (x *Issue) GetReferences() []string { + if x != nil { + return x.References + } + return nil +} + +// The source of the issue where it is documented. +type Source struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the source. For example "National Vulnerability Database", "NVD", and "Apache" + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The url of the issue documentation as provided by the source + Url *string `protobuf:"bytes,2,opt,name=url,proto3,oneof" json:"url,omitempty"` +} + +func (x *Source) Reset() { + *x = Source{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Source) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Source) ProtoMessage() {} + +func (x *Source) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Source.ProtoReflect.Descriptor instead. +func (*Source) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{11} +} + +func (x *Source) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Source) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +type LicenseChoice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Choice: + // + // *LicenseChoice_License + // *LicenseChoice_Expression + Choice isLicenseChoice_Choice `protobuf_oneof:"choice"` +} + +func (x *LicenseChoice) Reset() { + *x = LicenseChoice{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LicenseChoice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LicenseChoice) ProtoMessage() {} + +func (x *LicenseChoice) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LicenseChoice.ProtoReflect.Descriptor instead. +func (*LicenseChoice) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{12} +} + +func (m *LicenseChoice) GetChoice() isLicenseChoice_Choice { + if m != nil { + return m.Choice + } + return nil +} + +func (x *LicenseChoice) GetLicense() *License { + if x, ok := x.GetChoice().(*LicenseChoice_License); ok { + return x.License + } + return nil +} + +func (x *LicenseChoice) GetExpression() string { + if x, ok := x.GetChoice().(*LicenseChoice_Expression); ok { + return x.Expression + } + return "" +} + +type isLicenseChoice_Choice interface { + isLicenseChoice_Choice() +} + +type LicenseChoice_License struct { + License *License `protobuf:"bytes,1,opt,name=license,proto3,oneof"` +} + +type LicenseChoice_Expression struct { + Expression string `protobuf:"bytes,2,opt,name=expression,proto3,oneof"` +} + +func (*LicenseChoice_License) isLicenseChoice_Choice() {} + +func (*LicenseChoice_Expression) isLicenseChoice_Choice() {} + +type License struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to License: + // + // *License_Id + // *License_Name + License isLicense_License `protobuf_oneof:"license"` + // Specifies the optional full text of the attachment + Text *AttachedText `protobuf:"bytes,3,opt,name=text,proto3,oneof" json:"text,omitempty"` + // The URL to the attachment file. If the attachment is a license or BOM, an externalReference should also be specified for completeness. + Url *string `protobuf:"bytes,4,opt,name=url,proto3,oneof" json:"url,omitempty"` + // An optional identifier which can be used to reference the license elsewhere in the BOM. Uniqueness is enforced within all elements and children of the root-level bom element. + BomRef *string `protobuf:"bytes,5,opt,name=bom_ref,json=bomRef,proto3,oneof" json:"bom_ref,omitempty"` + // Licensing details describing the licensor/licensee, license type, renewal and expiration dates, and other important metadata + Licensing *Licensing `protobuf:"bytes,6,opt,name=licensing,proto3,oneof" json:"licensing,omitempty"` + // Specifies optional, custom, properties + Properties []*Property `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty"` +} + +func (x *License) Reset() { + *x = License{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *License) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*License) ProtoMessage() {} + +func (x *License) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use License.ProtoReflect.Descriptor instead. +func (*License) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{13} +} + +func (m *License) GetLicense() isLicense_License { + if m != nil { + return m.License + } + return nil +} + +func (x *License) GetId() string { + if x, ok := x.GetLicense().(*License_Id); ok { + return x.Id + } + return "" +} + +func (x *License) GetName() string { + if x, ok := x.GetLicense().(*License_Name); ok { + return x.Name + } + return "" +} + +func (x *License) GetText() *AttachedText { + if x != nil { + return x.Text + } + return nil +} + +func (x *License) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +func (x *License) GetBomRef() string { + if x != nil && x.BomRef != nil { + return *x.BomRef + } + return "" +} + +func (x *License) GetLicensing() *Licensing { + if x != nil { + return x.Licensing + } + return nil +} + +func (x *License) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +type isLicense_License interface { + isLicense_License() +} + +type License_Id struct { + // A valid SPDX license ID + Id string `protobuf:"bytes,1,opt,name=id,proto3,oneof"` +} + +type License_Name struct { + // If SPDX does not define the license used, this field may be used to provide the license name + Name string `protobuf:"bytes,2,opt,name=name,proto3,oneof"` +} + +func (*License_Id) isLicense_License() {} + +func (*License_Name) isLicense_License() {} + +type Licensing struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // License identifiers that may be used to manage licenses and their lifecycle + AltIds []string `protobuf:"bytes,1,rep,name=altIds,proto3" json:"altIds,omitempty"` + // The individual or organization that grants a license to another individual or organization + Licensor *OrganizationalEntityOrContact `protobuf:"bytes,2,opt,name=licensor,proto3,oneof" json:"licensor,omitempty"` + // The individual or organization for which a license was granted to + Licensee *OrganizationalEntityOrContact `protobuf:"bytes,3,opt,name=licensee,proto3,oneof" json:"licensee,omitempty"` + // The individual or organization that purchased the license + Purchaser *OrganizationalEntityOrContact `protobuf:"bytes,4,opt,name=purchaser,proto3,oneof" json:"purchaser,omitempty"` + // The purchase order identifier the purchaser sent to a supplier or vendor to authorize a purchase + PurchaseOrder *string `protobuf:"bytes,5,opt,name=purchaseOrder,proto3,oneof" json:"purchaseOrder,omitempty"` + // The type of license(s) that was granted to the licensee + LicenseTypes []LicensingTypeEnum `protobuf:"varint,6,rep,packed,name=licenseTypes,proto3,enum=cyclonedx.v1_5.LicensingTypeEnum" json:"licenseTypes,omitempty"` + // The timestamp indicating when the license was last renewed. For new purchases, this is often the purchase or acquisition date. For non-perpetual licenses or subscriptions, this is the timestamp of when the license was last renewed. + LastRenewal *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=lastRenewal,proto3,oneof" json:"lastRenewal,omitempty"` + // The timestamp indicating when the current license expires (if applicable). + Expiration *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=expiration,proto3,oneof" json:"expiration,omitempty"` +} + +func (x *Licensing) Reset() { + *x = Licensing{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Licensing) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Licensing) ProtoMessage() {} + +func (x *Licensing) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Licensing.ProtoReflect.Descriptor instead. +func (*Licensing) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{14} +} + +func (x *Licensing) GetAltIds() []string { + if x != nil { + return x.AltIds + } + return nil +} + +func (x *Licensing) GetLicensor() *OrganizationalEntityOrContact { + if x != nil { + return x.Licensor + } + return nil +} + +func (x *Licensing) GetLicensee() *OrganizationalEntityOrContact { + if x != nil { + return x.Licensee + } + return nil +} + +func (x *Licensing) GetPurchaser() *OrganizationalEntityOrContact { + if x != nil { + return x.Purchaser + } + return nil +} + +func (x *Licensing) GetPurchaseOrder() string { + if x != nil && x.PurchaseOrder != nil { + return *x.PurchaseOrder + } + return "" +} + +func (x *Licensing) GetLicenseTypes() []LicensingTypeEnum { + if x != nil { + return x.LicenseTypes + } + return nil +} + +func (x *Licensing) GetLastRenewal() *timestamppb.Timestamp { + if x != nil { + return x.LastRenewal + } + return nil +} + +func (x *Licensing) GetExpiration() *timestamppb.Timestamp { + if x != nil { + return x.Expiration + } + return nil +} + +type OrganizationalEntityOrContact struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Choice: + // + // *OrganizationalEntityOrContact_Organization + // *OrganizationalEntityOrContact_Individual + Choice isOrganizationalEntityOrContact_Choice `protobuf_oneof:"choice"` +} + +func (x *OrganizationalEntityOrContact) Reset() { + *x = OrganizationalEntityOrContact{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrganizationalEntityOrContact) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrganizationalEntityOrContact) ProtoMessage() {} + +func (x *OrganizationalEntityOrContact) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrganizationalEntityOrContact.ProtoReflect.Descriptor instead. +func (*OrganizationalEntityOrContact) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{15} +} + +func (m *OrganizationalEntityOrContact) GetChoice() isOrganizationalEntityOrContact_Choice { + if m != nil { + return m.Choice + } + return nil +} + +func (x *OrganizationalEntityOrContact) GetOrganization() *OrganizationalEntity { + if x, ok := x.GetChoice().(*OrganizationalEntityOrContact_Organization); ok { + return x.Organization + } + return nil +} + +func (x *OrganizationalEntityOrContact) GetIndividual() *OrganizationalContact { + if x, ok := x.GetChoice().(*OrganizationalEntityOrContact_Individual); ok { + return x.Individual + } + return nil +} + +type isOrganizationalEntityOrContact_Choice interface { + isOrganizationalEntityOrContact_Choice() +} + +type OrganizationalEntityOrContact_Organization struct { + Organization *OrganizationalEntity `protobuf:"bytes,1,opt,name=organization,proto3,oneof"` +} + +type OrganizationalEntityOrContact_Individual struct { + Individual *OrganizationalContact `protobuf:"bytes,2,opt,name=individual,proto3,oneof"` +} + +func (*OrganizationalEntityOrContact_Organization) isOrganizationalEntityOrContact_Choice() {} + +func (*OrganizationalEntityOrContact_Individual) isOrganizationalEntityOrContact_Choice() {} + +type Metadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The date and time (timestamp) when the document was created. + Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3,oneof" json:"timestamp,omitempty"` + // The tool(s) used in the creation of the BOM. + Tools *Tool `protobuf:"bytes,2,opt,name=tools,proto3,oneof" json:"tools,omitempty"` + // The person(s) who created the BOM. Authors are common in BOMs created through manual processes. BOMs created through automated means may not have authors. + Authors []*OrganizationalContact `protobuf:"bytes,3,rep,name=authors,proto3" json:"authors,omitempty"` + // The component that the BOM describes. + Component *Component `protobuf:"bytes,4,opt,name=component,proto3,oneof" json:"component,omitempty"` + // The organization that manufactured the component that the BOM describes. + Manufacture *OrganizationalEntity `protobuf:"bytes,5,opt,name=manufacture,proto3,oneof" json:"manufacture,omitempty"` + // The organization that supplied the component that the BOM describes. The supplier may often be the manufacture, but may also be a distributor or repackager. + Supplier *OrganizationalEntity `protobuf:"bytes,6,opt,name=supplier,proto3,oneof" json:"supplier,omitempty"` + // The license information for the BOM document + Licenses *LicenseChoice `protobuf:"bytes,7,opt,name=licenses,proto3,oneof" json:"licenses,omitempty"` + // Specifies optional, custom, properties + Properties []*Property `protobuf:"bytes,8,rep,name=properties,proto3" json:"properties,omitempty"` + // The product lifecycle(s) that this BOM represents. + Lifecycles []*Lifecycles `protobuf:"bytes,9,rep,name=lifecycles,proto3" json:"lifecycles,omitempty"` +} + +func (x *Metadata) Reset() { + *x = Metadata{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Metadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Metadata) ProtoMessage() {} + +func (x *Metadata) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Metadata.ProtoReflect.Descriptor instead. +func (*Metadata) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{16} +} + +func (x *Metadata) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *Metadata) GetTools() *Tool { + if x != nil { + return x.Tools + } + return nil +} + +func (x *Metadata) GetAuthors() []*OrganizationalContact { + if x != nil { + return x.Authors + } + return nil +} + +func (x *Metadata) GetComponent() *Component { + if x != nil { + return x.Component + } + return nil +} + +func (x *Metadata) GetManufacture() *OrganizationalEntity { + if x != nil { + return x.Manufacture + } + return nil +} + +func (x *Metadata) GetSupplier() *OrganizationalEntity { + if x != nil { + return x.Supplier + } + return nil +} + +func (x *Metadata) GetLicenses() *LicenseChoice { + if x != nil { + return x.Licenses + } + return nil +} + +func (x *Metadata) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +func (x *Metadata) GetLifecycles() []*Lifecycles { + if x != nil { + return x.Lifecycles + } + return nil +} + +type Lifecycles struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Choice: + // + // *Lifecycles_Phase + // *Lifecycles_Name + Choice isLifecycles_Choice `protobuf_oneof:"choice"` + // The description of the lifecycle phase + Description *string `protobuf:"bytes,3,opt,name=description,proto3,oneof" json:"description,omitempty"` +} + +func (x *Lifecycles) Reset() { + *x = Lifecycles{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Lifecycles) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Lifecycles) ProtoMessage() {} + +func (x *Lifecycles) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Lifecycles.ProtoReflect.Descriptor instead. +func (*Lifecycles) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{17} +} + +func (m *Lifecycles) GetChoice() isLifecycles_Choice { + if m != nil { + return m.Choice + } + return nil +} + +func (x *Lifecycles) GetPhase() LifecyclePhase { + if x, ok := x.GetChoice().(*Lifecycles_Phase); ok { + return x.Phase + } + return LifecyclePhase_LIFECYCLE_PHASE_DESIGN +} + +func (x *Lifecycles) GetName() string { + if x, ok := x.GetChoice().(*Lifecycles_Name); ok { + return x.Name + } + return "" +} + +func (x *Lifecycles) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +type isLifecycles_Choice interface { + isLifecycles_Choice() +} + +type Lifecycles_Phase struct { + // A pre-defined phase in the product lifecycle. + Phase LifecyclePhase `protobuf:"varint,1,opt,name=phase,proto3,enum=cyclonedx.v1_5.LifecyclePhase,oneof"` +} + +type Lifecycles_Name struct { + // The name of the lifecycle phase + Name string `protobuf:"bytes,2,opt,name=name,proto3,oneof"` +} + +func (*Lifecycles_Phase) isLifecycles_Choice() {} + +func (*Lifecycles_Name) isLifecycles_Choice() {} + +type OrganizationalContact struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the contact + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The email address of the contact. + Email *string `protobuf:"bytes,2,opt,name=email,proto3,oneof" json:"email,omitempty"` + // The phone number of the contact. + Phone *string `protobuf:"bytes,3,opt,name=phone,proto3,oneof" json:"phone,omitempty"` + // An optional identifier which can be used to reference the object elsewhere in the BOM. Uniqueness is enforced within all elements and children of the root-level bom element. + BomRef *string `protobuf:"bytes,4,opt,name=bom_ref,json=bomRef,proto3,oneof" json:"bom_ref,omitempty"` +} + +func (x *OrganizationalContact) Reset() { + *x = OrganizationalContact{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrganizationalContact) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrganizationalContact) ProtoMessage() {} + +func (x *OrganizationalContact) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrganizationalContact.ProtoReflect.Descriptor instead. +func (*OrganizationalContact) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{18} +} + +func (x *OrganizationalContact) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *OrganizationalContact) GetEmail() string { + if x != nil && x.Email != nil { + return *x.Email + } + return "" +} + +func (x *OrganizationalContact) GetPhone() string { + if x != nil && x.Phone != nil { + return *x.Phone + } + return "" +} + +func (x *OrganizationalContact) GetBomRef() string { + if x != nil && x.BomRef != nil { + return *x.BomRef + } + return "" +} + +type OrganizationalEntity struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the organization + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The URL of the organization. Multiple URLs are allowed. + Url []string `protobuf:"bytes,2,rep,name=url,proto3" json:"url,omitempty"` + // A contact person at the organization. Multiple contacts are allowed. + Contact []*OrganizationalContact `protobuf:"bytes,3,rep,name=contact,proto3" json:"contact,omitempty"` + // An optional identifier which can be used to reference the object elsewhere in the BOM. Uniqueness is enforced within all elements and children of the root-level bom element. + BomRef *string `protobuf:"bytes,4,opt,name=bom_ref,json=bomRef,proto3,oneof" json:"bom_ref,omitempty"` +} + +func (x *OrganizationalEntity) Reset() { + *x = OrganizationalEntity{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrganizationalEntity) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrganizationalEntity) ProtoMessage() {} + +func (x *OrganizationalEntity) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OrganizationalEntity.ProtoReflect.Descriptor instead. +func (*OrganizationalEntity) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{19} +} + +func (x *OrganizationalEntity) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *OrganizationalEntity) GetUrl() []string { + if x != nil { + return x.Url + } + return nil +} + +func (x *OrganizationalEntity) GetContact() []*OrganizationalContact { + if x != nil { + return x.Contact + } + return nil +} + +func (x *OrganizationalEntity) GetBomRef() string { + if x != nil && x.BomRef != nil { + return *x.BomRef + } + return "" +} + +type Patch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Specifies the purpose for the patch including the resolution of defects, security issues, or new behavior or functionality + Type PatchClassification `protobuf:"varint,1,opt,name=type,proto3,enum=cyclonedx.v1_5.PatchClassification" json:"type,omitempty"` + // The patch file (or diff) that show changes. Refer to https://en.wikipedia.org/wiki/Diff + Diff *Diff `protobuf:"bytes,2,opt,name=diff,proto3,oneof" json:"diff,omitempty"` + Resolves []*Issue `protobuf:"bytes,3,rep,name=resolves,proto3" json:"resolves,omitempty"` +} + +func (x *Patch) Reset() { + *x = Patch{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Patch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Patch) ProtoMessage() {} + +func (x *Patch) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Patch.ProtoReflect.Descriptor instead. +func (*Patch) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{20} +} + +func (x *Patch) GetType() PatchClassification { + if x != nil { + return x.Type + } + return PatchClassification_PATCH_CLASSIFICATION_NULL +} + +func (x *Patch) GetDiff() *Diff { + if x != nil { + return x.Diff + } + return nil +} + +func (x *Patch) GetResolves() []*Issue { + if x != nil { + return x.Resolves + } + return nil +} + +// Component pedigree is a way to document complex supply chain scenarios where components are created, distributed, modified, redistributed, combined with other components, etc. Pedigree supports viewing this complex chain from the beginning, the end, or anywhere in the middle. It also provides a way to document variants where the exact relation may not be known. +type Pedigree struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Describes zero or more components in which a component is derived from. This is commonly used to describe forks from existing projects where the forked version contains a ancestor node containing the original component it was forked from. For example, Component A is the original component. Component B is the component being used and documented in the BOM. However, Component B contains a pedigree node with a single ancestor documenting Component A - the original component from which Component B is derived from. + Ancestors []*Component `protobuf:"bytes,1,rep,name=ancestors,proto3" json:"ancestors,omitempty"` + // Descendants are the exact opposite of ancestors. This provides a way to document all forks (and their forks) of an original or root component. + Descendants []*Component `protobuf:"bytes,2,rep,name=descendants,proto3" json:"descendants,omitempty"` + // Variants describe relations where the relationship between the components are not known. For example, if Component A contains nearly identical code to Component B. They are both related, but it is unclear if one is derived from the other, or if they share a common ancestor. + Variants []*Component `protobuf:"bytes,3,rep,name=variants,proto3" json:"variants,omitempty"` + // A list of zero or more commits which provide a trail describing how the component deviates from an ancestor, descendant, or variant. + Commits []*Commit `protobuf:"bytes,4,rep,name=commits,proto3" json:"commits,omitempty"` + // A list of zero or more patches describing how the component deviates from an ancestor, descendant, or variant. Patches may be complimentary to commits or may be used in place of commits. + Patches []*Patch `protobuf:"bytes,5,rep,name=patches,proto3" json:"patches,omitempty"` + // Notes, observations, and other non-structured commentary describing the components pedigree. + Notes *string `protobuf:"bytes,6,opt,name=notes,proto3,oneof" json:"notes,omitempty"` +} + +func (x *Pedigree) Reset() { + *x = Pedigree{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Pedigree) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Pedigree) ProtoMessage() {} + +func (x *Pedigree) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Pedigree.ProtoReflect.Descriptor instead. +func (*Pedigree) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{21} +} + +func (x *Pedigree) GetAncestors() []*Component { + if x != nil { + return x.Ancestors + } + return nil +} + +func (x *Pedigree) GetDescendants() []*Component { + if x != nil { + return x.Descendants + } + return nil +} + +func (x *Pedigree) GetVariants() []*Component { + if x != nil { + return x.Variants + } + return nil +} + +func (x *Pedigree) GetCommits() []*Commit { + if x != nil { + return x.Commits + } + return nil +} + +func (x *Pedigree) GetPatches() []*Patch { + if x != nil { + return x.Patches + } + return nil +} + +func (x *Pedigree) GetNotes() string { + if x != nil && x.Notes != nil { + return *x.Notes + } + return "" +} + +type Service struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An optional identifier which can be used to reference the service elsewhere in the BOM. Uniqueness is enforced within all elements and children of the root-level bom element. + BomRef *string `protobuf:"bytes,1,opt,name=bom_ref,json=bomRef,proto3,oneof" json:"bom_ref,omitempty"` + // The organization that provides the service. + Provider *OrganizationalEntity `protobuf:"bytes,2,opt,name=provider,proto3,oneof" json:"provider,omitempty"` + // The grouping name, namespace, or identifier. This will often be a shortened, single name of the company or project that produced the service or domain name. Whitespace and special characters should be avoided. + Group *string `protobuf:"bytes,3,opt,name=group,proto3,oneof" json:"group,omitempty"` + // The name of the service. This will often be a shortened, single name of the service. + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + // The service version. + Version *string `protobuf:"bytes,5,opt,name=version,proto3,oneof" json:"version,omitempty"` + // Specifies a description for the service. + Description *string `protobuf:"bytes,6,opt,name=description,proto3,oneof" json:"description,omitempty"` + Endpoints []string `protobuf:"bytes,7,rep,name=endpoints,proto3" json:"endpoints,omitempty"` + // A boolean value indicating if the service requires authentication. A value of true indicates the service requires authentication prior to use. A value of false indicates the service does not require authentication. + Authenticated *bool `protobuf:"varint,8,opt,name=authenticated,proto3,oneof" json:"authenticated,omitempty"` + // A boolean value indicating if use of the service crosses a trust zone or boundary. A value of true indicates that by using the service, a trust boundary is crossed. A value of false indicates that by using the service, a trust boundary is not crossed. + XTrustBoundary *bool `protobuf:"varint,9,opt,name=x_trust_boundary,json=xTrustBoundary,proto3,oneof" json:"x_trust_boundary,omitempty"` + Data []*DataFlow `protobuf:"bytes,10,rep,name=data,proto3" json:"data,omitempty"` + Licenses []*LicenseChoice `protobuf:"bytes,11,rep,name=licenses,proto3" json:"licenses,omitempty"` + // Provides the ability to document external references related to the service. + ExternalReferences []*ExternalReference `protobuf:"bytes,12,rep,name=external_references,json=externalReferences,proto3" json:"external_references,omitempty"` + // Specifies optional sub-service. This is not a dependency tree. It provides a way to specify a hierarchical representation of service assemblies, similar to system -> subsystem -> parts assembly in physical supply chains. + Services []*Service `protobuf:"bytes,13,rep,name=services,proto3" json:"services,omitempty"` + // Specifies optional, custom, properties + Properties []*Property `protobuf:"bytes,14,rep,name=properties,proto3" json:"properties,omitempty"` + // Specifies optional release notes. + ReleaseNotes *ReleaseNotes `protobuf:"bytes,15,opt,name=releaseNotes,proto3,oneof" json:"releaseNotes,omitempty"` + // The name of the trust zone the service resides in. + TrustZone *string `protobuf:"bytes,16,opt,name=trustZone,proto3,oneof" json:"trustZone,omitempty"` +} + +func (x *Service) Reset() { + *x = Service{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Service) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Service) ProtoMessage() {} + +func (x *Service) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Service.ProtoReflect.Descriptor instead. +func (*Service) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{22} +} + +func (x *Service) GetBomRef() string { + if x != nil && x.BomRef != nil { + return *x.BomRef + } + return "" +} + +func (x *Service) GetProvider() *OrganizationalEntity { + if x != nil { + return x.Provider + } + return nil +} + +func (x *Service) GetGroup() string { + if x != nil && x.Group != nil { + return *x.Group + } + return "" +} + +func (x *Service) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Service) GetVersion() string { + if x != nil && x.Version != nil { + return *x.Version + } + return "" +} + +func (x *Service) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *Service) GetEndpoints() []string { + if x != nil { + return x.Endpoints + } + return nil +} + +func (x *Service) GetAuthenticated() bool { + if x != nil && x.Authenticated != nil { + return *x.Authenticated + } + return false +} + +func (x *Service) GetXTrustBoundary() bool { + if x != nil && x.XTrustBoundary != nil { + return *x.XTrustBoundary + } + return false +} + +func (x *Service) GetData() []*DataFlow { + if x != nil { + return x.Data + } + return nil +} + +func (x *Service) GetLicenses() []*LicenseChoice { + if x != nil { + return x.Licenses + } + return nil +} + +func (x *Service) GetExternalReferences() []*ExternalReference { + if x != nil { + return x.ExternalReferences + } + return nil +} + +func (x *Service) GetServices() []*Service { + if x != nil { + return x.Services + } + return nil +} + +func (x *Service) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +func (x *Service) GetReleaseNotes() *ReleaseNotes { + if x != nil { + return x.ReleaseNotes + } + return nil +} + +func (x *Service) GetTrustZone() string { + if x != nil && x.TrustZone != nil { + return *x.TrustZone + } + return "" +} + +type Swid struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Maps to the tagId of a SoftwareIdentity. + TagId string `protobuf:"bytes,1,opt,name=tag_id,json=tagId,proto3" json:"tag_id,omitempty"` + // Maps to the name of a SoftwareIdentity. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // Maps to the version of a SoftwareIdentity. Defaults to '0.0' if not specified. + Version *string `protobuf:"bytes,3,opt,name=version,proto3,oneof" json:"version,omitempty"` + // Maps to the tagVersion of a SoftwareIdentity. Defaults to '0' if not specified. + TagVersion *int32 `protobuf:"varint,4,opt,name=tag_version,json=tagVersion,proto3,oneof" json:"tag_version,omitempty"` + // Maps to the patch of a SoftwareIdentity. Defaults to 'false' if not specified. + Patch *bool `protobuf:"varint,5,opt,name=patch,proto3,oneof" json:"patch,omitempty"` + // Specifies the full content of the SWID tag. + Text *AttachedText `protobuf:"bytes,6,opt,name=text,proto3,oneof" json:"text,omitempty"` + // The URL to the SWID file. + Url *string `protobuf:"bytes,7,opt,name=url,proto3,oneof" json:"url,omitempty"` +} + +func (x *Swid) Reset() { + *x = Swid{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Swid) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Swid) ProtoMessage() {} + +func (x *Swid) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Swid.ProtoReflect.Descriptor instead. +func (*Swid) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{23} +} + +func (x *Swid) GetTagId() string { + if x != nil { + return x.TagId + } + return "" +} + +func (x *Swid) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Swid) GetVersion() string { + if x != nil && x.Version != nil { + return *x.Version + } + return "" +} + +func (x *Swid) GetTagVersion() int32 { + if x != nil && x.TagVersion != nil { + return *x.TagVersion + } + return 0 +} + +func (x *Swid) GetPatch() bool { + if x != nil && x.Patch != nil { + return *x.Patch + } + return false +} + +func (x *Swid) GetText() *AttachedText { + if x != nil { + return x.Text + } + return nil +} + +func (x *Swid) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +// Specifies a tool (manual or automated). +type Tool struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // DEPRECATED - DO NOT USE - The vendor of the tool used to create the BOM. + // + // Deprecated: Marked as deprecated in cyclonedx/schema/bom-1.5.proto. + Vendor *string `protobuf:"bytes,1,opt,name=vendor,proto3,oneof" json:"vendor,omitempty"` + // DEPRECATED - DO NOT USE - The name of the tool used to create the BOM. + // + // Deprecated: Marked as deprecated in cyclonedx/schema/bom-1.5.proto. + Name *string `protobuf:"bytes,2,opt,name=name,proto3,oneof" json:"name,omitempty"` + // DEPRECATED - DO NOT USE - The version of the tool used to create the BOM. + // + // Deprecated: Marked as deprecated in cyclonedx/schema/bom-1.5.proto. + Version *string `protobuf:"bytes,3,opt,name=version,proto3,oneof" json:"version,omitempty"` + // DEPRECATED - DO NOT USE + // + // Deprecated: Marked as deprecated in cyclonedx/schema/bom-1.5.proto. + Hashes []*Hash `protobuf:"bytes,4,rep,name=hashes,proto3" json:"hashes,omitempty"` + // DEPRECATED - DO NOT USE - Provides the ability to document external references related to the tool. + // + // Deprecated: Marked as deprecated in cyclonedx/schema/bom-1.5.proto. + ExternalReferences []*ExternalReference `protobuf:"bytes,5,rep,name=external_references,json=externalReferences,proto3" json:"external_references,omitempty"` + // A list of software and hardware components used as tools + Components []*Component `protobuf:"bytes,6,rep,name=components,proto3" json:"components,omitempty"` + // A list of services used as tools. This may include microservices, function-as-a-service, and other types of network or intra-process services. + Services []*Service `protobuf:"bytes,7,rep,name=services,proto3" json:"services,omitempty"` +} + +func (x *Tool) Reset() { + *x = Tool{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Tool) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Tool) ProtoMessage() {} + +func (x *Tool) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Tool.ProtoReflect.Descriptor instead. +func (*Tool) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{24} +} + +// Deprecated: Marked as deprecated in cyclonedx/schema/bom-1.5.proto. +func (x *Tool) GetVendor() string { + if x != nil && x.Vendor != nil { + return *x.Vendor + } + return "" +} + +// Deprecated: Marked as deprecated in cyclonedx/schema/bom-1.5.proto. +func (x *Tool) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +// Deprecated: Marked as deprecated in cyclonedx/schema/bom-1.5.proto. +func (x *Tool) GetVersion() string { + if x != nil && x.Version != nil { + return *x.Version + } + return "" +} + +// Deprecated: Marked as deprecated in cyclonedx/schema/bom-1.5.proto. +func (x *Tool) GetHashes() []*Hash { + if x != nil { + return x.Hashes + } + return nil +} + +// Deprecated: Marked as deprecated in cyclonedx/schema/bom-1.5.proto. +func (x *Tool) GetExternalReferences() []*ExternalReference { + if x != nil { + return x.ExternalReferences + } + return nil +} + +func (x *Tool) GetComponents() []*Component { + if x != nil { + return x.Components + } + return nil +} + +func (x *Tool) GetServices() []*Service { + if x != nil { + return x.Services + } + return nil +} + +// Specifies a property +type Property struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` +} + +func (x *Property) Reset() { + *x = Property{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Property) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Property) ProtoMessage() {} + +func (x *Property) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Property.ProtoReflect.Descriptor instead. +func (*Property) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{25} +} + +func (x *Property) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Property) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +type Composition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Indicates the aggregate completeness + Aggregate Aggregate `protobuf:"varint,1,opt,name=aggregate,proto3,enum=cyclonedx.v1_5.Aggregate" json:"aggregate,omitempty"` + // The assemblies the aggregate completeness applies to + Assemblies []string `protobuf:"bytes,2,rep,name=assemblies,proto3" json:"assemblies,omitempty"` + // The dependencies the aggregate completeness applies to + Dependencies []string `protobuf:"bytes,3,rep,name=dependencies,proto3" json:"dependencies,omitempty"` + // The bom-ref identifiers of the vulnerabilities being described. + Vulnerabilities []string `protobuf:"bytes,4,rep,name=vulnerabilities,proto3" json:"vulnerabilities,omitempty"` + // An optional identifier which can be used to reference the composition elsewhere in the BOM. Every bom-ref MUST be unique within the BOM. + BomRef *string `protobuf:"bytes,5,opt,name=bom_ref,json=bomRef,proto3,oneof" json:"bom_ref,omitempty"` +} + +func (x *Composition) Reset() { + *x = Composition{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Composition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Composition) ProtoMessage() {} + +func (x *Composition) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Composition.ProtoReflect.Descriptor instead. +func (*Composition) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{26} +} + +func (x *Composition) GetAggregate() Aggregate { + if x != nil { + return x.Aggregate + } + return Aggregate_AGGREGATE_NOT_SPECIFIED +} + +func (x *Composition) GetAssemblies() []string { + if x != nil { + return x.Assemblies + } + return nil +} + +func (x *Composition) GetDependencies() []string { + if x != nil { + return x.Dependencies + } + return nil +} + +func (x *Composition) GetVulnerabilities() []string { + if x != nil { + return x.Vulnerabilities + } + return nil +} + +func (x *Composition) GetBomRef() string { + if x != nil && x.BomRef != nil { + return *x.BomRef + } + return "" +} + +type EvidenceCopyright struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Copyright text + Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *EvidenceCopyright) Reset() { + *x = EvidenceCopyright{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EvidenceCopyright) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EvidenceCopyright) ProtoMessage() {} + +func (x *EvidenceCopyright) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EvidenceCopyright.ProtoReflect.Descriptor instead. +func (*EvidenceCopyright) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{27} +} + +func (x *EvidenceCopyright) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type Evidence struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Licenses []*LicenseChoice `protobuf:"bytes,1,rep,name=licenses,proto3" json:"licenses,omitempty"` + Copyright []*EvidenceCopyright `protobuf:"bytes,2,rep,name=copyright,proto3" json:"copyright,omitempty"` + Identity []*EvidenceIdentity `protobuf:"bytes,3,rep,name=identity,proto3" json:"identity,omitempty"` + Occurrences []*EvidenceOccurrences `protobuf:"bytes,4,rep,name=occurrences,proto3" json:"occurrences,omitempty"` + Callstack *Callstack `protobuf:"bytes,5,opt,name=callstack,proto3,oneof" json:"callstack,omitempty"` +} + +func (x *Evidence) Reset() { + *x = Evidence{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Evidence) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Evidence) ProtoMessage() {} + +func (x *Evidence) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Evidence.ProtoReflect.Descriptor instead. +func (*Evidence) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{28} +} + +func (x *Evidence) GetLicenses() []*LicenseChoice { + if x != nil { + return x.Licenses + } + return nil +} + +func (x *Evidence) GetCopyright() []*EvidenceCopyright { + if x != nil { + return x.Copyright + } + return nil +} + +func (x *Evidence) GetIdentity() []*EvidenceIdentity { + if x != nil { + return x.Identity + } + return nil +} + +func (x *Evidence) GetOccurrences() []*EvidenceOccurrences { + if x != nil { + return x.Occurrences + } + return nil +} + +func (x *Evidence) GetCallstack() *Callstack { + if x != nil { + return x.Callstack + } + return nil +} + +// Evidence of the components use through the callstack. +type Callstack struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Frames []*Callstack_Frames `protobuf:"bytes,1,rep,name=frames,proto3" json:"frames,omitempty"` +} + +func (x *Callstack) Reset() { + *x = Callstack{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Callstack) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Callstack) ProtoMessage() {} + +func (x *Callstack) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Callstack.ProtoReflect.Descriptor instead. +func (*Callstack) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{29} +} + +func (x *Callstack) GetFrames() []*Callstack_Frames { + if x != nil { + return x.Frames + } + return nil +} + +type EvidenceIdentity struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The identity field of the component which the evidence describes. + Field EvidenceFieldType `protobuf:"varint,1,opt,name=field,proto3,enum=cyclonedx.v1_5.EvidenceFieldType" json:"field,omitempty"` + // The overall confidence of the evidence from 0 - 1, where 1 is 100% confidence. + Confidence *float32 `protobuf:"fixed32,2,opt,name=confidence,proto3,oneof" json:"confidence,omitempty"` + // The methods used to extract and/or analyze the evidence. + Methods []*EvidenceMethods `protobuf:"bytes,3,rep,name=methods,proto3" json:"methods,omitempty"` + // The object in the BOM identified by its bom-ref. This is often a component or service, but may be any object type supporting bom-refs. Tools used for analysis should already be defined in the BOM, either in the metadata/tools, components, or formulation. + Tools []string `protobuf:"bytes,4,rep,name=tools,proto3" json:"tools,omitempty"` +} + +func (x *EvidenceIdentity) Reset() { + *x = EvidenceIdentity{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EvidenceIdentity) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EvidenceIdentity) ProtoMessage() {} + +func (x *EvidenceIdentity) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EvidenceIdentity.ProtoReflect.Descriptor instead. +func (*EvidenceIdentity) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{30} +} + +func (x *EvidenceIdentity) GetField() EvidenceFieldType { + if x != nil { + return x.Field + } + return EvidenceFieldType_EVIDENCE_FIELD_NULL +} + +func (x *EvidenceIdentity) GetConfidence() float32 { + if x != nil && x.Confidence != nil { + return *x.Confidence + } + return 0 +} + +func (x *EvidenceIdentity) GetMethods() []*EvidenceMethods { + if x != nil { + return x.Methods + } + return nil +} + +func (x *EvidenceIdentity) GetTools() []string { + if x != nil { + return x.Tools + } + return nil +} + +type EvidenceMethods struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The technique used in this method of analysis. + Technique EvidenceTechnique `protobuf:"varint,1,opt,name=technique,proto3,enum=cyclonedx.v1_5.EvidenceTechnique" json:"technique,omitempty"` + // The confidence of the evidence from 0 - 1, where 1 is 100% confidence. Confidence is specific to the technique used. Each technique of analysis can have independent confidence. + Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"` + // The value or contents of the evidence. + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` +} + +func (x *EvidenceMethods) Reset() { + *x = EvidenceMethods{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EvidenceMethods) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EvidenceMethods) ProtoMessage() {} + +func (x *EvidenceMethods) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EvidenceMethods.ProtoReflect.Descriptor instead. +func (*EvidenceMethods) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{31} +} + +func (x *EvidenceMethods) GetTechnique() EvidenceTechnique { + if x != nil { + return x.Technique + } + return EvidenceTechnique_EVIDENCE_TECHNIQUE_SOURCE_CODE_ANALYSIS +} + +func (x *EvidenceMethods) GetConfidence() float32 { + if x != nil { + return x.Confidence + } + return 0 +} + +func (x *EvidenceMethods) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +type EvidenceOccurrences struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An optional identifier which can be used to reference the occurrence elsewhere in the BOM. Every bom-ref MUST be unique within the BOM. + BomRef *string `protobuf:"bytes,1,opt,name=bom_ref,json=bomRef,proto3,oneof" json:"bom_ref,omitempty"` + // The location or path to where the component was found. + Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"` +} + +func (x *EvidenceOccurrences) Reset() { + *x = EvidenceOccurrences{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EvidenceOccurrences) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EvidenceOccurrences) ProtoMessage() {} + +func (x *EvidenceOccurrences) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EvidenceOccurrences.ProtoReflect.Descriptor instead. +func (*EvidenceOccurrences) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{32} +} + +func (x *EvidenceOccurrences) GetBomRef() string { + if x != nil && x.BomRef != nil { + return *x.BomRef + } + return "" +} + +func (x *EvidenceOccurrences) GetLocation() string { + if x != nil { + return x.Location + } + return "" +} + +type Note struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The ISO-639 (or higher) language code and optional ISO-3166 (or higher) country code. Examples include: "en", "en-US", "fr" and "fr-CA". + Locale *string `protobuf:"bytes,1,opt,name=locale,proto3,oneof" json:"locale,omitempty"` + // Specifies the full content of the release note. + Text *AttachedText `protobuf:"bytes,2,opt,name=text,proto3,oneof" json:"text,omitempty"` +} + +func (x *Note) Reset() { + *x = Note{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Note) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Note) ProtoMessage() {} + +func (x *Note) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Note.ProtoReflect.Descriptor instead. +func (*Note) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{33} +} + +func (x *Note) GetLocale() string { + if x != nil && x.Locale != nil { + return *x.Locale + } + return "" +} + +func (x *Note) GetText() *AttachedText { + if x != nil { + return x.Text + } + return nil +} + +type ReleaseNotes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The software versioning type. It is RECOMMENDED that the release type use one of 'major', 'minor', 'patch', 'pre-release', or 'internal'. Representing all possible software release types is not practical, so standardizing on the recommended values, whenever possible, is strongly encouraged. + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + // The title of the release. + Title *string `protobuf:"bytes,2,opt,name=title,proto3,oneof" json:"title,omitempty"` + // The URL to an image that may be prominently displayed with the release note. + FeaturedImage *string `protobuf:"bytes,3,opt,name=featuredImage,proto3,oneof" json:"featuredImage,omitempty"` + // The URL to an image that may be used in messaging on social media platforms. + SocialImage *string `protobuf:"bytes,4,opt,name=socialImage,proto3,oneof" json:"socialImage,omitempty"` + // A short description of the release. + Description *string `protobuf:"bytes,5,opt,name=description,proto3,oneof" json:"description,omitempty"` + // The date and time (timestamp) when the release note was created. + Timestamp *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=timestamp,proto3,oneof" json:"timestamp,omitempty"` + // Optional alternate names the release may be referred to. This may include unofficial terms used by development and marketing teams (e.g. code names). + Aliases []string `protobuf:"bytes,7,rep,name=aliases,proto3" json:"aliases,omitempty"` + // Optional tags that may aid in search or retrieval of the release note. + Tags []string `protobuf:"bytes,8,rep,name=tags,proto3" json:"tags,omitempty"` + // A collection of issues that have been resolved. + Resolves []*Issue `protobuf:"bytes,9,rep,name=resolves,proto3" json:"resolves,omitempty"` + // Zero or more release notes containing the locale and content. Multiple note messages may be specified to support release notes in a wide variety of languages. + Notes []*Note `protobuf:"bytes,10,rep,name=notes,proto3" json:"notes,omitempty"` + // Specifies optional, custom, properties + Properties []*Property `protobuf:"bytes,11,rep,name=properties,proto3" json:"properties,omitempty"` +} + +func (x *ReleaseNotes) Reset() { + *x = ReleaseNotes{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReleaseNotes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReleaseNotes) ProtoMessage() {} + +func (x *ReleaseNotes) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReleaseNotes.ProtoReflect.Descriptor instead. +func (*ReleaseNotes) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{34} +} + +func (x *ReleaseNotes) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *ReleaseNotes) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} + +func (x *ReleaseNotes) GetFeaturedImage() string { + if x != nil && x.FeaturedImage != nil { + return *x.FeaturedImage + } + return "" +} + +func (x *ReleaseNotes) GetSocialImage() string { + if x != nil && x.SocialImage != nil { + return *x.SocialImage + } + return "" +} + +func (x *ReleaseNotes) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *ReleaseNotes) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *ReleaseNotes) GetAliases() []string { + if x != nil { + return x.Aliases + } + return nil +} + +func (x *ReleaseNotes) GetTags() []string { + if x != nil { + return x.Tags + } + return nil +} + +func (x *ReleaseNotes) GetResolves() []*Issue { + if x != nil { + return x.Resolves + } + return nil +} + +func (x *ReleaseNotes) GetNotes() []*Note { + if x != nil { + return x.Notes + } + return nil +} + +func (x *ReleaseNotes) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +type Vulnerability struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An optional identifier which can be used to reference the vulnerability elsewhere in the BOM. Uniqueness is enforced within all elements and children of the root-level bom element. + BomRef *string `protobuf:"bytes,1,opt,name=bom_ref,json=bomRef,proto3,oneof" json:"bom_ref,omitempty"` + // The identifier that uniquely identifies the vulnerability. + Id *string `protobuf:"bytes,2,opt,name=id,proto3,oneof" json:"id,omitempty"` + // The source that published the vulnerability. + Source *Source `protobuf:"bytes,3,opt,name=source,proto3,oneof" json:"source,omitempty"` + // Zero or more pointers to vulnerabilities that are the equivalent of the vulnerability specified. Often times, the same vulnerability may exist in multiple sources of vulnerability intelligence, but have different identifiers. References provide a way to correlate vulnerabilities across multiple sources of vulnerability intelligence. + References []*VulnerabilityReference `protobuf:"bytes,4,rep,name=references,proto3" json:"references,omitempty"` + // List of vulnerability ratings + Ratings []*VulnerabilityRating `protobuf:"bytes,5,rep,name=ratings,proto3" json:"ratings,omitempty"` + // List of Common Weaknesses Enumerations (CWEs) codes that describes this vulnerability. For example 399 (of https://cwe.mitre.org/data/definitions/399.html) + Cwes []int32 `protobuf:"varint,6,rep,packed,name=cwes,proto3" json:"cwes,omitempty"` + // A description of the vulnerability as provided by the source. + Description *string `protobuf:"bytes,7,opt,name=description,proto3,oneof" json:"description,omitempty"` + // If available, an in-depth description of the vulnerability as provided by the source organization. Details often include information useful in understanding root cause. + Detail *string `protobuf:"bytes,8,opt,name=detail,proto3,oneof" json:"detail,omitempty"` + // Recommendations of how the vulnerability can be remediated or mitigated. + Recommendation *string `protobuf:"bytes,9,opt,name=recommendation,proto3,oneof" json:"recommendation,omitempty"` + // Published advisories of the vulnerability if provided. + Advisories []*Advisory `protobuf:"bytes,10,rep,name=advisories,proto3" json:"advisories,omitempty"` + // The date and time (timestamp) when the vulnerability record was created in the vulnerability database. + Created *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=created,proto3,oneof" json:"created,omitempty"` + // The date and time (timestamp) when the vulnerability record was first published. + Published *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=published,proto3,oneof" json:"published,omitempty"` + // The date and time (timestamp) when the vulnerability record was last updated. + Updated *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=updated,proto3,oneof" json:"updated,omitempty"` + // Individuals or organizations credited with the discovery of the vulnerability. + Credits *VulnerabilityCredits `protobuf:"bytes,14,opt,name=credits,proto3,oneof" json:"credits,omitempty"` + // The tool(s) used to identify, confirm, or score the vulnerability. + Tools *Tool `protobuf:"bytes,15,opt,name=tools,proto3,oneof" json:"tools,omitempty"` + // An assessment of the impact and exploitability of the vulnerability. + Analysis *VulnerabilityAnalysis `protobuf:"bytes,16,opt,name=analysis,proto3,oneof" json:"analysis,omitempty"` + // affects + Affects []*VulnerabilityAffects `protobuf:"bytes,17,rep,name=affects,proto3" json:"affects,omitempty"` + // Specifies optional, custom, properties + Properties []*Property `protobuf:"bytes,18,rep,name=properties,proto3" json:"properties,omitempty"` + // The date and time (timestamp) when the vulnerability record was rejected (if applicable). + Rejected *timestamppb.Timestamp `protobuf:"bytes,19,opt,name=rejected,proto3,oneof" json:"rejected,omitempty"` + // Evidence used to reproduce the vulnerability. + ProofOfConcept *ProofOfConcept `protobuf:"bytes,20,opt,name=proofOfConcept,proto3,oneof" json:"proofOfConcept,omitempty"` + // A bypass, usually temporary, of the vulnerability that reduces its likelihood and/or impact. Workarounds often involve changes to configuration or deployments. + Workaround *string `protobuf:"bytes,21,opt,name=workaround,proto3,oneof" json:"workaround,omitempty"` +} + +func (x *Vulnerability) Reset() { + *x = Vulnerability{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Vulnerability) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Vulnerability) ProtoMessage() {} + +func (x *Vulnerability) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Vulnerability.ProtoReflect.Descriptor instead. +func (*Vulnerability) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{35} +} + +func (x *Vulnerability) GetBomRef() string { + if x != nil && x.BomRef != nil { + return *x.BomRef + } + return "" +} + +func (x *Vulnerability) GetId() string { + if x != nil && x.Id != nil { + return *x.Id + } + return "" +} + +func (x *Vulnerability) GetSource() *Source { + if x != nil { + return x.Source + } + return nil +} + +func (x *Vulnerability) GetReferences() []*VulnerabilityReference { + if x != nil { + return x.References + } + return nil +} + +func (x *Vulnerability) GetRatings() []*VulnerabilityRating { + if x != nil { + return x.Ratings + } + return nil +} + +func (x *Vulnerability) GetCwes() []int32 { + if x != nil { + return x.Cwes + } + return nil +} + +func (x *Vulnerability) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *Vulnerability) GetDetail() string { + if x != nil && x.Detail != nil { + return *x.Detail + } + return "" +} + +func (x *Vulnerability) GetRecommendation() string { + if x != nil && x.Recommendation != nil { + return *x.Recommendation + } + return "" +} + +func (x *Vulnerability) GetAdvisories() []*Advisory { + if x != nil { + return x.Advisories + } + return nil +} + +func (x *Vulnerability) GetCreated() *timestamppb.Timestamp { + if x != nil { + return x.Created + } + return nil +} + +func (x *Vulnerability) GetPublished() *timestamppb.Timestamp { + if x != nil { + return x.Published + } + return nil +} + +func (x *Vulnerability) GetUpdated() *timestamppb.Timestamp { + if x != nil { + return x.Updated + } + return nil +} + +func (x *Vulnerability) GetCredits() *VulnerabilityCredits { + if x != nil { + return x.Credits + } + return nil +} + +func (x *Vulnerability) GetTools() *Tool { + if x != nil { + return x.Tools + } + return nil +} + +func (x *Vulnerability) GetAnalysis() *VulnerabilityAnalysis { + if x != nil { + return x.Analysis + } + return nil +} + +func (x *Vulnerability) GetAffects() []*VulnerabilityAffects { + if x != nil { + return x.Affects + } + return nil +} + +func (x *Vulnerability) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +func (x *Vulnerability) GetRejected() *timestamppb.Timestamp { + if x != nil { + return x.Rejected + } + return nil +} + +func (x *Vulnerability) GetProofOfConcept() *ProofOfConcept { + if x != nil { + return x.ProofOfConcept + } + return nil +} + +func (x *Vulnerability) GetWorkaround() string { + if x != nil && x.Workaround != nil { + return *x.Workaround + } + return "" +} + +type ProofOfConcept struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Precise steps to reproduce the vulnerability. + ReproductionSteps *string `protobuf:"bytes,1,opt,name=reproductionSteps,proto3,oneof" json:"reproductionSteps,omitempty"` + // A description of the environment in which reproduction was possible. + Environment *string `protobuf:"bytes,2,opt,name=environment,proto3,oneof" json:"environment,omitempty"` + // Supporting material that helps in reproducing or understanding how reproduction is possible. This may include screenshots, payloads, and PoC exploit code. + SupportingMaterial []*AttachedText `protobuf:"bytes,3,rep,name=supportingMaterial,proto3" json:"supportingMaterial,omitempty"` +} + +func (x *ProofOfConcept) Reset() { + *x = ProofOfConcept{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProofOfConcept) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProofOfConcept) ProtoMessage() {} + +func (x *ProofOfConcept) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProofOfConcept.ProtoReflect.Descriptor instead. +func (*ProofOfConcept) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{36} +} + +func (x *ProofOfConcept) GetReproductionSteps() string { + if x != nil && x.ReproductionSteps != nil { + return *x.ReproductionSteps + } + return "" +} + +func (x *ProofOfConcept) GetEnvironment() string { + if x != nil && x.Environment != nil { + return *x.Environment + } + return "" +} + +func (x *ProofOfConcept) GetSupportingMaterial() []*AttachedText { + if x != nil { + return x.SupportingMaterial + } + return nil +} + +type VulnerabilityReference struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An identifier that uniquely identifies the vulnerability. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // The source that published the vulnerability. + Source *Source `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"` +} + +func (x *VulnerabilityReference) Reset() { + *x = VulnerabilityReference{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VulnerabilityReference) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VulnerabilityReference) ProtoMessage() {} + +func (x *VulnerabilityReference) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VulnerabilityReference.ProtoReflect.Descriptor instead. +func (*VulnerabilityReference) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{37} +} + +func (x *VulnerabilityReference) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *VulnerabilityReference) GetSource() *Source { + if x != nil { + return x.Source + } + return nil +} + +type VulnerabilityRating struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The source that calculated the severity or risk rating of the vulnerability. + Source *Source `protobuf:"bytes,1,opt,name=source,proto3,oneof" json:"source,omitempty"` + // The numerical score of the rating. + Score *float64 `protobuf:"fixed64,2,opt,name=score,proto3,oneof" json:"score,omitempty"` + // Textual representation of the severity that corresponds to the numerical score of the rating. + Severity *Severity `protobuf:"varint,3,opt,name=severity,proto3,enum=cyclonedx.v1_5.Severity,oneof" json:"severity,omitempty"` + // Specifies the severity or risk scoring methodology or standard used. + Method *ScoreMethod `protobuf:"varint,4,opt,name=method,proto3,enum=cyclonedx.v1_5.ScoreMethod,oneof" json:"method,omitempty"` + // Textual representation of the metric values used to score the vulnerability. + Vector *string `protobuf:"bytes,5,opt,name=vector,proto3,oneof" json:"vector,omitempty"` + // An optional reason for rating the vulnerability as it was. + Justification *string `protobuf:"bytes,6,opt,name=justification,proto3,oneof" json:"justification,omitempty"` +} + +func (x *VulnerabilityRating) Reset() { + *x = VulnerabilityRating{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VulnerabilityRating) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VulnerabilityRating) ProtoMessage() {} + +func (x *VulnerabilityRating) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VulnerabilityRating.ProtoReflect.Descriptor instead. +func (*VulnerabilityRating) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{38} +} + +func (x *VulnerabilityRating) GetSource() *Source { + if x != nil { + return x.Source + } + return nil +} + +func (x *VulnerabilityRating) GetScore() float64 { + if x != nil && x.Score != nil { + return *x.Score + } + return 0 +} + +func (x *VulnerabilityRating) GetSeverity() Severity { + if x != nil && x.Severity != nil { + return *x.Severity + } + return Severity_SEVERITY_UNKNOWN +} + +func (x *VulnerabilityRating) GetMethod() ScoreMethod { + if x != nil && x.Method != nil { + return *x.Method + } + return ScoreMethod_SCORE_METHOD_NULL +} + +func (x *VulnerabilityRating) GetVector() string { + if x != nil && x.Vector != nil { + return *x.Vector + } + return "" +} + +func (x *VulnerabilityRating) GetJustification() string { + if x != nil && x.Justification != nil { + return *x.Justification + } + return "" +} + +type Advisory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An optional name of the advisory. + Title *string `protobuf:"bytes,1,opt,name=title,proto3,oneof" json:"title,omitempty"` + // Location where the advisory can be obtained. + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` +} + +func (x *Advisory) Reset() { + *x = Advisory{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Advisory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Advisory) ProtoMessage() {} + +func (x *Advisory) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Advisory.ProtoReflect.Descriptor instead. +func (*Advisory) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{39} +} + +func (x *Advisory) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} + +func (x *Advisory) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +type VulnerabilityCredits struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The organizations credited with vulnerability discovery. + Organizations []*OrganizationalEntity `protobuf:"bytes,1,rep,name=organizations,proto3" json:"organizations,omitempty"` + // The individuals, not associated with organizations, that are credited with vulnerability discovery. + Individuals []*OrganizationalContact `protobuf:"bytes,2,rep,name=individuals,proto3" json:"individuals,omitempty"` +} + +func (x *VulnerabilityCredits) Reset() { + *x = VulnerabilityCredits{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VulnerabilityCredits) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VulnerabilityCredits) ProtoMessage() {} + +func (x *VulnerabilityCredits) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VulnerabilityCredits.ProtoReflect.Descriptor instead. +func (*VulnerabilityCredits) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{40} +} + +func (x *VulnerabilityCredits) GetOrganizations() []*OrganizationalEntity { + if x != nil { + return x.Organizations + } + return nil +} + +func (x *VulnerabilityCredits) GetIndividuals() []*OrganizationalContact { + if x != nil { + return x.Individuals + } + return nil +} + +type VulnerabilityAnalysis struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Declares the current state of an occurrence of a vulnerability, after automated or manual analysis. + State *ImpactAnalysisState `protobuf:"varint,1,opt,name=state,proto3,enum=cyclonedx.v1_5.ImpactAnalysisState,oneof" json:"state,omitempty"` + // The rationale of why the impact analysis state was asserted. + Justification *ImpactAnalysisJustification `protobuf:"varint,2,opt,name=justification,proto3,enum=cyclonedx.v1_5.ImpactAnalysisJustification,oneof" json:"justification,omitempty"` + // A response to the vulnerability by the manufacturer, supplier, or project responsible for the affected component or service. More than one response is allowed. Responses are strongly encouraged for vulnerabilities where the analysis state is exploitable. + Response []VulnerabilityResponse `protobuf:"varint,3,rep,packed,name=response,proto3,enum=cyclonedx.v1_5.VulnerabilityResponse" json:"response,omitempty"` + // Detailed description of the impact including methods used during assessment. If a vulnerability is not exploitable, this field should include specific details on why the component or service is not impacted by this vulnerability. + Detail *string `protobuf:"bytes,4,opt,name=detail,proto3,oneof" json:"detail,omitempty"` + // The date and time (timestamp) when the analysis was first issued. + FirstIssued *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=firstIssued,proto3,oneof" json:"firstIssued,omitempty"` + // The date and time (timestamp) when the analysis was last updated. + LastUpdated *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=lastUpdated,proto3,oneof" json:"lastUpdated,omitempty"` +} + +func (x *VulnerabilityAnalysis) Reset() { + *x = VulnerabilityAnalysis{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VulnerabilityAnalysis) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VulnerabilityAnalysis) ProtoMessage() {} + +func (x *VulnerabilityAnalysis) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VulnerabilityAnalysis.ProtoReflect.Descriptor instead. +func (*VulnerabilityAnalysis) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{41} +} + +func (x *VulnerabilityAnalysis) GetState() ImpactAnalysisState { + if x != nil && x.State != nil { + return *x.State + } + return ImpactAnalysisState_IMPACT_ANALYSIS_STATE_NULL +} + +func (x *VulnerabilityAnalysis) GetJustification() ImpactAnalysisJustification { + if x != nil && x.Justification != nil { + return *x.Justification + } + return ImpactAnalysisJustification_IMPACT_ANALYSIS_JUSTIFICATION_NULL +} + +func (x *VulnerabilityAnalysis) GetResponse() []VulnerabilityResponse { + if x != nil { + return x.Response + } + return nil +} + +func (x *VulnerabilityAnalysis) GetDetail() string { + if x != nil && x.Detail != nil { + return *x.Detail + } + return "" +} + +func (x *VulnerabilityAnalysis) GetFirstIssued() *timestamppb.Timestamp { + if x != nil { + return x.FirstIssued + } + return nil +} + +func (x *VulnerabilityAnalysis) GetLastUpdated() *timestamppb.Timestamp { + if x != nil { + return x.LastUpdated + } + return nil +} + +type VulnerabilityAffects struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // References a component or service by the objects bom-ref + Ref string `protobuf:"bytes,1,opt,name=ref,proto3" json:"ref,omitempty"` + // Zero or more individual versions or range of versions. + Versions []*VulnerabilityAffectedVersions `protobuf:"bytes,2,rep,name=versions,proto3" json:"versions,omitempty"` +} + +func (x *VulnerabilityAffects) Reset() { + *x = VulnerabilityAffects{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VulnerabilityAffects) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VulnerabilityAffects) ProtoMessage() {} + +func (x *VulnerabilityAffects) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VulnerabilityAffects.ProtoReflect.Descriptor instead. +func (*VulnerabilityAffects) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{42} +} + +func (x *VulnerabilityAffects) GetRef() string { + if x != nil { + return x.Ref + } + return "" +} + +func (x *VulnerabilityAffects) GetVersions() []*VulnerabilityAffectedVersions { + if x != nil { + return x.Versions + } + return nil +} + +type VulnerabilityAffectedVersions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Choice: + // + // *VulnerabilityAffectedVersions_Version + // *VulnerabilityAffectedVersions_Range + Choice isVulnerabilityAffectedVersions_Choice `protobuf_oneof:"choice"` + // The vulnerability status for the version or range of versions. Defaults to VULNERABILITY_AFFECTED_STATUS_AFFECTED if not specified. + Status *VulnerabilityAffectedStatus `protobuf:"varint,3,opt,name=status,proto3,enum=cyclonedx.v1_5.VulnerabilityAffectedStatus,oneof" json:"status,omitempty"` +} + +func (x *VulnerabilityAffectedVersions) Reset() { + *x = VulnerabilityAffectedVersions{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VulnerabilityAffectedVersions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VulnerabilityAffectedVersions) ProtoMessage() {} + +func (x *VulnerabilityAffectedVersions) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VulnerabilityAffectedVersions.ProtoReflect.Descriptor instead. +func (*VulnerabilityAffectedVersions) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{43} +} + +func (m *VulnerabilityAffectedVersions) GetChoice() isVulnerabilityAffectedVersions_Choice { + if m != nil { + return m.Choice + } + return nil +} + +func (x *VulnerabilityAffectedVersions) GetVersion() string { + if x, ok := x.GetChoice().(*VulnerabilityAffectedVersions_Version); ok { + return x.Version + } + return "" +} + +func (x *VulnerabilityAffectedVersions) GetRange() string { + if x, ok := x.GetChoice().(*VulnerabilityAffectedVersions_Range); ok { + return x.Range + } + return "" +} + +func (x *VulnerabilityAffectedVersions) GetStatus() VulnerabilityAffectedStatus { + if x != nil && x.Status != nil { + return *x.Status + } + return VulnerabilityAffectedStatus_VULNERABILITY_AFFECTED_STATUS_UNKNOWN +} + +type isVulnerabilityAffectedVersions_Choice interface { + isVulnerabilityAffectedVersions_Choice() +} + +type VulnerabilityAffectedVersions_Version struct { + // A single version of a component or service. + Version string `protobuf:"bytes,1,opt,name=version,proto3,oneof"` +} + +type VulnerabilityAffectedVersions_Range struct { + // A version range specified in Package URL Version Range syntax (vers) which is defined at https://github.com/package-url/purl-spec/VERSION-RANGE-SPEC.rst + Range string `protobuf:"bytes,2,opt,name=range,proto3,oneof"` +} + +func (*VulnerabilityAffectedVersions_Version) isVulnerabilityAffectedVersions_Choice() {} + +func (*VulnerabilityAffectedVersions_Range) isVulnerabilityAffectedVersions_Choice() {} + +type AnnotatorChoice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Choice: + // + // *AnnotatorChoice_Organization + // *AnnotatorChoice_Individual + // *AnnotatorChoice_Component + // *AnnotatorChoice_Service + Choice isAnnotatorChoice_Choice `protobuf_oneof:"choice"` +} + +func (x *AnnotatorChoice) Reset() { + *x = AnnotatorChoice{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnnotatorChoice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnnotatorChoice) ProtoMessage() {} + +func (x *AnnotatorChoice) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AnnotatorChoice.ProtoReflect.Descriptor instead. +func (*AnnotatorChoice) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{44} +} + +func (m *AnnotatorChoice) GetChoice() isAnnotatorChoice_Choice { + if m != nil { + return m.Choice + } + return nil +} + +func (x *AnnotatorChoice) GetOrganization() *OrganizationalEntity { + if x, ok := x.GetChoice().(*AnnotatorChoice_Organization); ok { + return x.Organization + } + return nil +} + +func (x *AnnotatorChoice) GetIndividual() *OrganizationalContact { + if x, ok := x.GetChoice().(*AnnotatorChoice_Individual); ok { + return x.Individual + } + return nil +} + +func (x *AnnotatorChoice) GetComponent() *Component { + if x, ok := x.GetChoice().(*AnnotatorChoice_Component); ok { + return x.Component + } + return nil +} + +func (x *AnnotatorChoice) GetService() *Service { + if x, ok := x.GetChoice().(*AnnotatorChoice_Service); ok { + return x.Service + } + return nil +} + +type isAnnotatorChoice_Choice interface { + isAnnotatorChoice_Choice() +} + +type AnnotatorChoice_Organization struct { + // The organization that created the annotation + Organization *OrganizationalEntity `protobuf:"bytes,1,opt,name=organization,proto3,oneof"` +} + +type AnnotatorChoice_Individual struct { + // The person that created the annotation + Individual *OrganizationalContact `protobuf:"bytes,2,opt,name=individual,proto3,oneof"` +} + +type AnnotatorChoice_Component struct { + // The tool or component that created the annotation + Component *Component `protobuf:"bytes,3,opt,name=component,proto3,oneof"` +} + +type AnnotatorChoice_Service struct { + // The service that created the annotation + Service *Service `protobuf:"bytes,4,opt,name=service,proto3,oneof"` +} + +func (*AnnotatorChoice_Organization) isAnnotatorChoice_Choice() {} + +func (*AnnotatorChoice_Individual) isAnnotatorChoice_Choice() {} + +func (*AnnotatorChoice_Component) isAnnotatorChoice_Choice() {} + +func (*AnnotatorChoice_Service) isAnnotatorChoice_Choice() {} + +type Annotation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An optional identifier which can be used to reference the annotation elsewhere in the BOM. Every bom-ref MUST be unique within the BOM. + BomRef *string `protobuf:"bytes,1,opt,name=bom_ref,json=bomRef,proto3,oneof" json:"bom_ref,omitempty"` + // The object in the BOM identified by its bom-ref. This is often a component or service, but may be any object type supporting bom-refs. + Subjects []string `protobuf:"bytes,2,rep,name=subjects,proto3" json:"subjects,omitempty"` + // The organization, person, component, or service which created the textual content of the annotation. + Annotator *AnnotatorChoice `protobuf:"bytes,3,opt,name=annotator,proto3" json:"annotator,omitempty"` + // The date and time (timestamp) when the annotation was created. + Timestamp *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + // The textual content of the annotation. + Text string `protobuf:"bytes,5,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *Annotation) Reset() { + *x = Annotation{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Annotation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Annotation) ProtoMessage() {} + +func (x *Annotation) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Annotation.ProtoReflect.Descriptor instead. +func (*Annotation) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{45} +} + +func (x *Annotation) GetBomRef() string { + if x != nil && x.BomRef != nil { + return *x.BomRef + } + return "" +} + +func (x *Annotation) GetSubjects() []string { + if x != nil { + return x.Subjects + } + return nil +} + +func (x *Annotation) GetAnnotator() *AnnotatorChoice { + if x != nil { + return x.Annotator + } + return nil +} + +func (x *Annotation) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *Annotation) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type ModelCard struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An optional identifier which can be used to reference the model card elsewhere in the BOM. Every bom-ref MUST be unique within the BOM. + BomRef *string `protobuf:"bytes,1,opt,name=bom_ref,json=bomRef,proto3,oneof" json:"bom_ref,omitempty"` + // Hyper-parameters for construction of the model. + ModelParameters *ModelCard_ModelParameters `protobuf:"bytes,2,opt,name=modelParameters,proto3,oneof" json:"modelParameters,omitempty"` + // A quantitative analysis of the model + QuantitativeAnalysis *ModelCard_QuantitativeAnalysis `protobuf:"bytes,3,opt,name=quantitativeAnalysis,proto3,oneof" json:"quantitativeAnalysis,omitempty"` + // What considerations should be taken into account regarding the model's construction, training, and application? + Considerations *ModelCard_ModelCardConsiderations `protobuf:"bytes,4,opt,name=considerations,proto3,oneof" json:"considerations,omitempty"` +} + +func (x *ModelCard) Reset() { + *x = ModelCard{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModelCard) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelCard) ProtoMessage() {} + +func (x *ModelCard) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModelCard.ProtoReflect.Descriptor instead. +func (*ModelCard) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{46} +} + +func (x *ModelCard) GetBomRef() string { + if x != nil && x.BomRef != nil { + return *x.BomRef + } + return "" +} + +func (x *ModelCard) GetModelParameters() *ModelCard_ModelParameters { + if x != nil { + return x.ModelParameters + } + return nil +} + +func (x *ModelCard) GetQuantitativeAnalysis() *ModelCard_QuantitativeAnalysis { + if x != nil { + return x.QuantitativeAnalysis + } + return nil +} + +func (x *ModelCard) GetConsiderations() *ModelCard_ModelCardConsiderations { + if x != nil { + return x.Considerations + } + return nil +} + +type ComponentData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An optional identifier which can be used to reference the dataset elsewhere in the BOM. Every bom-ref MUST be unique within the BOM. + BomRef *string `protobuf:"bytes,1,opt,name=bom_ref,json=bomRef,proto3,oneof" json:"bom_ref,omitempty"` + // The general theme or subject matter of the data being specified. + Type ComponentDataType `protobuf:"varint,2,opt,name=type,proto3,enum=cyclonedx.v1_5.ComponentDataType" json:"type,omitempty"` + // The name of the dataset. + Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The contents or references to the contents of the data being described. + Contents *ComponentData_ComponentDataContents `protobuf:"bytes,4,opt,name=contents,proto3,oneof" json:"contents,omitempty"` + // Data classification tags data according to its type, sensitivity, and value if altered, stolen, or destroyed. + Classification *string `protobuf:"bytes,5,opt,name=classification,proto3,oneof" json:"classification,omitempty"` + // A description of any sensitive data in a dataset. + SensitiveData []string `protobuf:"bytes,6,rep,name=sensitiveData,proto3" json:"sensitiveData,omitempty"` + // A collection of graphics that represent various measurements. + Graphics *GraphicsCollection `protobuf:"bytes,7,opt,name=graphics,proto3,oneof" json:"graphics,omitempty"` + // A description of the dataset. Can describe size of dataset, whether it's used for source code, training, testing, or validation, etc. + Description *string `protobuf:"bytes,8,opt,name=description,proto3,oneof" json:"description,omitempty"` + // Data Governance + Governance *DataGovernance `protobuf:"bytes,9,opt,name=governance,proto3,oneof" json:"governance,omitempty"` +} + +func (x *ComponentData) Reset() { + *x = ComponentData{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ComponentData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComponentData) ProtoMessage() {} + +func (x *ComponentData) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComponentData.ProtoReflect.Descriptor instead. +func (*ComponentData) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{47} +} + +func (x *ComponentData) GetBomRef() string { + if x != nil && x.BomRef != nil { + return *x.BomRef + } + return "" +} + +func (x *ComponentData) GetType() ComponentDataType { + if x != nil { + return x.Type + } + return ComponentDataType_COMPONENT_DATA_TYPE_SOURCE_CODE +} + +func (x *ComponentData) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *ComponentData) GetContents() *ComponentData_ComponentDataContents { + if x != nil { + return x.Contents + } + return nil +} + +func (x *ComponentData) GetClassification() string { + if x != nil && x.Classification != nil { + return *x.Classification + } + return "" +} + +func (x *ComponentData) GetSensitiveData() []string { + if x != nil { + return x.SensitiveData + } + return nil +} + +func (x *ComponentData) GetGraphics() *GraphicsCollection { + if x != nil { + return x.Graphics + } + return nil +} + +func (x *ComponentData) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *ComponentData) GetGovernance() *DataGovernance { + if x != nil { + return x.Governance + } + return nil +} + +type DataGovernance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Data custodians are responsible for the safe custody, transport, and storage of data. + Custodians []*DataGovernance_DataGovernanceResponsibleParty `protobuf:"bytes,1,rep,name=custodians,proto3" json:"custodians,omitempty"` + // Data stewards are responsible for data content, context, and associated business rules. + Stewards []*DataGovernance_DataGovernanceResponsibleParty `protobuf:"bytes,2,rep,name=stewards,proto3" json:"stewards,omitempty"` + // Data owners are concerned with risk and appropriate access to data. + Owners []*DataGovernance_DataGovernanceResponsibleParty `protobuf:"bytes,3,rep,name=owners,proto3" json:"owners,omitempty"` +} + +func (x *DataGovernance) Reset() { + *x = DataGovernance{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataGovernance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataGovernance) ProtoMessage() {} + +func (x *DataGovernance) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DataGovernance.ProtoReflect.Descriptor instead. +func (*DataGovernance) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{48} +} + +func (x *DataGovernance) GetCustodians() []*DataGovernance_DataGovernanceResponsibleParty { + if x != nil { + return x.Custodians + } + return nil +} + +func (x *DataGovernance) GetStewards() []*DataGovernance_DataGovernanceResponsibleParty { + if x != nil { + return x.Stewards + } + return nil +} + +func (x *DataGovernance) GetOwners() []*DataGovernance_DataGovernanceResponsibleParty { + if x != nil { + return x.Owners + } + return nil +} + +type GraphicsCollection struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A description of this collection of graphics. + Description *string `protobuf:"bytes,1,opt,name=description,proto3,oneof" json:"description,omitempty"` + // A collection of graphics. + Graphic []*GraphicsCollection_Graphic `protobuf:"bytes,2,rep,name=graphic,proto3" json:"graphic,omitempty"` +} + +func (x *GraphicsCollection) Reset() { + *x = GraphicsCollection{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GraphicsCollection) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GraphicsCollection) ProtoMessage() {} + +func (x *GraphicsCollection) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[49] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GraphicsCollection.ProtoReflect.Descriptor instead. +func (*GraphicsCollection) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{49} +} + +func (x *GraphicsCollection) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *GraphicsCollection) GetGraphic() []*GraphicsCollection_Graphic { + if x != nil { + return x.Graphic + } + return nil +} + +// Describes workflows and resources that captures rules and other aspects of how the associated BOM component or service was formed. +type Formula struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // BOM unique reference to the resource. + BomRef *string `protobuf:"bytes,1,opt,name=bom_ref,json=bomRef,proto3,oneof" json:"bom_ref,omitempty"` + // Transient components that are used in tasks that constitute one or more of this formula's workflows + Components []*Component `protobuf:"bytes,2,rep,name=components,proto3" json:"components,omitempty"` + // Transient services that are used in tasks that constitute one or more of this formula's workflows + Services []*Service `protobuf:"bytes,3,rep,name=services,proto3" json:"services,omitempty"` + // List of workflows that can be declared to accomplish specific orchestrated goals and independently triggered. + Workflows []*Workflow `protobuf:"bytes,4,rep,name=workflows,proto3" json:"workflows,omitempty"` + // Domain-specific formula properties. + Properties []*Property `protobuf:"bytes,5,rep,name=properties,proto3" json:"properties,omitempty"` +} + +func (x *Formula) Reset() { + *x = Formula{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Formula) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Formula) ProtoMessage() {} + +func (x *Formula) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[50] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Formula.ProtoReflect.Descriptor instead. +func (*Formula) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{50} +} + +func (x *Formula) GetBomRef() string { + if x != nil && x.BomRef != nil { + return *x.BomRef + } + return "" +} + +func (x *Formula) GetComponents() []*Component { + if x != nil { + return x.Components + } + return nil +} + +func (x *Formula) GetServices() []*Service { + if x != nil { + return x.Services + } + return nil +} + +func (x *Formula) GetWorkflows() []*Workflow { + if x != nil { + return x.Workflows + } + return nil +} + +func (x *Formula) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +// A specialized orchestration task. +type Workflow struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // BOM unique reference to the resource. + BomRef string `protobuf:"bytes,1,opt,name=bom_ref,json=bomRef,proto3" json:"bom_ref,omitempty"` + // The unique identifier for the resource instance within its deployment context. + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` + // The name of the resource instance. + Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` + // A description of the resource instance. + Description *string `protobuf:"bytes,4,opt,name=description,proto3,oneof" json:"description,omitempty"` + // Domain-specific resource instance properties. + Properties []*Property `protobuf:"bytes,5,rep,name=properties,proto3" json:"properties,omitempty"` + // References to component or service resources that are used to realize the resource instance. + ResourceReferences []*ResourceReferenceChoice `protobuf:"bytes,6,rep,name=resourceReferences,proto3" json:"resourceReferences,omitempty"` + // The tasks that comprise the workflow. + Tasks []*Task `protobuf:"bytes,7,rep,name=tasks,proto3" json:"tasks,omitempty"` + // The graph of dependencies between tasks within the workflow. + TaskDependencies []*Dependency `protobuf:"bytes,8,rep,name=taskDependencies,proto3" json:"taskDependencies,omitempty"` + // Indicates the types of activities performed by the set of workflow tasks. + TaskTypes []TaskType `protobuf:"varint,9,rep,packed,name=taskTypes,proto3,enum=cyclonedx.v1_5.TaskType" json:"taskTypes,omitempty"` + // The trigger that initiated the task. + Trigger *Trigger `protobuf:"bytes,10,opt,name=trigger,proto3,oneof" json:"trigger,omitempty"` + // The sequence of steps for the task. + Steps []*Step `protobuf:"bytes,11,rep,name=steps,proto3" json:"steps,omitempty"` + // Represents resources and data brought into a task at runtime by executor or task commands + Inputs []*InputType `protobuf:"bytes,12,rep,name=inputs,proto3" json:"inputs,omitempty"` + // Represents resources and data output from a task at runtime by executor or task commands + Outputs []*OutputType `protobuf:"bytes,13,rep,name=outputs,proto3" json:"outputs,omitempty"` + // The date and time (timestamp) when the task started. + TimeStart *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=timeStart,proto3,oneof" json:"timeStart,omitempty"` + // The date and time (timestamp) when the task ended. + TimeEnd *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=timeEnd,proto3,oneof" json:"timeEnd,omitempty"` + // A set of named filesystem or data resource shareable by workflow tasks. + Workspaces []*Workspace `protobuf:"bytes,16,rep,name=workspaces,proto3" json:"workspaces,omitempty"` + // A graph of the component runtime topology for workflow's instance. + RuntimeTopology []*Dependency `protobuf:"bytes,17,rep,name=runtimeTopology,proto3" json:"runtimeTopology,omitempty"` +} + +func (x *Workflow) Reset() { + *x = Workflow{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Workflow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Workflow) ProtoMessage() {} + +func (x *Workflow) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Workflow.ProtoReflect.Descriptor instead. +func (*Workflow) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{51} +} + +func (x *Workflow) GetBomRef() string { + if x != nil { + return x.BomRef + } + return "" +} + +func (x *Workflow) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *Workflow) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Workflow) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *Workflow) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +func (x *Workflow) GetResourceReferences() []*ResourceReferenceChoice { + if x != nil { + return x.ResourceReferences + } + return nil +} + +func (x *Workflow) GetTasks() []*Task { + if x != nil { + return x.Tasks + } + return nil +} + +func (x *Workflow) GetTaskDependencies() []*Dependency { + if x != nil { + return x.TaskDependencies + } + return nil +} + +func (x *Workflow) GetTaskTypes() []TaskType { + if x != nil { + return x.TaskTypes + } + return nil +} + +func (x *Workflow) GetTrigger() *Trigger { + if x != nil { + return x.Trigger + } + return nil +} + +func (x *Workflow) GetSteps() []*Step { + if x != nil { + return x.Steps + } + return nil +} + +func (x *Workflow) GetInputs() []*InputType { + if x != nil { + return x.Inputs + } + return nil +} + +func (x *Workflow) GetOutputs() []*OutputType { + if x != nil { + return x.Outputs + } + return nil +} + +func (x *Workflow) GetTimeStart() *timestamppb.Timestamp { + if x != nil { + return x.TimeStart + } + return nil +} + +func (x *Workflow) GetTimeEnd() *timestamppb.Timestamp { + if x != nil { + return x.TimeEnd + } + return nil +} + +func (x *Workflow) GetWorkspaces() []*Workspace { + if x != nil { + return x.Workspaces + } + return nil +} + +func (x *Workflow) GetRuntimeTopology() []*Dependency { + if x != nil { + return x.RuntimeTopology + } + return nil +} + +// Describes the inputs, sequence of steps and resources used to accomplish a task and its output. +type Task struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // BOM unique reference to the resource. + BomRef string `protobuf:"bytes,1,opt,name=bom_ref,json=bomRef,proto3" json:"bom_ref,omitempty"` + // The unique identifier for the resource instance within its deployment context. + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` + // The name of the resource instance. + Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` + // A description of the resource instance. + Description *string `protobuf:"bytes,4,opt,name=description,proto3,oneof" json:"description,omitempty"` + // Domain-specific task instance properties. + Properties []*Property `protobuf:"bytes,5,rep,name=properties,proto3" json:"properties,omitempty"` + // References to component or service resources that are used to realize the resource instance. + ResourceReferences []*ResourceReferenceChoice `protobuf:"bytes,6,rep,name=resourceReferences,proto3" json:"resourceReferences,omitempty"` + // Indicates the types of activities performed by the set of workflow tasks. + TaskTypes []TaskType `protobuf:"varint,7,rep,packed,name=taskTypes,proto3,enum=cyclonedx.v1_5.TaskType" json:"taskTypes,omitempty"` + // The trigger that initiated the task. + Trigger *Trigger `protobuf:"bytes,8,opt,name=trigger,proto3,oneof" json:"trigger,omitempty"` + // "The sequence of steps for the task. + Steps []*Step `protobuf:"bytes,9,rep,name=steps,proto3" json:"steps,omitempty"` + // Represents resources and data brought into a task at runtime by executor or task commands + Inputs []*InputType `protobuf:"bytes,10,rep,name=inputs,proto3" json:"inputs,omitempty"` + // Represents resources and data output from a task at runtime by executor or task commands + Outputs []*OutputType `protobuf:"bytes,11,rep,name=outputs,proto3" json:"outputs,omitempty"` + // The date and time (timestamp) when the task started. + TimeStart *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=timeStart,proto3,oneof" json:"timeStart,omitempty"` + // The date and time (timestamp) when the task ended. + TimeEnd *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=timeEnd,proto3,oneof" json:"timeEnd,omitempty"` + // A set of named filesystem or data resource shareable by workflow tasks. + Workspaces []*Workspace `protobuf:"bytes,16,rep,name=workspaces,proto3" json:"workspaces,omitempty"` + // A graph of the component runtime topology for task's instance. + RuntimeTopology []*Dependency `protobuf:"bytes,17,rep,name=runtimeTopology,proto3" json:"runtimeTopology,omitempty"` +} + +func (x *Task) Reset() { + *x = Task{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Task) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Task) ProtoMessage() {} + +func (x *Task) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Task.ProtoReflect.Descriptor instead. +func (*Task) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{52} +} + +func (x *Task) GetBomRef() string { + if x != nil { + return x.BomRef + } + return "" +} + +func (x *Task) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *Task) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Task) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *Task) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +func (x *Task) GetResourceReferences() []*ResourceReferenceChoice { + if x != nil { + return x.ResourceReferences + } + return nil +} + +func (x *Task) GetTaskTypes() []TaskType { + if x != nil { + return x.TaskTypes + } + return nil +} + +func (x *Task) GetTrigger() *Trigger { + if x != nil { + return x.Trigger + } + return nil +} + +func (x *Task) GetSteps() []*Step { + if x != nil { + return x.Steps + } + return nil +} + +func (x *Task) GetInputs() []*InputType { + if x != nil { + return x.Inputs + } + return nil +} + +func (x *Task) GetOutputs() []*OutputType { + if x != nil { + return x.Outputs + } + return nil +} + +func (x *Task) GetTimeStart() *timestamppb.Timestamp { + if x != nil { + return x.TimeStart + } + return nil +} + +func (x *Task) GetTimeEnd() *timestamppb.Timestamp { + if x != nil { + return x.TimeEnd + } + return nil +} + +func (x *Task) GetWorkspaces() []*Workspace { + if x != nil { + return x.Workspaces + } + return nil +} + +func (x *Task) GetRuntimeTopology() []*Dependency { + if x != nil { + return x.RuntimeTopology + } + return nil +} + +// Executes specific commands or tools in order to accomplish its owning task as part of a sequence. +type Step struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A name for the step. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // A description of the step. + Description *string `protobuf:"bytes,2,opt,name=description,proto3,oneof" json:"description,omitempty"` + // Ordered list of commands or directives for the step + Commands []*Command `protobuf:"bytes,3,rep,name=commands,proto3" json:"commands,omitempty"` + // Domain-specific step properties. + Properties []*Property `protobuf:"bytes,4,rep,name=properties,proto3" json:"properties,omitempty"` +} + +func (x *Step) Reset() { + *x = Step{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Step) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Step) ProtoMessage() {} + +func (x *Step) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[53] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Step.ProtoReflect.Descriptor instead. +func (*Step) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{53} +} + +func (x *Step) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Step) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *Step) GetCommands() []*Command { + if x != nil { + return x.Commands + } + return nil +} + +func (x *Step) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +type Command struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A text representation of the executed command. + Executed *string `protobuf:"bytes,1,opt,name=executed,proto3,oneof" json:"executed,omitempty"` + // Domain-specific command properties. + Properties []*Property `protobuf:"bytes,2,rep,name=properties,proto3" json:"properties,omitempty"` +} + +func (x *Command) Reset() { + *x = Command{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Command) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Command) ProtoMessage() {} + +func (x *Command) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Command.ProtoReflect.Descriptor instead. +func (*Command) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{54} +} + +func (x *Command) GetExecuted() string { + if x != nil && x.Executed != nil { + return *x.Executed + } + return "" +} + +func (x *Command) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +// A named filesystem or data resource shareable by workflow tasks. +type Workspace struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // BOM unique reference to the resource. + BomRef string `protobuf:"bytes,1,opt,name=bom_ref,json=bomRef,proto3" json:"bom_ref,omitempty"` + // The unique identifier for the resource instance within its deployment context. + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` + // The name of the resource instance. + Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The names for the workspace as referenced by other workflow tasks. Effectively, a name mapping so other tasks can use their own local name in their steps. + Aliases []string `protobuf:"bytes,4,rep,name=aliases,proto3" json:"aliases,omitempty"` + // A description of the resource instance. + Description *string `protobuf:"bytes,5,opt,name=description,proto3,oneof" json:"description,omitempty"` + // Domain-specific workspace instance properties. + Properties []*Property `protobuf:"bytes,6,rep,name=properties,proto3" json:"properties,omitempty"` + // References to component or service resources that are used to realize the resource instance. + ResourceReferences []*ResourceReferenceChoice `protobuf:"bytes,7,rep,name=resourceReferences,proto3" json:"resourceReferences,omitempty"` + // Describes the read-write access control for the workspace relative to the owning resource instance. + AccessMode *Workspace_AccessMode `protobuf:"varint,8,opt,name=accessMode,proto3,enum=cyclonedx.v1_5.Workspace_AccessMode,oneof" json:"accessMode,omitempty"` + // A path to a location on disk where the workspace will be available to the associated task's steps. + MountPath *string `protobuf:"bytes,9,opt,name=mountPath,proto3,oneof" json:"mountPath,omitempty"` + // The name of a domain-specific data type the workspace represents. + ManagedDataType *string `protobuf:"bytes,10,opt,name=managedDataType,proto3,oneof" json:"managedDataType,omitempty"` + // Identifies the reference to the request for a specific volume type and parameters. + VolumeRequest *string `protobuf:"bytes,11,opt,name=volumeRequest,proto3,oneof" json:"volumeRequest,omitempty"` + // Information about the actual volume instance allocated to the workspace. + Volume *Volume `protobuf:"bytes,12,opt,name=volume,proto3,oneof" json:"volume,omitempty"` +} + +func (x *Workspace) Reset() { + *x = Workspace{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Workspace) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Workspace) ProtoMessage() {} + +func (x *Workspace) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Workspace.ProtoReflect.Descriptor instead. +func (*Workspace) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{55} +} + +func (x *Workspace) GetBomRef() string { + if x != nil { + return x.BomRef + } + return "" +} + +func (x *Workspace) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *Workspace) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Workspace) GetAliases() []string { + if x != nil { + return x.Aliases + } + return nil +} + +func (x *Workspace) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *Workspace) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +func (x *Workspace) GetResourceReferences() []*ResourceReferenceChoice { + if x != nil { + return x.ResourceReferences + } + return nil +} + +func (x *Workspace) GetAccessMode() Workspace_AccessMode { + if x != nil && x.AccessMode != nil { + return *x.AccessMode + } + return Workspace_ACCESS_MODE_READ_ONLY +} + +func (x *Workspace) GetMountPath() string { + if x != nil && x.MountPath != nil { + return *x.MountPath + } + return "" +} + +func (x *Workspace) GetManagedDataType() string { + if x != nil && x.ManagedDataType != nil { + return *x.ManagedDataType + } + return "" +} + +func (x *Workspace) GetVolumeRequest() string { + if x != nil && x.VolumeRequest != nil { + return *x.VolumeRequest + } + return "" +} + +func (x *Workspace) GetVolume() *Volume { + if x != nil { + return x.Volume + } + return nil +} + +// An identifiable, logical unit of data storage tied to a physical device. +type Volume struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The unique identifier for the volume instance within its deployment context. + Uid *string `protobuf:"bytes,1,opt,name=uid,proto3,oneof" json:"uid,omitempty"` + // The name of the volume instance + Name *string `protobuf:"bytes,2,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The volume mode for the volume instance. + Mode *Volume_VolumeMode `protobuf:"varint,3,opt,name=mode,proto3,enum=cyclonedx.v1_5.Volume_VolumeMode,oneof" json:"mode,omitempty"` + // The underlying path created from the actual volume. + Path *string `protobuf:"bytes,4,opt,name=path,proto3,oneof" json:"path,omitempty"` + // The allocated size of the volume accessible to the associated workspace. This should include the scalar size as well as IEC standard unit in either decimal or binary form. + SizeAllocated *string `protobuf:"bytes,5,opt,name=sizeAllocated,proto3,oneof" json:"sizeAllocated,omitempty"` + // Indicates if the volume persists beyond the life of the resource it is associated with. + Persistent *bool `protobuf:"varint,6,opt,name=persistent,proto3,oneof" json:"persistent,omitempty"` + // Indicates if the volume is remotely (i.e., network) attached. + Remote *bool `protobuf:"varint,7,opt,name=remote,proto3,oneof" json:"remote,omitempty"` + // Domain-specific volume instance properties. + Properties []*Property `protobuf:"bytes,8,rep,name=properties,proto3" json:"properties,omitempty"` +} + +func (x *Volume) Reset() { + *x = Volume{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Volume) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Volume) ProtoMessage() {} + +func (x *Volume) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Volume.ProtoReflect.Descriptor instead. +func (*Volume) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{56} +} + +func (x *Volume) GetUid() string { + if x != nil && x.Uid != nil { + return *x.Uid + } + return "" +} + +func (x *Volume) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Volume) GetMode() Volume_VolumeMode { + if x != nil && x.Mode != nil { + return *x.Mode + } + return Volume_VOLUME_MODE_FILESYSTEM +} + +func (x *Volume) GetPath() string { + if x != nil && x.Path != nil { + return *x.Path + } + return "" +} + +func (x *Volume) GetSizeAllocated() string { + if x != nil && x.SizeAllocated != nil { + return *x.SizeAllocated + } + return "" +} + +func (x *Volume) GetPersistent() bool { + if x != nil && x.Persistent != nil { + return *x.Persistent + } + return false +} + +func (x *Volume) GetRemote() bool { + if x != nil && x.Remote != nil { + return *x.Remote + } + return false +} + +func (x *Volume) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +// Represents a resource that can conditionally activate (or fire) tasks based upon associated events and their data. +type Trigger struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // BOM unique reference to the resource. + BomRef string `protobuf:"bytes,1,opt,name=bom_ref,json=bomRef,proto3" json:"bom_ref,omitempty"` + // The unique identifier for the resource instance within its deployment context. + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` + // The name of the resource instance. + Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` + // A description of the resource instance. + Description *string `protobuf:"bytes,4,opt,name=description,proto3,oneof" json:"description,omitempty"` + // Additional properties of the trigger. + Properties []*Property `protobuf:"bytes,5,rep,name=properties,proto3" json:"properties,omitempty"` + // References to component or service resources that are used to realize the resource instance. + ResourceReferences []*ResourceReferenceChoice `protobuf:"bytes,6,rep,name=resourceReferences,proto3" json:"resourceReferences,omitempty"` + // The source type of event which caused the trigger to fire. + Type Trigger_TriggerType `protobuf:"varint,7,opt,name=type,proto3,enum=cyclonedx.v1_5.Trigger_TriggerType" json:"type,omitempty"` + // The event data that caused the associated trigger to activate. + Event *Event `protobuf:"bytes,8,opt,name=event,proto3,oneof" json:"event,omitempty"` + // Conditions + Conditions []*Condition `protobuf:"bytes,9,rep,name=conditions,proto3" json:"conditions,omitempty"` + // The date and time (timestamp) when the trigger was activated. + TimeActivated *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=timeActivated,proto3,oneof" json:"timeActivated,omitempty"` + // Represents resources and data brought into a task at runtime by executor or task commands + Inputs []*InputType `protobuf:"bytes,11,rep,name=inputs,proto3" json:"inputs,omitempty"` + // Represents resources and data output from a task at runtime by executor or task commands + Outputs []*OutputType `protobuf:"bytes,12,rep,name=outputs,proto3" json:"outputs,omitempty"` +} + +func (x *Trigger) Reset() { + *x = Trigger{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Trigger) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Trigger) ProtoMessage() {} + +func (x *Trigger) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[57] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Trigger.ProtoReflect.Descriptor instead. +func (*Trigger) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{57} +} + +func (x *Trigger) GetBomRef() string { + if x != nil { + return x.BomRef + } + return "" +} + +func (x *Trigger) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *Trigger) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Trigger) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *Trigger) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +func (x *Trigger) GetResourceReferences() []*ResourceReferenceChoice { + if x != nil { + return x.ResourceReferences + } + return nil +} + +func (x *Trigger) GetType() Trigger_TriggerType { + if x != nil { + return x.Type + } + return Trigger_TRIGGER_TYPE_MANUAL +} + +func (x *Trigger) GetEvent() *Event { + if x != nil { + return x.Event + } + return nil +} + +func (x *Trigger) GetConditions() []*Condition { + if x != nil { + return x.Conditions + } + return nil +} + +func (x *Trigger) GetTimeActivated() *timestamppb.Timestamp { + if x != nil { + return x.TimeActivated + } + return nil +} + +func (x *Trigger) GetInputs() []*InputType { + if x != nil { + return x.Inputs + } + return nil +} + +func (x *Trigger) GetOutputs() []*OutputType { + if x != nil { + return x.Outputs + } + return nil +} + +// Represents something that happened that may trigger a response. +type Event struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The unique identifier of the event. + Uid *string `protobuf:"bytes,1,opt,name=uid,proto3,oneof" json:"uid,omitempty"` + // A description of the event. + Description *string `protobuf:"bytes,2,opt,name=description,proto3,oneof" json:"description,omitempty"` + // The date and time (timestamp) when the event was received. + TimeReceived *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=timeReceived,proto3,oneof" json:"timeReceived,omitempty"` + // Encoding of the raw event data. + Data *AttachedText `protobuf:"bytes,4,opt,name=data,proto3,oneof" json:"data,omitempty"` + // References the component or service that was the source of the event + Source *ResourceReferenceChoice `protobuf:"bytes,5,opt,name=source,proto3,oneof" json:"source,omitempty"` + // References the component or service that was the target of the event + Target *ResourceReferenceChoice `protobuf:"bytes,6,opt,name=target,proto3,oneof" json:"target,omitempty"` + // Additional properties of the event. + Properties []*Property `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty"` +} + +func (x *Event) Reset() { + *x = Event{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Event) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Event) ProtoMessage() {} + +func (x *Event) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[58] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Event.ProtoReflect.Descriptor instead. +func (*Event) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{58} +} + +func (x *Event) GetUid() string { + if x != nil && x.Uid != nil { + return *x.Uid + } + return "" +} + +func (x *Event) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *Event) GetTimeReceived() *timestamppb.Timestamp { + if x != nil { + return x.TimeReceived + } + return nil +} + +func (x *Event) GetData() *AttachedText { + if x != nil { + return x.Data + } + return nil +} + +func (x *Event) GetSource() *ResourceReferenceChoice { + if x != nil { + return x.Source + } + return nil +} + +func (x *Event) GetTarget() *ResourceReferenceChoice { + if x != nil { + return x.Target + } + return nil +} + +func (x *Event) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +// Type that represents various input data types and formats. +type InputType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A references to the component or service that provided the input to the task (e.g., reference to a service with data flow value of `inbound`) + Source *ResourceReferenceChoice `protobuf:"bytes,1,opt,name=source,proto3,oneof" json:"source,omitempty"` + // A reference to the component or service that received or stored the input if not the task itself (e.g., a local, named storage workspace) + Target *ResourceReferenceChoice `protobuf:"bytes,2,opt,name=target,proto3,oneof" json:"target,omitempty"` + // A reference to an independent resource provided as an input to a task by the workflow runtime. + Resource *ResourceReferenceChoice `protobuf:"bytes,3,opt,name=resource,proto3,oneof" json:"resource,omitempty"` + // Inputs that have the form of parameters with names and values. + Parameters []*Parameter `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty"` + // Inputs that have the form of parameters with names and values. + EnvironmentVars []*EnvironmentVars `protobuf:"bytes,5,rep,name=environmentVars,proto3" json:"environmentVars,omitempty"` + // Inputs that have the form of data. + Data *AttachedText `protobuf:"bytes,6,opt,name=data,proto3,oneof" json:"data,omitempty"` + // Additional properties of the input data. + Properties []*Property `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty"` +} + +func (x *InputType) Reset() { + *x = InputType{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InputType) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InputType) ProtoMessage() {} + +func (x *InputType) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[59] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InputType.ProtoReflect.Descriptor instead. +func (*InputType) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{59} +} + +func (x *InputType) GetSource() *ResourceReferenceChoice { + if x != nil { + return x.Source + } + return nil +} + +func (x *InputType) GetTarget() *ResourceReferenceChoice { + if x != nil { + return x.Target + } + return nil +} + +func (x *InputType) GetResource() *ResourceReferenceChoice { + if x != nil { + return x.Resource + } + return nil +} + +func (x *InputType) GetParameters() []*Parameter { + if x != nil { + return x.Parameters + } + return nil +} + +func (x *InputType) GetEnvironmentVars() []*EnvironmentVars { + if x != nil { + return x.EnvironmentVars + } + return nil +} + +func (x *InputType) GetData() *AttachedText { + if x != nil { + return x.Data + } + return nil +} + +func (x *InputType) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +type OutputType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Describes the type of data output. + Type *OutputType_OutputTypeType `protobuf:"varint,1,opt,name=type,proto3,enum=cyclonedx.v1_5.OutputType_OutputTypeType,oneof" json:"type,omitempty"` + // Component or service that generated or provided the output from the task (e.g., a build tool) + Source *ResourceReferenceChoice `protobuf:"bytes,2,opt,name=source,proto3,oneof" json:"source,omitempty"` + // Component or service that received the output from the task (e.g., reference to an artifactory service with data flow value of `outbound`) + Target *ResourceReferenceChoice `protobuf:"bytes,3,opt,name=target,proto3,oneof" json:"target,omitempty"` + // A reference to an independent resource generated as output by the task. + Resource *ResourceReferenceChoice `protobuf:"bytes,4,opt,name=resource,proto3,oneof" json:"resource,omitempty"` + // Outputs that have the form of data. + Data *AttachedText `protobuf:"bytes,5,opt,name=data,proto3,oneof" json:"data,omitempty"` + // Outputs that have the form of environment variables. + EnvironmentVars []*EnvironmentVars `protobuf:"bytes,6,rep,name=environmentVars,proto3" json:"environmentVars,omitempty"` + // Additional properties of the output data. + Properties []*Property `protobuf:"bytes,7,rep,name=properties,proto3" json:"properties,omitempty"` +} + +func (x *OutputType) Reset() { + *x = OutputType{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OutputType) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OutputType) ProtoMessage() {} + +func (x *OutputType) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[60] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OutputType.ProtoReflect.Descriptor instead. +func (*OutputType) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{60} +} + +func (x *OutputType) GetType() OutputType_OutputTypeType { + if x != nil && x.Type != nil { + return *x.Type + } + return OutputType_OUTPUT_TYPE_ARTIFACT +} + +func (x *OutputType) GetSource() *ResourceReferenceChoice { + if x != nil { + return x.Source + } + return nil +} + +func (x *OutputType) GetTarget() *ResourceReferenceChoice { + if x != nil { + return x.Target + } + return nil +} + +func (x *OutputType) GetResource() *ResourceReferenceChoice { + if x != nil { + return x.Resource + } + return nil +} + +func (x *OutputType) GetData() *AttachedText { + if x != nil { + return x.Data + } + return nil +} + +func (x *OutputType) GetEnvironmentVars() []*EnvironmentVars { + if x != nil { + return x.EnvironmentVars + } + return nil +} + +func (x *OutputType) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +type ResourceReferenceChoice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Choice: + // + // *ResourceReferenceChoice_Ref + // *ResourceReferenceChoice_ExternalReference + Choice isResourceReferenceChoice_Choice `protobuf_oneof:"choice"` +} + +func (x *ResourceReferenceChoice) Reset() { + *x = ResourceReferenceChoice{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResourceReferenceChoice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceReferenceChoice) ProtoMessage() {} + +func (x *ResourceReferenceChoice) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[61] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceReferenceChoice.ProtoReflect.Descriptor instead. +func (*ResourceReferenceChoice) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{61} +} + +func (m *ResourceReferenceChoice) GetChoice() isResourceReferenceChoice_Choice { + if m != nil { + return m.Choice + } + return nil +} + +func (x *ResourceReferenceChoice) GetRef() string { + if x, ok := x.GetChoice().(*ResourceReferenceChoice_Ref); ok { + return x.Ref + } + return "" +} + +func (x *ResourceReferenceChoice) GetExternalReference() *ExternalReference { + if x, ok := x.GetChoice().(*ResourceReferenceChoice_ExternalReference); ok { + return x.ExternalReference + } + return nil +} + +type isResourceReferenceChoice_Choice interface { + isResourceReferenceChoice_Choice() +} + +type ResourceReferenceChoice_Ref struct { + Ref string `protobuf:"bytes,1,opt,name=ref,proto3,oneof"` +} + +type ResourceReferenceChoice_ExternalReference struct { + ExternalReference *ExternalReference `protobuf:"bytes,2,opt,name=externalReference,proto3,oneof"` +} + +func (*ResourceReferenceChoice_Ref) isResourceReferenceChoice_Choice() {} + +func (*ResourceReferenceChoice_ExternalReference) isResourceReferenceChoice_Choice() {} + +// A condition that was used to determine a trigger should be activated. +type Condition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Describes the set of conditions which cause the trigger to activate. + Description *string `protobuf:"bytes,1,opt,name=description,proto3,oneof" json:"description,omitempty"` + // The logical expression that was evaluated that determined the trigger should be fired. + Expression *string `protobuf:"bytes,2,opt,name=expression,proto3,oneof" json:"expression,omitempty"` + // Domain-specific condition instance properties. + Properties []*Property `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty"` +} + +func (x *Condition) Reset() { + *x = Condition{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Condition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Condition) ProtoMessage() {} + +func (x *Condition) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[62] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Condition.ProtoReflect.Descriptor instead. +func (*Condition) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{62} +} + +func (x *Condition) GetDescription() string { + if x != nil && x.Description != nil { + return *x.Description + } + return "" +} + +func (x *Condition) GetExpression() string { + if x != nil && x.Expression != nil { + return *x.Expression + } + return "" +} + +func (x *Condition) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +// A representation of a functional parameter. +type Parameter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the parameter. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The value of the parameter. + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // The data type of the parameter. + DataType *string `protobuf:"bytes,3,opt,name=dataType,proto3,oneof" json:"dataType,omitempty"` +} + +func (x *Parameter) Reset() { + *x = Parameter{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Parameter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Parameter) ProtoMessage() {} + +func (x *Parameter) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[63] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Parameter.ProtoReflect.Descriptor instead. +func (*Parameter) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{63} +} + +func (x *Parameter) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *Parameter) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +func (x *Parameter) GetDataType() string { + if x != nil && x.DataType != nil { + return *x.DataType + } + return "" +} + +type EnvironmentVars struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Choice: + // + // *EnvironmentVars_Property + // *EnvironmentVars_Value + Choice isEnvironmentVars_Choice `protobuf_oneof:"choice"` +} + +func (x *EnvironmentVars) Reset() { + *x = EnvironmentVars{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EnvironmentVars) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnvironmentVars) ProtoMessage() {} + +func (x *EnvironmentVars) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[64] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnvironmentVars.ProtoReflect.Descriptor instead. +func (*EnvironmentVars) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{64} +} + +func (m *EnvironmentVars) GetChoice() isEnvironmentVars_Choice { + if m != nil { + return m.Choice + } + return nil +} + +func (x *EnvironmentVars) GetProperty() *Property { + if x, ok := x.GetChoice().(*EnvironmentVars_Property); ok { + return x.Property + } + return nil +} + +func (x *EnvironmentVars) GetValue() string { + if x, ok := x.GetChoice().(*EnvironmentVars_Value); ok { + return x.Value + } + return "" +} + +type isEnvironmentVars_Choice interface { + isEnvironmentVars_Choice() +} + +type EnvironmentVars_Property struct { + Property *Property `protobuf:"bytes,1,opt,name=property,proto3,oneof"` +} + +type EnvironmentVars_Value struct { + Value string `protobuf:"bytes,2,opt,name=value,proto3,oneof"` +} + +func (*EnvironmentVars_Property) isEnvironmentVars_Choice() {} + +func (*EnvironmentVars_Value) isEnvironmentVars_Choice() {} + +type Callstack_Frames struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A package organizes modules into namespaces, providing a unique namespace for each type it contains. + Package *string `protobuf:"bytes,1,opt,name=package,proto3,oneof" json:"package,omitempty"` + // A module or class that encloses functions/methods and other code. + Module string `protobuf:"bytes,2,opt,name=module,proto3" json:"module,omitempty"` + // A block of code designed to perform a particular task. + Function *string `protobuf:"bytes,3,opt,name=function,proto3,oneof" json:"function,omitempty"` + // Optional arguments that are passed to the module or function. + Parameters []string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty"` + // The line number the code that is called resides on. + Line *int32 `protobuf:"varint,5,opt,name=line,proto3,oneof" json:"line,omitempty"` + // The column the code that is called resides. + Column *int32 `protobuf:"varint,6,opt,name=column,proto3,oneof" json:"column,omitempty"` + // The full path and filename of the module. + FullFilename *string `protobuf:"bytes,7,opt,name=fullFilename,proto3,oneof" json:"fullFilename,omitempty"` +} + +func (x *Callstack_Frames) Reset() { + *x = Callstack_Frames{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Callstack_Frames) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Callstack_Frames) ProtoMessage() {} + +func (x *Callstack_Frames) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Callstack_Frames.ProtoReflect.Descriptor instead. +func (*Callstack_Frames) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{29, 0} +} + +func (x *Callstack_Frames) GetPackage() string { + if x != nil && x.Package != nil { + return *x.Package + } + return "" +} + +func (x *Callstack_Frames) GetModule() string { + if x != nil { + return x.Module + } + return "" +} + +func (x *Callstack_Frames) GetFunction() string { + if x != nil && x.Function != nil { + return *x.Function + } + return "" +} + +func (x *Callstack_Frames) GetParameters() []string { + if x != nil { + return x.Parameters + } + return nil +} + +func (x *Callstack_Frames) GetLine() int32 { + if x != nil && x.Line != nil { + return *x.Line + } + return 0 +} + +func (x *Callstack_Frames) GetColumn() int32 { + if x != nil && x.Column != nil { + return *x.Column + } + return 0 +} + +func (x *Callstack_Frames) GetFullFilename() string { + if x != nil && x.FullFilename != nil { + return *x.FullFilename + } + return "" +} + +type ModelCard_ModelParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The overall approach to learning used by the model for problem solving. + Approach *ModelCard_ModelParameters_Approach `protobuf:"bytes,1,opt,name=approach,proto3,oneof" json:"approach,omitempty"` + // Directly influences the input and/or output. Examples include classification, regression, clustering, etc. + Task *string `protobuf:"bytes,2,opt,name=task,proto3,oneof" json:"task,omitempty"` + // The model architecture family such as transformer network, convolutional neural network, residual neural network, LSTM neural network, etc. + ArchitectureFamily *string `protobuf:"bytes,3,opt,name=architectureFamily,proto3,oneof" json:"architectureFamily,omitempty"` + // The specific architecture of the model such as GPT-1, ResNet-50, YOLOv3, etc. + ModelArchitecture *string `protobuf:"bytes,4,opt,name=modelArchitecture,proto3,oneof" json:"modelArchitecture,omitempty"` + // The datasets used to train and evaluate the model. + Datasets []*ModelCard_ModelParameters_Datasets `protobuf:"bytes,5,rep,name=datasets,proto3" json:"datasets,omitempty"` + // The input format(s) of the model + Inputs []*ModelCard_ModelParameters_MachineLearningInputOutputParameters `protobuf:"bytes,6,rep,name=inputs,proto3" json:"inputs,omitempty"` + // The output format(s) from the model + Outputs []*ModelCard_ModelParameters_MachineLearningInputOutputParameters `protobuf:"bytes,7,rep,name=outputs,proto3" json:"outputs,omitempty"` +} + +func (x *ModelCard_ModelParameters) Reset() { + *x = ModelCard_ModelParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModelCard_ModelParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelCard_ModelParameters) ProtoMessage() {} + +func (x *ModelCard_ModelParameters) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[66] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModelCard_ModelParameters.ProtoReflect.Descriptor instead. +func (*ModelCard_ModelParameters) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{46, 0} +} + +func (x *ModelCard_ModelParameters) GetApproach() *ModelCard_ModelParameters_Approach { + if x != nil { + return x.Approach + } + return nil +} + +func (x *ModelCard_ModelParameters) GetTask() string { + if x != nil && x.Task != nil { + return *x.Task + } + return "" +} + +func (x *ModelCard_ModelParameters) GetArchitectureFamily() string { + if x != nil && x.ArchitectureFamily != nil { + return *x.ArchitectureFamily + } + return "" +} + +func (x *ModelCard_ModelParameters) GetModelArchitecture() string { + if x != nil && x.ModelArchitecture != nil { + return *x.ModelArchitecture + } + return "" +} + +func (x *ModelCard_ModelParameters) GetDatasets() []*ModelCard_ModelParameters_Datasets { + if x != nil { + return x.Datasets + } + return nil +} + +func (x *ModelCard_ModelParameters) GetInputs() []*ModelCard_ModelParameters_MachineLearningInputOutputParameters { + if x != nil { + return x.Inputs + } + return nil +} + +func (x *ModelCard_ModelParameters) GetOutputs() []*ModelCard_ModelParameters_MachineLearningInputOutputParameters { + if x != nil { + return x.Outputs + } + return nil +} + +type ModelCard_QuantitativeAnalysis struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The model performance metrics being reported. Examples may include accuracy, F1 score, precision, top-3 error rates, MSC, etc. + PerformanceMetrics []*ModelCard_QuantitativeAnalysis_PerformanceMetrics `protobuf:"bytes,1,rep,name=performanceMetrics,proto3" json:"performanceMetrics,omitempty"` + Graphics *GraphicsCollection `protobuf:"bytes,2,opt,name=graphics,proto3,oneof" json:"graphics,omitempty"` +} + +func (x *ModelCard_QuantitativeAnalysis) Reset() { + *x = ModelCard_QuantitativeAnalysis{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModelCard_QuantitativeAnalysis) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelCard_QuantitativeAnalysis) ProtoMessage() {} + +func (x *ModelCard_QuantitativeAnalysis) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModelCard_QuantitativeAnalysis.ProtoReflect.Descriptor instead. +func (*ModelCard_QuantitativeAnalysis) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{46, 1} +} + +func (x *ModelCard_QuantitativeAnalysis) GetPerformanceMetrics() []*ModelCard_QuantitativeAnalysis_PerformanceMetrics { + if x != nil { + return x.PerformanceMetrics + } + return nil +} + +func (x *ModelCard_QuantitativeAnalysis) GetGraphics() *GraphicsCollection { + if x != nil { + return x.Graphics + } + return nil +} + +type ModelCard_ModelCardConsiderations struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Who are the intended users of the model? + Users []string `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` + // What are the intended use cases of the model? + UseCases []string `protobuf:"bytes,2,rep,name=useCases,proto3" json:"useCases,omitempty"` + // What are the known technical limitations of the model? E.g. What kind(s) of data should the model be expected not to perform well on? What are the factors that might degrade model performance? + TechnicalLimitations []string `protobuf:"bytes,3,rep,name=technicalLimitations,proto3" json:"technicalLimitations,omitempty"` + // What are the known tradeoffs in accuracy/performance of the model? + PerformanceTradeoffs []string `protobuf:"bytes,4,rep,name=performanceTradeoffs,proto3" json:"performanceTradeoffs,omitempty"` + // What are the ethical (or environmental) risks involved in the application of this model? + EthicalConsiderations []*ModelCard_ModelCardConsiderations_EthicalConsiderations `protobuf:"bytes,5,rep,name=ethicalConsiderations,proto3" json:"ethicalConsiderations,omitempty"` + // How does the model affect groups at risk of being systematically disadvantaged? What are the harms and benefits to the various affected groups? + FairnessAssessments []*ModelCard_ModelCardConsiderations_FairnessAssessments `protobuf:"bytes,6,rep,name=fairnessAssessments,proto3" json:"fairnessAssessments,omitempty"` +} + +func (x *ModelCard_ModelCardConsiderations) Reset() { + *x = ModelCard_ModelCardConsiderations{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModelCard_ModelCardConsiderations) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelCard_ModelCardConsiderations) ProtoMessage() {} + +func (x *ModelCard_ModelCardConsiderations) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[68] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModelCard_ModelCardConsiderations.ProtoReflect.Descriptor instead. +func (*ModelCard_ModelCardConsiderations) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{46, 2} +} + +func (x *ModelCard_ModelCardConsiderations) GetUsers() []string { + if x != nil { + return x.Users + } + return nil +} + +func (x *ModelCard_ModelCardConsiderations) GetUseCases() []string { + if x != nil { + return x.UseCases + } + return nil +} + +func (x *ModelCard_ModelCardConsiderations) GetTechnicalLimitations() []string { + if x != nil { + return x.TechnicalLimitations + } + return nil +} + +func (x *ModelCard_ModelCardConsiderations) GetPerformanceTradeoffs() []string { + if x != nil { + return x.PerformanceTradeoffs + } + return nil +} + +func (x *ModelCard_ModelCardConsiderations) GetEthicalConsiderations() []*ModelCard_ModelCardConsiderations_EthicalConsiderations { + if x != nil { + return x.EthicalConsiderations + } + return nil +} + +func (x *ModelCard_ModelCardConsiderations) GetFairnessAssessments() []*ModelCard_ModelCardConsiderations_FairnessAssessments { + if x != nil { + return x.FairnessAssessments + } + return nil +} + +type ModelCard_ModelParameters_Approach struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *ModelParameterApproachType `protobuf:"varint,1,opt,name=type,proto3,enum=cyclonedx.v1_5.ModelParameterApproachType,oneof" json:"type,omitempty"` +} + +func (x *ModelCard_ModelParameters_Approach) Reset() { + *x = ModelCard_ModelParameters_Approach{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModelCard_ModelParameters_Approach) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelCard_ModelParameters_Approach) ProtoMessage() {} + +func (x *ModelCard_ModelParameters_Approach) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[69] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModelCard_ModelParameters_Approach.ProtoReflect.Descriptor instead. +func (*ModelCard_ModelParameters_Approach) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{46, 0, 0} +} + +func (x *ModelCard_ModelParameters_Approach) GetType() ModelParameterApproachType { + if x != nil && x.Type != nil { + return *x.Type + } + return ModelParameterApproachType_MODEL_PARAMETER_APPROACH_TYPE_SUPERVISED +} + +type ModelCard_ModelParameters_Datasets struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Choice: + // + // *ModelCard_ModelParameters_Datasets_Dataset + // *ModelCard_ModelParameters_Datasets_Ref + Choice isModelCard_ModelParameters_Datasets_Choice `protobuf_oneof:"choice"` +} + +func (x *ModelCard_ModelParameters_Datasets) Reset() { + *x = ModelCard_ModelParameters_Datasets{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModelCard_ModelParameters_Datasets) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelCard_ModelParameters_Datasets) ProtoMessage() {} + +func (x *ModelCard_ModelParameters_Datasets) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModelCard_ModelParameters_Datasets.ProtoReflect.Descriptor instead. +func (*ModelCard_ModelParameters_Datasets) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{46, 0, 1} +} + +func (m *ModelCard_ModelParameters_Datasets) GetChoice() isModelCard_ModelParameters_Datasets_Choice { + if m != nil { + return m.Choice + } + return nil +} + +func (x *ModelCard_ModelParameters_Datasets) GetDataset() *ComponentData { + if x, ok := x.GetChoice().(*ModelCard_ModelParameters_Datasets_Dataset); ok { + return x.Dataset + } + return nil +} + +func (x *ModelCard_ModelParameters_Datasets) GetRef() string { + if x, ok := x.GetChoice().(*ModelCard_ModelParameters_Datasets_Ref); ok { + return x.Ref + } + return "" +} + +type isModelCard_ModelParameters_Datasets_Choice interface { + isModelCard_ModelParameters_Datasets_Choice() +} + +type ModelCard_ModelParameters_Datasets_Dataset struct { + Dataset *ComponentData `protobuf:"bytes,1,opt,name=dataset,proto3,oneof"` +} + +type ModelCard_ModelParameters_Datasets_Ref struct { + // References a data component by the components bom-ref attribute + Ref string `protobuf:"bytes,2,opt,name=ref,proto3,oneof"` +} + +func (*ModelCard_ModelParameters_Datasets_Dataset) isModelCard_ModelParameters_Datasets_Choice() {} + +func (*ModelCard_ModelParameters_Datasets_Ref) isModelCard_ModelParameters_Datasets_Choice() {} + +type ModelCard_ModelParameters_MachineLearningInputOutputParameters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The data format for input/output to the model. Example formats include string, image, time-series + Format *string `protobuf:"bytes,1,opt,name=format,proto3,oneof" json:"format,omitempty"` +} + +func (x *ModelCard_ModelParameters_MachineLearningInputOutputParameters) Reset() { + *x = ModelCard_ModelParameters_MachineLearningInputOutputParameters{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModelCard_ModelParameters_MachineLearningInputOutputParameters) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelCard_ModelParameters_MachineLearningInputOutputParameters) ProtoMessage() {} + +func (x *ModelCard_ModelParameters_MachineLearningInputOutputParameters) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[71] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModelCard_ModelParameters_MachineLearningInputOutputParameters.ProtoReflect.Descriptor instead. +func (*ModelCard_ModelParameters_MachineLearningInputOutputParameters) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{46, 0, 2} +} + +func (x *ModelCard_ModelParameters_MachineLearningInputOutputParameters) GetFormat() string { + if x != nil && x.Format != nil { + return *x.Format + } + return "" +} + +type ModelCard_QuantitativeAnalysis_PerformanceMetrics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of performance metric. + Type *string `protobuf:"bytes,1,opt,name=type,proto3,oneof" json:"type,omitempty"` + // The value of the performance metric. + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // The name of the slice this metric was computed on. By default, assume this metric is not sliced. + Slice *string `protobuf:"bytes,3,opt,name=slice,proto3,oneof" json:"slice,omitempty"` + // The confidence interval of the metric. + ConfidenceInterval *ModelCard_QuantitativeAnalysis_PerformanceMetrics_ConfidenceInterval `protobuf:"bytes,4,opt,name=confidenceInterval,proto3,oneof" json:"confidenceInterval,omitempty"` +} + +func (x *ModelCard_QuantitativeAnalysis_PerformanceMetrics) Reset() { + *x = ModelCard_QuantitativeAnalysis_PerformanceMetrics{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModelCard_QuantitativeAnalysis_PerformanceMetrics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelCard_QuantitativeAnalysis_PerformanceMetrics) ProtoMessage() {} + +func (x *ModelCard_QuantitativeAnalysis_PerformanceMetrics) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[72] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModelCard_QuantitativeAnalysis_PerformanceMetrics.ProtoReflect.Descriptor instead. +func (*ModelCard_QuantitativeAnalysis_PerformanceMetrics) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{46, 1, 0} +} + +func (x *ModelCard_QuantitativeAnalysis_PerformanceMetrics) GetType() string { + if x != nil && x.Type != nil { + return *x.Type + } + return "" +} + +func (x *ModelCard_QuantitativeAnalysis_PerformanceMetrics) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +func (x *ModelCard_QuantitativeAnalysis_PerformanceMetrics) GetSlice() string { + if x != nil && x.Slice != nil { + return *x.Slice + } + return "" +} + +func (x *ModelCard_QuantitativeAnalysis_PerformanceMetrics) GetConfidenceInterval() *ModelCard_QuantitativeAnalysis_PerformanceMetrics_ConfidenceInterval { + if x != nil { + return x.ConfidenceInterval + } + return nil +} + +type ModelCard_QuantitativeAnalysis_PerformanceMetrics_ConfidenceInterval struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The lower bound of the confidence interval. + LowerBound *string `protobuf:"bytes,1,opt,name=lowerBound,proto3,oneof" json:"lowerBound,omitempty"` + // The upper bound of the confidence interval. + UpperBound *string `protobuf:"bytes,2,opt,name=upperBound,proto3,oneof" json:"upperBound,omitempty"` +} + +func (x *ModelCard_QuantitativeAnalysis_PerformanceMetrics_ConfidenceInterval) Reset() { + *x = ModelCard_QuantitativeAnalysis_PerformanceMetrics_ConfidenceInterval{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModelCard_QuantitativeAnalysis_PerformanceMetrics_ConfidenceInterval) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelCard_QuantitativeAnalysis_PerformanceMetrics_ConfidenceInterval) ProtoMessage() {} + +func (x *ModelCard_QuantitativeAnalysis_PerformanceMetrics_ConfidenceInterval) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[73] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModelCard_QuantitativeAnalysis_PerformanceMetrics_ConfidenceInterval.ProtoReflect.Descriptor instead. +func (*ModelCard_QuantitativeAnalysis_PerformanceMetrics_ConfidenceInterval) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{46, 1, 0, 0} +} + +func (x *ModelCard_QuantitativeAnalysis_PerformanceMetrics_ConfidenceInterval) GetLowerBound() string { + if x != nil && x.LowerBound != nil { + return *x.LowerBound + } + return "" +} + +func (x *ModelCard_QuantitativeAnalysis_PerformanceMetrics_ConfidenceInterval) GetUpperBound() string { + if x != nil && x.UpperBound != nil { + return *x.UpperBound + } + return "" +} + +type ModelCard_ModelCardConsiderations_EthicalConsiderations struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the risk. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Strategy used to address this risk. + MitigationStrategy *string `protobuf:"bytes,2,opt,name=mitigationStrategy,proto3,oneof" json:"mitigationStrategy,omitempty"` +} + +func (x *ModelCard_ModelCardConsiderations_EthicalConsiderations) Reset() { + *x = ModelCard_ModelCardConsiderations_EthicalConsiderations{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModelCard_ModelCardConsiderations_EthicalConsiderations) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelCard_ModelCardConsiderations_EthicalConsiderations) ProtoMessage() {} + +func (x *ModelCard_ModelCardConsiderations_EthicalConsiderations) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[74] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModelCard_ModelCardConsiderations_EthicalConsiderations.ProtoReflect.Descriptor instead. +func (*ModelCard_ModelCardConsiderations_EthicalConsiderations) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{46, 2, 0} +} + +func (x *ModelCard_ModelCardConsiderations_EthicalConsiderations) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *ModelCard_ModelCardConsiderations_EthicalConsiderations) GetMitigationStrategy() string { + if x != nil && x.MitigationStrategy != nil { + return *x.MitigationStrategy + } + return "" +} + +type ModelCard_ModelCardConsiderations_FairnessAssessments struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The groups or individuals at risk of being systematically disadvantaged by the model. + GroupAtRisk *string `protobuf:"bytes,1,opt,name=groupAtRisk,proto3,oneof" json:"groupAtRisk,omitempty"` + // Expected benefits to the identified groups. + Benefits *string `protobuf:"bytes,2,opt,name=benefits,proto3,oneof" json:"benefits,omitempty"` + // Expected harms to the identified groups. + Harms *string `protobuf:"bytes,3,opt,name=harms,proto3,oneof" json:"harms,omitempty"` + // With respect to the benefits and harms outlined, please describe any mitigation strategy implemented. + MitigationStrategy *string `protobuf:"bytes,4,opt,name=mitigationStrategy,proto3,oneof" json:"mitigationStrategy,omitempty"` +} + +func (x *ModelCard_ModelCardConsiderations_FairnessAssessments) Reset() { + *x = ModelCard_ModelCardConsiderations_FairnessAssessments{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModelCard_ModelCardConsiderations_FairnessAssessments) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelCard_ModelCardConsiderations_FairnessAssessments) ProtoMessage() {} + +func (x *ModelCard_ModelCardConsiderations_FairnessAssessments) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[75] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModelCard_ModelCardConsiderations_FairnessAssessments.ProtoReflect.Descriptor instead. +func (*ModelCard_ModelCardConsiderations_FairnessAssessments) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{46, 2, 1} +} + +func (x *ModelCard_ModelCardConsiderations_FairnessAssessments) GetGroupAtRisk() string { + if x != nil && x.GroupAtRisk != nil { + return *x.GroupAtRisk + } + return "" +} + +func (x *ModelCard_ModelCardConsiderations_FairnessAssessments) GetBenefits() string { + if x != nil && x.Benefits != nil { + return *x.Benefits + } + return "" +} + +func (x *ModelCard_ModelCardConsiderations_FairnessAssessments) GetHarms() string { + if x != nil && x.Harms != nil { + return *x.Harms + } + return "" +} + +func (x *ModelCard_ModelCardConsiderations_FairnessAssessments) GetMitigationStrategy() string { + if x != nil && x.MitigationStrategy != nil { + return *x.MitigationStrategy + } + return "" +} + +type ComponentData_ComponentDataContents struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An optional way to include textual or encoded data. + Attachment *AttachedText `protobuf:"bytes,1,opt,name=attachment,proto3,oneof" json:"attachment,omitempty"` + // The URL to where the data can be retrieved. + Url *string `protobuf:"bytes,2,opt,name=url,proto3,oneof" json:"url,omitempty"` + // Provides the ability to document name-value parameters used for configuration. + Properties []*Property `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty"` +} + +func (x *ComponentData_ComponentDataContents) Reset() { + *x = ComponentData_ComponentDataContents{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ComponentData_ComponentDataContents) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComponentData_ComponentDataContents) ProtoMessage() {} + +func (x *ComponentData_ComponentDataContents) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[76] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComponentData_ComponentDataContents.ProtoReflect.Descriptor instead. +func (*ComponentData_ComponentDataContents) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{47, 0} +} + +func (x *ComponentData_ComponentDataContents) GetAttachment() *AttachedText { + if x != nil { + return x.Attachment + } + return nil +} + +func (x *ComponentData_ComponentDataContents) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +func (x *ComponentData_ComponentDataContents) GetProperties() []*Property { + if x != nil { + return x.Properties + } + return nil +} + +type DataGovernance_DataGovernanceResponsibleParty struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Choice: + // + // *DataGovernance_DataGovernanceResponsibleParty_Organization + // *DataGovernance_DataGovernanceResponsibleParty_Contact + Choice isDataGovernance_DataGovernanceResponsibleParty_Choice `protobuf_oneof:"choice"` +} + +func (x *DataGovernance_DataGovernanceResponsibleParty) Reset() { + *x = DataGovernance_DataGovernanceResponsibleParty{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataGovernance_DataGovernanceResponsibleParty) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataGovernance_DataGovernanceResponsibleParty) ProtoMessage() {} + +func (x *DataGovernance_DataGovernanceResponsibleParty) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[77] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DataGovernance_DataGovernanceResponsibleParty.ProtoReflect.Descriptor instead. +func (*DataGovernance_DataGovernanceResponsibleParty) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{48, 0} +} + +func (m *DataGovernance_DataGovernanceResponsibleParty) GetChoice() isDataGovernance_DataGovernanceResponsibleParty_Choice { + if m != nil { + return m.Choice + } + return nil +} + +func (x *DataGovernance_DataGovernanceResponsibleParty) GetOrganization() *OrganizationalEntity { + if x, ok := x.GetChoice().(*DataGovernance_DataGovernanceResponsibleParty_Organization); ok { + return x.Organization + } + return nil +} + +func (x *DataGovernance_DataGovernanceResponsibleParty) GetContact() *OrganizationalContact { + if x, ok := x.GetChoice().(*DataGovernance_DataGovernanceResponsibleParty_Contact); ok { + return x.Contact + } + return nil +} + +type isDataGovernance_DataGovernanceResponsibleParty_Choice interface { + isDataGovernance_DataGovernanceResponsibleParty_Choice() +} + +type DataGovernance_DataGovernanceResponsibleParty_Organization struct { + Organization *OrganizationalEntity `protobuf:"bytes,1,opt,name=organization,proto3,oneof"` +} + +type DataGovernance_DataGovernanceResponsibleParty_Contact struct { + Contact *OrganizationalContact `protobuf:"bytes,2,opt,name=contact,proto3,oneof"` +} + +func (*DataGovernance_DataGovernanceResponsibleParty_Organization) isDataGovernance_DataGovernanceResponsibleParty_Choice() { +} + +func (*DataGovernance_DataGovernanceResponsibleParty_Contact) isDataGovernance_DataGovernanceResponsibleParty_Choice() { +} + +type GraphicsCollection_Graphic struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the graphic. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The graphic (vector or raster). Base64 encoding MUST be specified for binary images. + Image *AttachedText `protobuf:"bytes,2,opt,name=image,proto3,oneof" json:"image,omitempty"` +} + +func (x *GraphicsCollection_Graphic) Reset() { + *x = GraphicsCollection_Graphic{} + if protoimpl.UnsafeEnabled { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GraphicsCollection_Graphic) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GraphicsCollection_Graphic) ProtoMessage() {} + +func (x *GraphicsCollection_Graphic) ProtoReflect() protoreflect.Message { + mi := &file_cyclonedx_schema_bom_1_5_proto_msgTypes[78] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GraphicsCollection_Graphic.ProtoReflect.Descriptor instead. +func (*GraphicsCollection_Graphic) Descriptor() ([]byte, []int) { + return file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP(), []int{49, 0} +} + +func (x *GraphicsCollection_Graphic) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *GraphicsCollection_Graphic) GetImage() *AttachedText { + if x != nil { + return x.Image + } + return nil +} + +var File_cyclonedx_schema_bom_1_5_proto protoreflect.FileDescriptor + +var file_cyclonedx_schema_bom_1_5_proto_rawDesc = []byte{ + 0x0a, 0x1e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2f, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x2f, 0x62, 0x6f, 0x6d, 0x2d, 0x31, 0x2e, 0x35, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x0e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, + 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x8b, 0x01, 0x0a, 0x0c, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x54, 0x65, + 0x78, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x6e, + 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, + 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22, + 0x98, 0x06, 0x0a, 0x03, 0x42, 0x6f, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x63, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, + 0x70, 0x65, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, + 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, + 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x39, + 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, + 0x31, 0x5f, 0x35, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x63, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x08, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x52, + 0x0a, 0x13, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x45, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x12, + 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, + 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, + 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, + 0x65, 0x6e, 0x63, 0x79, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, + 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, + 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x47, 0x0a, 0x0f, 0x76, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, + 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x56, 0x75, + 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0f, 0x76, 0x75, 0x6c, + 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, + 0x5f, 0x35, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x79, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x75, + 0x6c, 0x61, 0x52, 0x0b, 0x66, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x92, 0x02, 0x0a, 0x06, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, + 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x03, 0x52, 0x09, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, + 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, + 0xf9, 0x0a, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x62, 0x6f, 0x6d, 0x52, 0x65, 0x66, 0x88, 0x01, + 0x01, 0x12, 0x45, 0x0a, 0x08, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x02, 0x52, 0x08, 0x73, 0x75, 0x70, + 0x70, 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x48, 0x07, + 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x68, 0x61, + 0x73, 0x68, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x48, 0x61, 0x73, 0x68, + 0x52, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x08, 0x6c, 0x69, 0x63, 0x65, + 0x6e, 0x73, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4c, 0x69, 0x63, 0x65, + 0x6e, 0x73, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, + 0x73, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x63, 0x70, 0x65, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x03, 0x63, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x70, 0x75, 0x72, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0a, 0x52, 0x04, 0x70, + 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x04, 0x73, 0x77, 0x69, 0x64, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, + 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x53, 0x77, 0x69, 0x64, 0x48, 0x0b, 0x52, 0x04, 0x73, 0x77, + 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0c, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x70, 0x65, 0x64, 0x69, 0x67, 0x72, + 0x65, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, + 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, 0x65, 0x64, 0x69, 0x67, 0x72, + 0x65, 0x65, 0x48, 0x0d, 0x52, 0x08, 0x70, 0x65, 0x64, 0x69, 0x67, 0x72, 0x65, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x52, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x52, 0x12, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x16, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, + 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x08, 0x65, 0x76, + 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, + 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x45, 0x76, + 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x45, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x73, + 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, + 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, + 0x6f, 0x74, 0x65, 0x73, 0x48, 0x0e, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, + 0x6f, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x43, 0x61, 0x72, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x43, 0x61, 0x72, 0x64, 0x48, 0x0f, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x61, + 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x1a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x48, 0x10, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x69, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x70, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x75, 0x72, 0x6c, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x77, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x6f, + 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x65, 0x64, 0x69, 0x67, + 0x72, 0x65, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, + 0x6f, 0x74, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x61, + 0x72, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0xbe, 0x02, 0x0a, 0x08, + 0x44, 0x61, 0x74, 0x61, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x35, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, + 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6c, 0x6f, 0x77, + 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x43, 0x0a, 0x0a, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, + 0x6e, 0x63, 0x65, 0x48, 0x02, 0x52, 0x0a, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x5e, 0x0a, 0x0a, + 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, + 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x3e, 0x0a, 0x0c, + 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, + 0x31, 0x5f, 0x35, 0x2e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x0c, + 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x22, 0x65, 0x0a, 0x04, + 0x44, 0x69, 0x66, 0x66, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, + 0x31, 0x5f, 0x35, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, + 0x48, 0x00, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x75, + 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x75, 0x72, 0x6c, 0x22, 0xb9, 0x01, 0x0a, 0x11, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, + 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x52, 0x06, 0x68, 0x61, 0x73, + 0x68, 0x65, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x47, 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x12, 0x29, 0x0a, 0x03, 0x61, 0x6c, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, + 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x52, 0x03, 0x61, + 0x6c, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x12, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x88, + 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x6d, + 0x61, 0x69, 0x6c, 0x22, 0x95, 0x02, 0x0a, 0x05, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x37, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x49, 0x73, 0x73, + 0x75, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x48, 0x03, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x49, 0x0a, 0x06, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, + 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x75, + 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x22, 0x70, 0x0a, 0x0d, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, + 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, + 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, + 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, + 0x65, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0a, + 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x08, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xcb, 0x02, 0x0a, 0x07, 0x4c, 0x69, 0x63, + 0x65, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x04, + 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x41, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x48, 0x01, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x62, 0x6f, + 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x06, 0x62, + 0x6f, 0x6d, 0x52, 0x65, 0x66, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x09, 0x6c, 0x69, 0x63, 0x65, + 0x6e, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4c, 0x69, 0x63, + 0x65, 0x6e, 0x73, 0x69, 0x6e, 0x67, 0x48, 0x04, 0x52, 0x09, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, + 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x42, 0x09, 0x0a, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x74, 0x65, 0x78, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x69, 0x63, + 0x65, 0x6e, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xe4, 0x04, 0x0a, 0x09, 0x4c, 0x69, 0x63, 0x65, 0x6e, + 0x73, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6c, 0x74, 0x49, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6c, 0x74, 0x49, 0x64, 0x73, 0x12, 0x4e, 0x0a, 0x08, + 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x4f, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x48, 0x00, 0x52, + 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x08, + 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x4f, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x48, 0x01, 0x52, + 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x65, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x09, + 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, + 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4f, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x48, 0x02, + 0x52, 0x09, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x29, + 0x0a, 0x0d, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0d, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, + 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x6c, 0x69, 0x63, + 0x65, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x21, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, + 0x2e, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, + 0x75, 0x6d, 0x52, 0x0c, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x12, 0x41, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x48, 0x04, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x48, 0x05, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x6f, + 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbe, 0x01, + 0x0a, 0x1d, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4f, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, + 0x4a, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, + 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0c, 0x6f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x0a, 0x69, + 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, + 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x64, 0x69, 0x76, 0x69, + 0x64, 0x75, 0x61, 0x6c, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x93, + 0x05, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x05, 0x74, 0x6f, + 0x6f, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x79, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x48, + 0x01, 0x52, 0x05, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x07, 0x61, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, + 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x63, 0x74, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x09, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, + 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, 0x02, 0x52, 0x09, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x61, + 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, + 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, + 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x08, 0x73, 0x75, 0x70, 0x70, 0x6c, + 0x69, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x79, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, + 0x04, 0x52, 0x08, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3e, + 0x0a, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, + 0x35, 0x2e, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x48, + 0x05, 0x52, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x38, + 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, + 0x31, 0x5f, 0x35, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x0a, 0x6c, 0x69, 0x66, 0x65, + 0x63, 0x79, 0x63, 0x6c, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, + 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4c, 0x69, + 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x73, 0x52, 0x0a, 0x6c, 0x69, 0x66, 0x65, 0x63, 0x79, + 0x63, 0x6c, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6d, + 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x69, 0x63, 0x65, + 0x6e, 0x73, 0x65, 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, + 0x6c, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, + 0x31, 0x5f, 0x35, 0x2e, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x50, 0x68, 0x61, + 0x73, 0x65, 0x48, 0x00, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0xad, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x62, + 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x06, + 0x62, 0x6f, 0x6d, 0x52, 0x65, 0x66, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x6f, 0x6d, 0x5f, 0x72, + 0x65, 0x66, 0x22, 0xb5, 0x01, 0x0a, 0x14, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x3f, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, + 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x62, 0x6f, 0x6d, 0x5f, 0x72, + 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x62, 0x6f, 0x6d, 0x52, + 0x65, 0x66, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x22, 0xab, 0x01, 0x0a, 0x05, 0x50, + 0x61, 0x74, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, + 0x31, 0x5f, 0x35, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, + 0x04, 0x64, 0x69, 0x66, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x44, 0x69, 0x66, + 0x66, 0x48, 0x00, 0x52, 0x04, 0x64, 0x69, 0x66, 0x66, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, + 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x73, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x22, 0xbf, 0x02, 0x0a, 0x08, 0x50, 0x65, 0x64, + 0x69, 0x67, 0x72, 0x65, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, + 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x3b, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x76, + 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, + 0x74, 0x73, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x73, 0x12, 0x2f, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, + 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x52, 0x07, 0x70, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x22, 0xf6, 0x06, 0x0a, 0x07, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, + 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x62, 0x6f, 0x6d, 0x52, 0x65, + 0x66, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, + 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x01, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, + 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x29, + 0x0a, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x78, 0x5f, 0x74, + 0x72, 0x75, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0e, 0x78, 0x54, 0x72, 0x75, 0x73, 0x74, 0x42, 0x6f, 0x75, + 0x6e, 0x64, 0x61, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, + 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, + 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, + 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, + 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, + 0x73, 0x12, 0x52, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x52, 0x12, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, + 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x52, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x48, 0x07, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x74, + 0x72, 0x75, 0x73, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x48, 0x08, + 0x52, 0x09, 0x74, 0x72, 0x75, 0x73, 0x74, 0x5a, 0x6f, 0x6e, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x78, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x61, 0x72, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x5a, + 0x6f, 0x6e, 0x65, 0x22, 0x96, 0x02, 0x0a, 0x04, 0x53, 0x77, 0x69, 0x64, 0x12, 0x15, 0x0a, 0x06, + 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, + 0x67, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x61, 0x67, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0a, 0x74, + 0x61, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, 0x70, + 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, + 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x54, + 0x65, 0x78, 0x74, 0x48, 0x03, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, + 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x03, 0x75, + 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x70, 0x61, 0x74, 0x63, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x74, 0x65, 0x78, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x22, 0x81, 0x03, 0x0a, + 0x04, 0x54, 0x6f, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x06, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x06, 0x76, 0x65, 0x6e, + 0x64, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, 0x02, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, + 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x42, 0x02, 0x18, 0x01, + 0x52, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, + 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x12, 0x65, 0x78, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, + 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, + 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x08, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0x43, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xde, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x09, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, + 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x52, 0x09, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x22, + 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, + 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x76, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x76, 0x75, 0x6c, + 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x07, + 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x06, 0x62, 0x6f, 0x6d, 0x52, 0x65, 0x66, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, + 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x22, 0x27, 0x0a, 0x11, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, + 0x63, 0x65, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, + 0xd7, 0x02, 0x0a, 0x08, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x08, + 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x08, 0x6c, + 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x63, 0x6f, 0x70, 0x79, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x45, 0x76, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x52, 0x09, 0x63, + 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x45, 0x76, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x45, 0x76, 0x69, + 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x52, 0x0b, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x3c, 0x0a, + 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, + 0x35, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x09, 0x63, + 0x61, 0x6c, 0x6c, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x22, 0xe5, 0x02, 0x0a, 0x09, 0x43, 0x61, + 0x6c, 0x6c, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x38, 0x0a, 0x06, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x73, 0x74, 0x61, + 0x63, 0x6b, 0x2e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x06, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x1a, 0x9d, 0x02, 0x0a, 0x06, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x07, + 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, + 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x66, 0x75, + 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x04, 0x52, 0x0c, 0x66, 0x75, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x10, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, + 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, + 0x23, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, + 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x0f, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, + 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x74, 0x65, 0x63, 0x68, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x45, 0x76, 0x69, + 0x64, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x52, 0x09, + 0x74, 0x65, 0x63, 0x68, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5b, + 0x0a, 0x13, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x62, 0x6f, 0x6d, 0x52, 0x65, 0x66, + 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x22, 0x6e, 0x0a, 0x04, 0x4e, + 0x6f, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x35, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x48, 0x01, 0x52, 0x04, + 0x74, 0x65, 0x78, 0x74, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x22, 0x86, 0x04, 0x0a, 0x0c, + 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x66, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x01, 0x52, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x64, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x6c, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, 0x73, + 0x6f, 0x63, 0x69, 0x61, 0x6c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x48, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x12, 0x31, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x73, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, + 0x6c, 0x76, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, + 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, + 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x6f, 0x63, 0x69, 0x61, + 0x6c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x22, 0x9d, 0x0a, 0x0a, 0x0d, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x07, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, + 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x62, 0x6f, 0x6d, 0x52, 0x65, + 0x66, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x79, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x48, 0x02, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x46, + 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, + 0x31, 0x5f, 0x35, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x72, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x77, 0x65, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x04, 0x63, 0x77, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, + 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x04, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, + 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x61, 0x64, + 0x76, 0x69, 0x73, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, + 0x72, 0x69, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x48, 0x06, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x3d, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x07, + 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, + 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x08, 0x52, 0x07, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x07, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x56, 0x75, 0x6c, 0x6e, + 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, + 0x48, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, + 0x0a, 0x05, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x54, + 0x6f, 0x6f, 0x6c, 0x48, 0x0a, 0x52, 0x05, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x46, 0x0a, 0x08, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, + 0x5f, 0x35, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x48, 0x0b, 0x52, 0x08, 0x61, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x07, 0x61, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, + 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x52, 0x07, + 0x61, 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, + 0x73, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, + 0x0c, 0x52, 0x08, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4b, + 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x66, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, + 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x66, 0x43, + 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x48, 0x0d, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x4f, + 0x66, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x77, + 0x6f, 0x72, 0x6b, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x0e, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x61, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x88, 0x01, 0x01, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x42, 0x05, 0x0a, 0x03, + 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x66, 0x43, 0x6f, + 0x6e, 0x63, 0x65, 0x70, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x61, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x22, 0xde, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4f, 0x66, + 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x70, 0x74, 0x12, 0x31, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4c, 0x0a, 0x12, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x4d, + 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x52, 0x12, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x65, 0x70, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x58, 0x0a, 0x16, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x2e, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, + 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, + 0xec, 0x02, 0x0a, 0x13, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, + 0x00, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x05, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, + 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, + 0x69, 0x74, 0x79, 0x48, 0x02, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x38, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, + 0x31, 0x5f, 0x35, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, + 0x03, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x06, + 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x6a, 0x75, 0x73, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x05, 0x52, 0x0d, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x65, + 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x41, + 0x0a, 0x08, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x22, 0xab, 0x01, 0x0a, 0x14, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0d, 0x6f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, + 0x5f, 0x35, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0d, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x47, 0x0a, 0x0b, 0x69, 0x6e, 0x64, 0x69, 0x76, 0x69, + 0x64, 0x75, 0x61, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, + 0x63, 0x74, 0x52, 0x0b, 0x69, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x73, 0x22, + 0xdc, 0x03, 0x0a, 0x15, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x3e, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, + 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0d, 0x6a, 0x75, 0x73, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2b, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, + 0x35, 0x2e, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x4a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, + 0x0d, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x41, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x41, 0x0a, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x48, 0x03, 0x52, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x04, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x64, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x73, + 0x0a, 0x14, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x41, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x49, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x56, 0x75, 0x6c, 0x6e, + 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0xb2, 0x01, 0x0a, 0x1d, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x16, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x63, 0x79, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, + 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x41, 0x66, 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x01, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xa0, 0x02, 0x0a, 0x0f, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x0c, + 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, + 0x31, 0x5f, 0x35, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x0a, 0x69, 0x6e, 0x64, 0x69, + 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, + 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, + 0x6c, 0x12, 0x39, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, + 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x07, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x0a, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x07, 0x62, 0x6f, + 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x62, + 0x6f, 0x6d, 0x52, 0x65, 0x66, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x09, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x6f, 0x72, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x09, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x6f, 0x72, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, + 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x22, 0x9c, 0x15, + 0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x07, 0x62, + 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, + 0x62, 0x6f, 0x6d, 0x52, 0x65, 0x66, 0x88, 0x01, 0x01, 0x12, 0x58, 0x0a, 0x0f, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, + 0x31, 0x5f, 0x35, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x01, 0x52, + 0x0f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x14, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, + 0x5f, 0x35, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x48, 0x02, 0x52, 0x14, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x0e, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, + 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x2e, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x03, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x1a, 0xdb, 0x06, 0x0a, + 0x0f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x12, 0x53, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x61, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, + 0x31, 0x5f, 0x35, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x6f, + 0x64, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x61, 0x63, 0x68, 0x48, 0x00, 0x52, 0x08, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x61, + 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x33, + 0x0a, 0x12, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x12, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x11, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x41, 0x72, 0x63, 0x68, + 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, + 0x52, 0x11, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x41, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, + 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, + 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, + 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, + 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x52, 0x08, 0x64, 0x61, + 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x12, 0x66, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, + 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x61, 0x72, + 0x64, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x68, + 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x4e, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, + 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, + 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x1a, 0x58, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x61, 0x63, 0x68, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, + 0x31, 0x5f, 0x35, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x61, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x1a, 0x63, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x73, 0x12, 0x39, + 0x0a, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, + 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, + 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x65, 0x66, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x72, 0x65, 0x66, 0x42, 0x08, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x1a, 0x4e, 0x0a, 0x24, 0x4d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, + 0x1b, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x70, 0x70, 0x72, + 0x6f, 0x61, 0x63, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x41, 0x72, + 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x1a, 0xff, 0x04, 0x0a, 0x14, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x12, 0x71, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x41, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, + 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, + 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x12, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x43, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, + 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, + 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, + 0x63, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x08, + 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x1a, 0xa1, 0x03, 0x0a, 0x12, + 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x89, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x54, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, + 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x50, + 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x48, 0x03, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, + 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x1a, 0x7c, 0x0a, + 0x12, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x12, 0x23, 0x0a, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, + 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x75, 0x70, 0x70, 0x65, + 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, + 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x1a, 0xa1, 0x06, 0x0a, + 0x17, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x43, 0x61, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x43, 0x61, 0x73, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x74, 0x65, + 0x63, 0x68, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x74, 0x65, 0x63, 0x68, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x32, + 0x0a, 0x14, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x6f, 0x66, 0x66, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x70, 0x65, + 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x6f, 0x66, + 0x66, 0x73, 0x12, 0x7d, 0x0a, 0x15, 0x65, 0x74, 0x68, 0x69, 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x47, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, + 0x5f, 0x35, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x74, 0x68, 0x69, 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, + 0x69, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x15, 0x65, 0x74, 0x68, 0x69, + 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x77, 0x0a, 0x13, 0x66, 0x61, 0x69, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x73, 0x73, + 0x65, 0x73, 0x73, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, + 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x46, 0x61, 0x69, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x73, 0x73, 0x65, 0x73, 0x73, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x13, 0x66, 0x61, 0x69, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x41, + 0x73, 0x73, 0x65, 0x73, 0x73, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x85, 0x01, 0x0a, 0x15, 0x45, + 0x74, 0x68, 0x69, 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, + 0x12, 0x6d, 0x69, 0x74, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x12, 0x6d, 0x69, 0x74, + 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x6d, 0x69, 0x74, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x67, 0x79, 0x1a, 0xeb, 0x01, 0x0a, 0x13, 0x46, 0x61, 0x69, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x41, + 0x73, 0x73, 0x65, 0x73, 0x73, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x74, 0x52, 0x69, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x52, 0x69, 0x73, 0x6b, 0x88, 0x01, + 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x74, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x68, 0x61, 0x72, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x05, 0x68, 0x61, 0x72, 0x6d, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, + 0x12, 0x6d, 0x69, 0x74, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x12, 0x6d, 0x69, 0x74, + 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x88, + 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x52, 0x69, + 0x73, 0x6b, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x65, 0x6e, 0x65, 0x66, 0x69, 0x74, 0x73, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x68, 0x61, 0x72, 0x6d, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x69, + 0x74, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xfd, 0x05, 0x0a, + 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, + 0x0a, 0x07, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x06, 0x62, 0x6f, 0x6d, 0x52, 0x65, 0x66, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x43, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x08, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x73, 0x48, 0x02, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0e, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a, 0x08, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, + 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, 0x08, 0x67, + 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x05, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x43, 0x0a, 0x0a, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, + 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x47, 0x6f, 0x76, 0x65, 0x72, + 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x06, 0x52, 0x0a, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, + 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xc2, 0x01, 0x0a, 0x15, 0x43, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x41, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, + 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x54, 0x65, + 0x78, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xdd, 0x03, 0x0a, + 0x0e, 0x44, 0x61, 0x74, 0x61, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x5d, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x69, 0x61, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x72, + 0x74, 0x79, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x64, 0x69, 0x61, 0x6e, 0x73, 0x12, 0x59, + 0x0a, 0x08, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3d, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, + 0x35, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x74, 0x79, 0x52, + 0x08, 0x73, 0x74, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x55, 0x0a, 0x06, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x63, 0x79, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x47, + 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x47, 0x6f, + 0x76, 0x65, 0x72, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, + 0x62, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x74, 0x79, 0x52, 0x06, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, + 0x1a, 0xb9, 0x01, 0x0a, 0x1e, 0x44, 0x61, 0x74, 0x61, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x50, 0x61, + 0x72, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x79, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, + 0x00, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x41, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, + 0x35, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x63, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x81, 0x02, 0x0a, + 0x12, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x07, 0x67, 0x72, + 0x61, 0x70, 0x68, 0x69, 0x63, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x47, 0x72, 0x61, + 0x70, 0x68, 0x69, 0x63, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x52, 0x07, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, + 0x1a, 0x6e, 0x0a, 0x07, 0x47, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x54, 0x65, 0x78, + 0x74, 0x48, 0x01, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x95, 0x02, 0x0a, 0x07, 0x46, 0x6f, 0x72, 0x6d, 0x75, 0x6c, 0x61, 0x12, 0x1c, 0x0a, 0x07, + 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x06, 0x62, 0x6f, 0x6d, 0x52, 0x65, 0x66, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, + 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x73, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, + 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x22, 0xbb, 0x07, 0x0a, 0x08, 0x57, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x17, 0x0a, 0x07, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x6f, 0x6d, 0x52, 0x65, 0x66, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, + 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x12, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, + 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, + 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, + 0x31, 0x5f, 0x35, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, + 0x46, 0x0a, 0x10, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, + 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x79, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x44, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x10, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x54, 0x61, 0x73, 0x6b, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, + 0x36, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, + 0x35, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x48, 0x02, 0x52, 0x07, 0x74, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, + 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x53, 0x74, 0x65, 0x70, 0x52, 0x05, 0x73, 0x74, + 0x65, 0x70, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x03, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x74, + 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x04, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, + 0x45, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x12, 0x44, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x70, 0x6f, + 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x44, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x0f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, + 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x22, 0xc3, 0x06, 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, + 0x17, 0x0a, 0x07, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x62, 0x6f, 0x6d, 0x52, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, + 0x35, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x36, 0x0a, + 0x09, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, + 0x35, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, 0x61, 0x73, 0x6b, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, + 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x48, + 0x02, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, + 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x53, 0x74, + 0x65, 0x70, 0x52, 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x07, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x48, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x39, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x04, + 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, + 0x35, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x77, 0x6f, 0x72, + 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0f, 0x72, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, + 0x35, 0x2e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x0f, 0x72, 0x75, + 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, + 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x22, 0xce, 0x01, 0x0a, + 0x04, 0x53, 0x74, 0x65, 0x70, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x71, 0x0a, + 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, + 0x22, 0xa6, 0x06, 0x0a, 0x09, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x17, + 0x0a, 0x07, 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x62, 0x6f, 0x6d, 0x52, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x57, 0x0a, + 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x79, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, + 0x48, 0x02, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x21, 0x0a, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, + 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0d, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x33, + 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x48, 0x06, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x22, 0x9c, 0x01, 0x0a, 0x0a, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x00, 0x12, 0x1a, 0x0a, + 0x16, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, + 0x44, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x43, 0x43, + 0x45, 0x53, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x57, 0x52, + 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x43, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x43, + 0x43, 0x45, 0x53, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, + 0x4f, 0x4e, 0x43, 0x45, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, + 0x10, 0x04, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0xc4, 0x03, 0x0a, 0x06, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, + 0x31, 0x5f, 0x35, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x02, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0d, 0x73, 0x69, 0x7a, + 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x04, 0x52, 0x0d, 0x73, 0x69, 0x7a, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x06, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x22, 0x3f, 0x0a, 0x0a, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1a, + 0x0a, 0x16, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x46, 0x49, + 0x4c, 0x45, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x4f, + 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, + 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x41, 0x6c, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x22, 0x86, 0x06, 0x0a, 0x07, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, + 0x62, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, + 0x6f, 0x6d, 0x52, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, + 0x73, 0x12, 0x57, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, + 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, + 0x31, 0x5f, 0x35, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x02, 0x52, 0x05, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x45, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x48, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, + 0x22, 0x72, 0x0a, 0x0b, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x17, 0x0a, 0x13, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x49, 0x47, + 0x47, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x50, 0x49, 0x10, 0x01, 0x12, 0x18, + 0x0a, 0x14, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, + 0x45, 0x42, 0x48, 0x4f, 0x4f, 0x4b, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x49, 0x47, + 0x47, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, + 0x45, 0x44, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x22, 0xcf, 0x03, 0x0a, 0x05, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x03, 0x75, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x43, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x48, 0x02, 0x52, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, + 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x54, 0x65, + 0x78, 0x74, 0x48, 0x03, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x48, 0x04, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x48, 0x05, 0x52, 0x06, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x84, 0x04, 0x0a, 0x09, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x79, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x48, 0x00, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x44, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, + 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x48, 0x01, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, + 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x48, 0x02, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x39, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x65, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x56, 0x61, 0x72, 0x73, 0x52, 0x0f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x56, 0x61, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x54, 0x65, 0x78, + 0x74, 0x48, 0x03, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, + 0x35, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x22, 0xc0, 0x05, 0x0a, 0x0a, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x29, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, + 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, + 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x48, 0x01, + 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x06, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x48, 0x02, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x48, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, + 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x48, 0x03, 0x52, 0x08, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x79, 0x63, 0x6c, + 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x48, 0x04, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x88, + 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0f, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x56, 0x61, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x45, 0x6e, 0x76, + 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x73, 0x52, 0x0f, 0x65, 0x6e, + 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x73, 0x12, 0x38, 0x0a, + 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, + 0x5f, 0x35, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x55, + 0x54, 0x50, 0x55, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, + 0x43, 0x54, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x10, 0x03, + 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x55, 0x54, + 0x50, 0x55, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x05, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8a, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x51, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, + 0x35, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x65, + 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, + 0x35, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x01, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x64, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6b, 0x0a, 0x0f, 0x45, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2a, 0x9a, 0x03, 0x0a, 0x0e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4c, 0x41, 0x53, + 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x10, + 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x02, 0x12, + 0x1a, 0x0a, 0x16, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x43, + 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, + 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x04, + 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x43, + 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x49, + 0x4c, 0x45, 0x10, 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, + 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, + 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x10, 0x08, 0x12, + 0x20, 0x0a, 0x1c, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x10, + 0x09, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x54, 0x46, 0x4f, 0x52, 0x4d, 0x10, 0x0a, 0x12, 0x29, + 0x0a, 0x25, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x52, 0x4e, 0x49, 0x4e, + 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4c, 0x41, + 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, + 0x10, 0x0c, 0x2a, 0x8b, 0x01, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6c, 0x6f, 0x77, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x41, 0x54, 0x41, + 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, + 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x49, 0x4e, 0x42, 0x4f, 0x55, 0x4e, + 0x44, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4c, 0x4f, 0x57, + 0x5f, 0x4f, 0x55, 0x54, 0x42, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x44, + 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x42, 0x49, 0x5f, 0x44, 0x49, 0x52, 0x45, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x41, 0x54, + 0x41, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x04, + 0x2a, 0xf3, 0x0c, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x58, + 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x00, 0x12, 0x1f, 0x0a, + 0x1b, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, + 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x43, 0x53, 0x10, 0x01, 0x12, 0x29, + 0x0a, 0x25, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, + 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x4b, 0x45, 0x52, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x58, 0x54, + 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x45, 0x42, 0x53, 0x49, 0x54, 0x45, 0x10, 0x03, 0x12, 0x26, + 0x0a, 0x22, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, + 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x44, 0x56, 0x49, 0x53, 0x4f, + 0x52, 0x49, 0x45, 0x53, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, + 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x42, 0x4f, 0x4d, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x45, 0x58, 0x54, 0x45, 0x52, + 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x49, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, + 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, + 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4f, 0x43, + 0x49, 0x41, 0x4c, 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, + 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x43, 0x48, 0x41, 0x54, 0x10, 0x08, 0x12, 0x29, 0x0a, 0x25, 0x45, 0x58, 0x54, 0x45, 0x52, + 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x43, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x09, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, + 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, + 0x50, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x0a, 0x12, 0x28, 0x0a, 0x24, 0x45, 0x58, 0x54, 0x45, 0x52, + 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, + 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x43, + 0x45, 0x4e, 0x53, 0x45, 0x10, 0x0c, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, + 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x10, 0x0d, 0x12, 0x28, + 0x0a, 0x24, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, + 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x5f, + 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x0e, 0x12, 0x2c, 0x0a, 0x28, 0x45, 0x58, 0x54, 0x45, + 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x43, 0x55, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x41, 0x43, 0x54, 0x10, 0x0f, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, + 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x10, 0x12, + 0x28, 0x0a, 0x24, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, + 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x41, + 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x10, 0x11, 0x12, 0x2b, 0x0a, 0x27, 0x45, 0x58, 0x54, + 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x44, 0x56, 0x45, 0x52, 0x53, 0x41, 0x52, 0x59, 0x5f, 0x4d, + 0x4f, 0x44, 0x45, 0x4c, 0x10, 0x12, 0x12, 0x2b, 0x0a, 0x27, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, + 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x52, 0x49, 0x53, 0x4b, 0x5f, 0x41, 0x53, 0x53, 0x45, 0x53, 0x53, 0x4d, 0x45, 0x4e, + 0x54, 0x10, 0x13, 0x12, 0x2f, 0x0a, 0x2b, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, + 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, + 0x49, 0x53, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x54, 0x41, + 0x4b, 0x45, 0x10, 0x14, 0x12, 0x33, 0x0a, 0x2f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, + 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x41, 0x53, + 0x53, 0x45, 0x52, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x15, 0x12, 0x34, 0x0a, 0x30, 0x45, 0x58, 0x54, + 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4c, 0x4f, 0x49, 0x54, 0x41, 0x42, 0x49, 0x4c, + 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x16, 0x12, + 0x2a, 0x0a, 0x26, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, + 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x54, 0x45, + 0x53, 0x54, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x17, 0x12, 0x32, 0x0a, 0x2e, 0x45, + 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, + 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x5f, 0x41, 0x4e, + 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x18, 0x12, + 0x33, 0x0a, 0x2f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, + 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x59, 0x4e, 0x41, 0x4d, + 0x49, 0x43, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x52, 0x45, 0x50, 0x4f, + 0x52, 0x54, 0x10, 0x19, 0x12, 0x33, 0x0a, 0x2f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, + 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, + 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x1a, 0x12, 0x35, 0x0a, 0x31, 0x45, 0x58, 0x54, + 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x41, + 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x1b, + 0x12, 0x2b, 0x0a, 0x27, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, + 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x54, 0x55, + 0x52, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x1c, 0x12, 0x30, 0x0a, + 0x2c, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, + 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, + 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x1d, 0x12, + 0x2b, 0x0a, 0x27, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, + 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, + 0x54, 0x59, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x53, 0x10, 0x1e, 0x12, 0x33, 0x0a, 0x2f, + 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, + 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x5f, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x55, 0x52, 0x45, 0x10, + 0x1f, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, + 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x4c, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x10, 0x20, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x58, 0x54, + 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x41, 0x4d, 0x10, 0x21, 0x12, 0x1f, 0x0a, 0x1b, 0x45, + 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, + 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x10, 0x22, 0x12, 0x29, 0x0a, 0x25, + 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, + 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x58, 0x54, 0x45, 0x52, + 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x10, 0x24, 0x12, 0x27, 0x0a, + 0x23, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, + 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x55, 0x4c, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x25, 0x2a, 0xb7, 0x02, 0x0a, 0x07, 0x48, 0x61, 0x73, 0x68, 0x41, + 0x6c, 0x67, 0x12, 0x11, 0x0a, 0x0d, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x5f, 0x4e, + 0x55, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, + 0x47, 0x5f, 0x4d, 0x44, 0x5f, 0x35, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x48, 0x41, 0x53, 0x48, + 0x5f, 0x41, 0x4c, 0x47, 0x5f, 0x53, 0x48, 0x41, 0x5f, 0x31, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, + 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x5f, 0x53, 0x48, 0x41, 0x5f, 0x32, 0x35, 0x36, + 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x5f, 0x53, + 0x48, 0x41, 0x5f, 0x33, 0x38, 0x34, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x41, 0x53, 0x48, + 0x5f, 0x41, 0x4c, 0x47, 0x5f, 0x53, 0x48, 0x41, 0x5f, 0x35, 0x31, 0x32, 0x10, 0x05, 0x12, 0x16, + 0x0a, 0x12, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x5f, 0x53, 0x48, 0x41, 0x5f, 0x33, + 0x5f, 0x32, 0x35, 0x36, 0x10, 0x06, 0x12, 0x16, 0x0a, 0x12, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, + 0x4c, 0x47, 0x5f, 0x53, 0x48, 0x41, 0x5f, 0x33, 0x5f, 0x33, 0x38, 0x34, 0x10, 0x07, 0x12, 0x16, + 0x0a, 0x12, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x5f, 0x53, 0x48, 0x41, 0x5f, 0x33, + 0x5f, 0x35, 0x31, 0x32, 0x10, 0x08, 0x12, 0x1a, 0x0a, 0x16, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, + 0x4c, 0x47, 0x5f, 0x42, 0x4c, 0x41, 0x4b, 0x45, 0x5f, 0x32, 0x5f, 0x42, 0x5f, 0x32, 0x35, 0x36, + 0x10, 0x09, 0x12, 0x1a, 0x0a, 0x16, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x5f, 0x42, + 0x4c, 0x41, 0x4b, 0x45, 0x5f, 0x32, 0x5f, 0x42, 0x5f, 0x33, 0x38, 0x34, 0x10, 0x0a, 0x12, 0x1a, + 0x0a, 0x16, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x5f, 0x42, 0x4c, 0x41, 0x4b, 0x45, + 0x5f, 0x32, 0x5f, 0x42, 0x5f, 0x35, 0x31, 0x32, 0x10, 0x0b, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x41, + 0x53, 0x48, 0x5f, 0x41, 0x4c, 0x47, 0x5f, 0x42, 0x4c, 0x41, 0x4b, 0x45, 0x5f, 0x33, 0x10, 0x0c, + 0x2a, 0x9e, 0x01, 0x0a, 0x13, 0x49, 0x73, 0x73, 0x75, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x53, 0x53, 0x55, + 0x45, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x53, 0x53, 0x55, 0x45, + 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x44, 0x45, 0x46, 0x45, 0x43, 0x54, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x53, 0x53, 0x55, + 0x45, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x45, 0x4e, 0x48, 0x41, 0x4e, 0x43, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x21, + 0x0a, 0x1d, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, + 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x43, 0x55, 0x52, 0x49, 0x54, 0x59, 0x10, + 0x03, 0x2a, 0x97, 0x04, 0x0a, 0x11, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x69, 0x6e, 0x67, 0x54, + 0x79, 0x70, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x49, 0x43, 0x45, 0x4e, + 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x00, + 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x41, 0x43, 0x41, 0x44, 0x45, 0x4d, 0x49, 0x43, 0x10, 0x01, 0x12, 0x1c, 0x0a, + 0x18, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x41, 0x50, 0x50, 0x4c, 0x49, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x4c, + 0x49, 0x43, 0x45, 0x4e, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4c, + 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, 0x22, 0x0a, + 0x1e, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x43, 0x4f, 0x4e, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, + 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, 0x52, 0x45, 0x5f, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x10, + 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, + 0x43, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x49, 0x4e, 0x47, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x10, 0x07, 0x12, 0x1d, + 0x0a, 0x19, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x1d, 0x0a, + 0x19, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4e, 0x41, 0x4d, 0x45, 0x44, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, 0x09, 0x12, 0x1e, 0x0a, 0x1a, + 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, + 0x4f, 0x44, 0x45, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x16, 0x0a, 0x12, + 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, + 0x45, 0x4d, 0x10, 0x0b, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x49, 0x4e, + 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x45, 0x52, 0x50, 0x45, 0x54, 0x55, 0x41, 0x4c, + 0x10, 0x0c, 0x12, 0x23, 0x0a, 0x1f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x49, 0x4e, 0x47, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x4f, 0x52, 0x5f, 0x50, + 0x4f, 0x49, 0x4e, 0x54, 0x53, 0x10, 0x0d, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x49, 0x43, 0x45, 0x4e, + 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, + 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0e, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x49, 0x43, 0x45, + 0x4e, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, + 0x0f, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x10, 0x2a, 0xe7, 0x01, 0x0a, 0x0e, + 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x50, 0x68, 0x61, 0x73, 0x65, 0x12, 0x1a, + 0x0a, 0x16, 0x4c, 0x49, 0x46, 0x45, 0x43, 0x59, 0x43, 0x4c, 0x45, 0x5f, 0x50, 0x48, 0x41, 0x53, + 0x45, 0x5f, 0x44, 0x45, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x49, + 0x46, 0x45, 0x43, 0x59, 0x43, 0x4c, 0x45, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x52, + 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x46, + 0x45, 0x43, 0x59, 0x43, 0x4c, 0x45, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x42, 0x55, 0x49, + 0x4c, 0x44, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x49, 0x46, 0x45, 0x43, 0x59, 0x43, 0x4c, + 0x45, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x42, 0x55, 0x49, + 0x4c, 0x44, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x49, 0x46, 0x45, 0x43, 0x59, 0x43, 0x4c, + 0x45, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x53, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x49, 0x46, 0x45, 0x43, 0x59, 0x43, 0x4c, + 0x45, 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, + 0x59, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x4c, 0x49, 0x46, 0x45, 0x43, 0x59, 0x43, 0x4c, 0x45, + 0x5f, 0x50, 0x48, 0x41, 0x53, 0x45, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x2a, 0xc3, 0x01, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x63, 0x68, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, + 0x19, 0x50, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, + 0x50, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4f, 0x46, 0x46, 0x49, 0x43, 0x49, 0x41, 0x4c, 0x10, + 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, + 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x4e, 0x4b, 0x45, 0x59, + 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x43, 0x4c, 0x41, 0x53, + 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x50, + 0x4f, 0x52, 0x54, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x50, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x43, + 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x48, + 0x45, 0x52, 0x52, 0x59, 0x5f, 0x50, 0x49, 0x43, 0x4b, 0x10, 0x04, 0x2a, 0x5a, 0x0a, 0x05, 0x53, + 0x63, 0x6f, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x43, 0x4f, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, + 0x43, 0x4f, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, + 0x12, 0x0a, 0x0e, 0x53, 0x43, 0x4f, 0x50, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, + 0x4c, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x43, 0x4f, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x43, + 0x4c, 0x55, 0x44, 0x45, 0x44, 0x10, 0x03, 0x2a, 0xa1, 0x03, 0x0a, 0x09, 0x41, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, + 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, + 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x47, + 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, + 0x54, 0x45, 0x10, 0x02, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, + 0x45, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x46, 0x49, 0x52, + 0x53, 0x54, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x03, 0x12, + 0x29, 0x0a, 0x25, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x43, + 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x54, 0x48, 0x49, 0x52, 0x44, 0x5f, 0x50, 0x41, + 0x52, 0x54, 0x59, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x47, + 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x05, 0x12, 0x35, 0x0a, 0x31, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x49, + 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, + 0x50, 0x41, 0x52, 0x54, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x52, 0x49, 0x45, 0x54, 0x41, 0x52, + 0x59, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x06, 0x12, 0x34, 0x0a, 0x30, 0x41, 0x47, 0x47, 0x52, + 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, + 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x5f, 0x4f, 0x50, 0x45, + 0x4e, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x07, 0x12, 0x35, + 0x0a, 0x31, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x43, 0x4f, + 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x54, 0x48, 0x49, 0x52, 0x44, 0x5f, 0x50, 0x41, 0x52, + 0x54, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x52, 0x49, 0x45, 0x54, 0x41, 0x52, 0x59, 0x5f, 0x4f, + 0x4e, 0x4c, 0x59, 0x10, 0x08, 0x12, 0x34, 0x0a, 0x30, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, + 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x54, 0x48, + 0x49, 0x52, 0x44, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x53, 0x4f, + 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x09, 0x2a, 0xde, 0x01, 0x0a, 0x11, + 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x46, 0x49, + 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x56, + 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, + 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, + 0x16, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, + 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x56, 0x49, + 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x50, 0x55, 0x52, 0x4c, + 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x43, 0x50, 0x45, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x56, + 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x53, 0x57, 0x49, + 0x44, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, + 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x07, 0x2a, 0x96, 0x03, 0x0a, + 0x11, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x27, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, + 0x45, 0x43, 0x48, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x10, 0x00, 0x12, + 0x26, 0x0a, 0x22, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x45, 0x43, 0x48, + 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x5f, 0x41, 0x4e, 0x41, + 0x4c, 0x59, 0x53, 0x49, 0x53, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x45, 0x56, 0x49, 0x44, 0x45, + 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x45, 0x43, 0x48, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, 0x4d, 0x41, + 0x4e, 0x49, 0x46, 0x45, 0x53, 0x54, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x10, + 0x02, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x45, + 0x43, 0x48, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, 0x41, 0x53, 0x54, 0x5f, 0x46, 0x49, 0x4e, 0x47, + 0x45, 0x52, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x56, 0x49, + 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x45, 0x43, 0x48, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, + 0x48, 0x41, 0x53, 0x48, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x52, 0x49, 0x53, 0x4f, 0x4e, 0x10, + 0x04, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x45, + 0x43, 0x48, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x52, 0x55, 0x4d, 0x45, + 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x49, + 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x45, 0x43, 0x48, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, + 0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, + 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x54, + 0x45, 0x43, 0x48, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x4e, 0x41, 0x4d, + 0x45, 0x10, 0x07, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, + 0x54, 0x45, 0x43, 0x48, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x56, 0x49, 0x44, 0x45, + 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x45, 0x43, 0x48, 0x4e, 0x49, 0x51, 0x55, 0x45, 0x5f, 0x4f, 0x54, + 0x48, 0x45, 0x52, 0x10, 0x09, 0x2a, 0x97, 0x01, 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, + 0x74, 0x79, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x56, 0x45, + 0x52, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, + 0x11, 0x0a, 0x0d, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x47, 0x48, + 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4d, + 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x45, 0x56, 0x45, 0x52, + 0x49, 0x54, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x45, 0x56, + 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, + 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x06, 0x2a, + 0xd0, 0x01, 0x0a, 0x0b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, + 0x15, 0x0a, 0x11, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, + 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x5f, + 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x56, 0x53, 0x53, 0x56, 0x32, 0x10, 0x01, 0x12, + 0x17, 0x0a, 0x13, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, + 0x43, 0x56, 0x53, 0x53, 0x56, 0x33, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x43, 0x4f, 0x52, + 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x56, 0x53, 0x53, 0x56, 0x33, 0x31, + 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, + 0x4f, 0x44, 0x5f, 0x4f, 0x57, 0x41, 0x53, 0x50, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x43, + 0x4f, 0x52, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, + 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x43, 0x4f, 0x52, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, + 0x4f, 0x44, 0x5f, 0x43, 0x56, 0x53, 0x53, 0x56, 0x34, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x53, + 0x43, 0x4f, 0x52, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x53, 0x56, 0x43, + 0x10, 0x07, 0x2a, 0xa9, 0x02, 0x0a, 0x13, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4d, + 0x50, 0x41, 0x43, 0x54, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4d, + 0x50, 0x41, 0x43, 0x54, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56, 0x45, 0x44, 0x10, 0x01, 0x12, 0x30, + 0x0a, 0x2c, 0x49, 0x4d, 0x50, 0x41, 0x43, 0x54, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, + 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56, 0x45, 0x44, + 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x50, 0x45, 0x44, 0x49, 0x47, 0x52, 0x45, 0x45, 0x10, 0x02, + 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4d, 0x50, 0x41, 0x43, 0x54, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, + 0x53, 0x49, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x58, 0x50, 0x4c, 0x4f, 0x49, + 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4d, 0x50, 0x41, 0x43, + 0x54, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x52, 0x49, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x28, 0x0a, 0x24, + 0x49, 0x4d, 0x50, 0x41, 0x43, 0x54, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x4c, 0x53, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x49, + 0x54, 0x49, 0x56, 0x45, 0x10, 0x05, 0x12, 0x26, 0x0a, 0x22, 0x49, 0x4d, 0x50, 0x41, 0x43, 0x54, + 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x4e, 0x4f, 0x54, 0x5f, 0x41, 0x46, 0x46, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x06, 0x2a, 0xc6, + 0x04, 0x0a, 0x1b, 0x49, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x4a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, + 0x0a, 0x22, 0x49, 0x4d, 0x50, 0x41, 0x43, 0x54, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, + 0x53, 0x5f, 0x4a, 0x55, 0x53, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x4e, 0x55, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x32, 0x0a, 0x2e, 0x49, 0x4d, 0x50, 0x41, 0x43, 0x54, + 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x4a, 0x55, 0x53, 0x54, 0x49, 0x46, + 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x54, + 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x34, 0x0a, 0x30, 0x49, 0x4d, + 0x50, 0x41, 0x43, 0x54, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x4a, 0x55, + 0x53, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x43, 0x48, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x02, + 0x12, 0x38, 0x0a, 0x34, 0x49, 0x4d, 0x50, 0x41, 0x43, 0x54, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, + 0x53, 0x49, 0x53, 0x5f, 0x4a, 0x55, 0x53, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, + 0x47, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x35, 0x0a, 0x31, 0x49, 0x4d, + 0x50, 0x41, 0x43, 0x54, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x4a, 0x55, + 0x53, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, + 0x49, 0x52, 0x45, 0x53, 0x5f, 0x44, 0x45, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x4e, 0x43, 0x59, 0x10, + 0x04, 0x12, 0x36, 0x0a, 0x32, 0x49, 0x4d, 0x50, 0x41, 0x43, 0x54, 0x5f, 0x41, 0x4e, 0x41, 0x4c, + 0x59, 0x53, 0x49, 0x53, 0x5f, 0x4a, 0x55, 0x53, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x53, 0x5f, 0x45, 0x4e, 0x56, 0x49, + 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x05, 0x12, 0x37, 0x0a, 0x33, 0x49, 0x4d, 0x50, + 0x41, 0x43, 0x54, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x4a, 0x55, 0x53, + 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, + 0x43, 0x54, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x49, 0x4c, 0x45, 0x52, + 0x10, 0x06, 0x12, 0x36, 0x0a, 0x32, 0x49, 0x4d, 0x50, 0x41, 0x43, 0x54, 0x5f, 0x41, 0x4e, 0x41, + 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x4a, 0x55, 0x53, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, + 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x07, 0x12, 0x38, 0x0a, 0x34, 0x49, 0x4d, + 0x50, 0x41, 0x43, 0x54, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x4a, 0x55, + 0x53, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, + 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x5f, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, 0x54, + 0x45, 0x52, 0x10, 0x08, 0x12, 0x41, 0x0a, 0x3d, 0x49, 0x4d, 0x50, 0x41, 0x43, 0x54, 0x5f, 0x41, + 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x4a, 0x55, 0x53, 0x54, 0x49, 0x46, 0x49, 0x43, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, + 0x42, 0x59, 0x5f, 0x4d, 0x49, 0x54, 0x49, 0x47, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, + 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x10, 0x09, 0x2a, 0x82, 0x02, 0x0a, 0x15, 0x56, 0x75, 0x6c, 0x6e, + 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x49, 0x4c, 0x49, + 0x54, 0x59, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x4e, 0x55, 0x4c, 0x4c, + 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x49, 0x4c, + 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x43, 0x41, 0x4e, + 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x49, 0x58, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x56, 0x55, + 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x53, 0x50, + 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x57, 0x49, 0x4c, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x49, + 0x58, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x49, + 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x55, 0x50, + 0x44, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, + 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, + 0x5f, 0x52, 0x4f, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x04, 0x12, 0x2f, 0x0a, 0x2b, 0x56, + 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x53, + 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x41, 0x52, 0x4f, 0x55, 0x4e, 0x44, + 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x2a, 0xa4, 0x01, 0x0a, + 0x1b, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x41, 0x66, + 0x66, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x25, + 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x41, 0x46, + 0x46, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x2a, 0x0a, 0x26, 0x56, 0x55, 0x4c, 0x4e, 0x45, + 0x52, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x41, 0x46, 0x46, 0x45, 0x43, 0x54, 0x45, + 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x46, 0x46, 0x45, 0x43, 0x54, 0x45, + 0x44, 0x10, 0x01, 0x12, 0x2e, 0x0a, 0x2a, 0x56, 0x55, 0x4c, 0x4e, 0x45, 0x52, 0x41, 0x42, 0x49, + 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x41, 0x46, 0x46, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x41, 0x46, 0x46, 0x45, 0x43, 0x54, 0x45, + 0x44, 0x10, 0x02, 0x2a, 0x97, 0x02, 0x0a, 0x1a, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x61, 0x63, 0x68, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x28, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x50, 0x41, 0x52, 0x41, + 0x4d, 0x45, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x41, 0x43, 0x48, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, 0x50, 0x45, 0x52, 0x56, 0x49, 0x53, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x2e, 0x0a, 0x2a, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, + 0x54, 0x45, 0x52, 0x5f, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x41, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x45, 0x52, 0x56, 0x49, 0x53, 0x45, 0x44, 0x10, 0x01, + 0x12, 0x35, 0x0a, 0x31, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, + 0x54, 0x45, 0x52, 0x5f, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x41, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x52, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x44, 0x5f, 0x4c, 0x45, 0x41, + 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x31, 0x0a, 0x2d, 0x4d, 0x4f, 0x44, 0x45, 0x4c, + 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x50, 0x50, 0x52, 0x4f, + 0x41, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x4d, 0x49, 0x5f, 0x53, 0x55, + 0x50, 0x45, 0x52, 0x56, 0x49, 0x53, 0x45, 0x44, 0x10, 0x03, 0x12, 0x31, 0x0a, 0x2d, 0x4d, 0x4f, + 0x44, 0x45, 0x4c, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x50, + 0x50, 0x52, 0x4f, 0x41, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x4c, 0x46, + 0x5f, 0x53, 0x55, 0x50, 0x45, 0x52, 0x56, 0x49, 0x53, 0x45, 0x44, 0x10, 0x04, 0x2a, 0xc3, 0x01, + 0x0a, 0x11, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, + 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, + 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x43, 0x4f, 0x4d, 0x50, + 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, + 0x1f, 0x0a, 0x1b, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x41, 0x54, + 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x54, 0x10, 0x02, + 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x41, + 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x49, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, + 0x54, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x54, 0x48, 0x45, + 0x52, 0x10, 0x04, 0x2a, 0x87, 0x02, 0x0a, 0x08, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4f, + 0x50, 0x59, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x41, 0x53, + 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x10, + 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, + 0x45, 0x52, 0x47, 0x45, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x54, + 0x41, 0x53, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x10, 0x06, 0x12, + 0x15, 0x0a, 0x11, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x4c, + 0x49, 0x56, 0x45, 0x52, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, + 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x45, 0x41, 0x53, + 0x45, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x4e, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x41, 0x53, 0x4b, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x0b, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_cyclonedx_schema_bom_1_5_proto_rawDescOnce sync.Once + file_cyclonedx_schema_bom_1_5_proto_rawDescData = file_cyclonedx_schema_bom_1_5_proto_rawDesc +) + +func file_cyclonedx_schema_bom_1_5_proto_rawDescGZIP() []byte { + file_cyclonedx_schema_bom_1_5_proto_rawDescOnce.Do(func() { + file_cyclonedx_schema_bom_1_5_proto_rawDescData = protoimpl.X.CompressGZIP(file_cyclonedx_schema_bom_1_5_proto_rawDescData) + }) + return file_cyclonedx_schema_bom_1_5_proto_rawDescData +} + +var file_cyclonedx_schema_bom_1_5_proto_enumTypes = make([]protoimpl.EnumInfo, 25) +var file_cyclonedx_schema_bom_1_5_proto_msgTypes = make([]protoimpl.MessageInfo, 79) +var file_cyclonedx_schema_bom_1_5_proto_goTypes = []interface{}{ + (Classification)(0), // 0: cyclonedx.v1_5.Classification + (DataFlowDirection)(0), // 1: cyclonedx.v1_5.DataFlowDirection + (ExternalReferenceType)(0), // 2: cyclonedx.v1_5.ExternalReferenceType + (HashAlg)(0), // 3: cyclonedx.v1_5.HashAlg + (IssueClassification)(0), // 4: cyclonedx.v1_5.IssueClassification + (LicensingTypeEnum)(0), // 5: cyclonedx.v1_5.LicensingTypeEnum + (LifecyclePhase)(0), // 6: cyclonedx.v1_5.LifecyclePhase + (PatchClassification)(0), // 7: cyclonedx.v1_5.PatchClassification + (Scope)(0), // 8: cyclonedx.v1_5.Scope + (Aggregate)(0), // 9: cyclonedx.v1_5.Aggregate + (EvidenceFieldType)(0), // 10: cyclonedx.v1_5.EvidenceFieldType + (EvidenceTechnique)(0), // 11: cyclonedx.v1_5.EvidenceTechnique + (Severity)(0), // 12: cyclonedx.v1_5.Severity + (ScoreMethod)(0), // 13: cyclonedx.v1_5.ScoreMethod + (ImpactAnalysisState)(0), // 14: cyclonedx.v1_5.ImpactAnalysisState + (ImpactAnalysisJustification)(0), // 15: cyclonedx.v1_5.ImpactAnalysisJustification + (VulnerabilityResponse)(0), // 16: cyclonedx.v1_5.VulnerabilityResponse + (VulnerabilityAffectedStatus)(0), // 17: cyclonedx.v1_5.VulnerabilityAffectedStatus + (ModelParameterApproachType)(0), // 18: cyclonedx.v1_5.ModelParameterApproachType + (ComponentDataType)(0), // 19: cyclonedx.v1_5.ComponentDataType + (TaskType)(0), // 20: cyclonedx.v1_5.TaskType + (Workspace_AccessMode)(0), // 21: cyclonedx.v1_5.Workspace.AccessMode + (Volume_VolumeMode)(0), // 22: cyclonedx.v1_5.Volume.VolumeMode + (Trigger_TriggerType)(0), // 23: cyclonedx.v1_5.Trigger.TriggerType + (OutputType_OutputTypeType)(0), // 24: cyclonedx.v1_5.OutputType.OutputTypeType + (*AttachedText)(nil), // 25: cyclonedx.v1_5.AttachedText + (*Bom)(nil), // 26: cyclonedx.v1_5.Bom + (*Commit)(nil), // 27: cyclonedx.v1_5.Commit + (*Component)(nil), // 28: cyclonedx.v1_5.Component + (*DataFlow)(nil), // 29: cyclonedx.v1_5.DataFlow + (*Dependency)(nil), // 30: cyclonedx.v1_5.Dependency + (*Diff)(nil), // 31: cyclonedx.v1_5.Diff + (*ExternalReference)(nil), // 32: cyclonedx.v1_5.ExternalReference + (*Hash)(nil), // 33: cyclonedx.v1_5.Hash + (*IdentifiableAction)(nil), // 34: cyclonedx.v1_5.IdentifiableAction + (*Issue)(nil), // 35: cyclonedx.v1_5.Issue + (*Source)(nil), // 36: cyclonedx.v1_5.Source + (*LicenseChoice)(nil), // 37: cyclonedx.v1_5.LicenseChoice + (*License)(nil), // 38: cyclonedx.v1_5.License + (*Licensing)(nil), // 39: cyclonedx.v1_5.Licensing + (*OrganizationalEntityOrContact)(nil), // 40: cyclonedx.v1_5.OrganizationalEntityOrContact + (*Metadata)(nil), // 41: cyclonedx.v1_5.Metadata + (*Lifecycles)(nil), // 42: cyclonedx.v1_5.Lifecycles + (*OrganizationalContact)(nil), // 43: cyclonedx.v1_5.OrganizationalContact + (*OrganizationalEntity)(nil), // 44: cyclonedx.v1_5.OrganizationalEntity + (*Patch)(nil), // 45: cyclonedx.v1_5.Patch + (*Pedigree)(nil), // 46: cyclonedx.v1_5.Pedigree + (*Service)(nil), // 47: cyclonedx.v1_5.Service + (*Swid)(nil), // 48: cyclonedx.v1_5.Swid + (*Tool)(nil), // 49: cyclonedx.v1_5.Tool + (*Property)(nil), // 50: cyclonedx.v1_5.Property + (*Composition)(nil), // 51: cyclonedx.v1_5.Composition + (*EvidenceCopyright)(nil), // 52: cyclonedx.v1_5.EvidenceCopyright + (*Evidence)(nil), // 53: cyclonedx.v1_5.Evidence + (*Callstack)(nil), // 54: cyclonedx.v1_5.Callstack + (*EvidenceIdentity)(nil), // 55: cyclonedx.v1_5.EvidenceIdentity + (*EvidenceMethods)(nil), // 56: cyclonedx.v1_5.EvidenceMethods + (*EvidenceOccurrences)(nil), // 57: cyclonedx.v1_5.EvidenceOccurrences + (*Note)(nil), // 58: cyclonedx.v1_5.Note + (*ReleaseNotes)(nil), // 59: cyclonedx.v1_5.ReleaseNotes + (*Vulnerability)(nil), // 60: cyclonedx.v1_5.Vulnerability + (*ProofOfConcept)(nil), // 61: cyclonedx.v1_5.ProofOfConcept + (*VulnerabilityReference)(nil), // 62: cyclonedx.v1_5.VulnerabilityReference + (*VulnerabilityRating)(nil), // 63: cyclonedx.v1_5.VulnerabilityRating + (*Advisory)(nil), // 64: cyclonedx.v1_5.Advisory + (*VulnerabilityCredits)(nil), // 65: cyclonedx.v1_5.VulnerabilityCredits + (*VulnerabilityAnalysis)(nil), // 66: cyclonedx.v1_5.VulnerabilityAnalysis + (*VulnerabilityAffects)(nil), // 67: cyclonedx.v1_5.VulnerabilityAffects + (*VulnerabilityAffectedVersions)(nil), // 68: cyclonedx.v1_5.VulnerabilityAffectedVersions + (*AnnotatorChoice)(nil), // 69: cyclonedx.v1_5.AnnotatorChoice + (*Annotation)(nil), // 70: cyclonedx.v1_5.Annotation + (*ModelCard)(nil), // 71: cyclonedx.v1_5.ModelCard + (*ComponentData)(nil), // 72: cyclonedx.v1_5.ComponentData + (*DataGovernance)(nil), // 73: cyclonedx.v1_5.DataGovernance + (*GraphicsCollection)(nil), // 74: cyclonedx.v1_5.GraphicsCollection + (*Formula)(nil), // 75: cyclonedx.v1_5.Formula + (*Workflow)(nil), // 76: cyclonedx.v1_5.Workflow + (*Task)(nil), // 77: cyclonedx.v1_5.Task + (*Step)(nil), // 78: cyclonedx.v1_5.Step + (*Command)(nil), // 79: cyclonedx.v1_5.Command + (*Workspace)(nil), // 80: cyclonedx.v1_5.Workspace + (*Volume)(nil), // 81: cyclonedx.v1_5.Volume + (*Trigger)(nil), // 82: cyclonedx.v1_5.Trigger + (*Event)(nil), // 83: cyclonedx.v1_5.Event + (*InputType)(nil), // 84: cyclonedx.v1_5.InputType + (*OutputType)(nil), // 85: cyclonedx.v1_5.OutputType + (*ResourceReferenceChoice)(nil), // 86: cyclonedx.v1_5.ResourceReferenceChoice + (*Condition)(nil), // 87: cyclonedx.v1_5.Condition + (*Parameter)(nil), // 88: cyclonedx.v1_5.Parameter + (*EnvironmentVars)(nil), // 89: cyclonedx.v1_5.EnvironmentVars + (*Callstack_Frames)(nil), // 90: cyclonedx.v1_5.Callstack.Frames + (*ModelCard_ModelParameters)(nil), // 91: cyclonedx.v1_5.ModelCard.ModelParameters + (*ModelCard_QuantitativeAnalysis)(nil), // 92: cyclonedx.v1_5.ModelCard.QuantitativeAnalysis + (*ModelCard_ModelCardConsiderations)(nil), // 93: cyclonedx.v1_5.ModelCard.ModelCardConsiderations + (*ModelCard_ModelParameters_Approach)(nil), // 94: cyclonedx.v1_5.ModelCard.ModelParameters.Approach + (*ModelCard_ModelParameters_Datasets)(nil), // 95: cyclonedx.v1_5.ModelCard.ModelParameters.Datasets + (*ModelCard_ModelParameters_MachineLearningInputOutputParameters)(nil), // 96: cyclonedx.v1_5.ModelCard.ModelParameters.MachineLearningInputOutputParameters + (*ModelCard_QuantitativeAnalysis_PerformanceMetrics)(nil), // 97: cyclonedx.v1_5.ModelCard.QuantitativeAnalysis.PerformanceMetrics + (*ModelCard_QuantitativeAnalysis_PerformanceMetrics_ConfidenceInterval)(nil), // 98: cyclonedx.v1_5.ModelCard.QuantitativeAnalysis.PerformanceMetrics.ConfidenceInterval + (*ModelCard_ModelCardConsiderations_EthicalConsiderations)(nil), // 99: cyclonedx.v1_5.ModelCard.ModelCardConsiderations.EthicalConsiderations + (*ModelCard_ModelCardConsiderations_FairnessAssessments)(nil), // 100: cyclonedx.v1_5.ModelCard.ModelCardConsiderations.FairnessAssessments + (*ComponentData_ComponentDataContents)(nil), // 101: cyclonedx.v1_5.ComponentData.ComponentDataContents + (*DataGovernance_DataGovernanceResponsibleParty)(nil), // 102: cyclonedx.v1_5.DataGovernance.DataGovernanceResponsibleParty + (*GraphicsCollection_Graphic)(nil), // 103: cyclonedx.v1_5.GraphicsCollection.Graphic + (*timestamppb.Timestamp)(nil), // 104: google.protobuf.Timestamp +} +var file_cyclonedx_schema_bom_1_5_proto_depIdxs = []int32{ + 41, // 0: cyclonedx.v1_5.Bom.metadata:type_name -> cyclonedx.v1_5.Metadata + 28, // 1: cyclonedx.v1_5.Bom.components:type_name -> cyclonedx.v1_5.Component + 47, // 2: cyclonedx.v1_5.Bom.services:type_name -> cyclonedx.v1_5.Service + 32, // 3: cyclonedx.v1_5.Bom.external_references:type_name -> cyclonedx.v1_5.ExternalReference + 30, // 4: cyclonedx.v1_5.Bom.dependencies:type_name -> cyclonedx.v1_5.Dependency + 51, // 5: cyclonedx.v1_5.Bom.compositions:type_name -> cyclonedx.v1_5.Composition + 60, // 6: cyclonedx.v1_5.Bom.vulnerabilities:type_name -> cyclonedx.v1_5.Vulnerability + 70, // 7: cyclonedx.v1_5.Bom.annotations:type_name -> cyclonedx.v1_5.Annotation + 50, // 8: cyclonedx.v1_5.Bom.properties:type_name -> cyclonedx.v1_5.Property + 75, // 9: cyclonedx.v1_5.Bom.formulation:type_name -> cyclonedx.v1_5.Formula + 34, // 10: cyclonedx.v1_5.Commit.author:type_name -> cyclonedx.v1_5.IdentifiableAction + 34, // 11: cyclonedx.v1_5.Commit.committer:type_name -> cyclonedx.v1_5.IdentifiableAction + 0, // 12: cyclonedx.v1_5.Component.type:type_name -> cyclonedx.v1_5.Classification + 44, // 13: cyclonedx.v1_5.Component.supplier:type_name -> cyclonedx.v1_5.OrganizationalEntity + 8, // 14: cyclonedx.v1_5.Component.scope:type_name -> cyclonedx.v1_5.Scope + 33, // 15: cyclonedx.v1_5.Component.hashes:type_name -> cyclonedx.v1_5.Hash + 37, // 16: cyclonedx.v1_5.Component.licenses:type_name -> cyclonedx.v1_5.LicenseChoice + 48, // 17: cyclonedx.v1_5.Component.swid:type_name -> cyclonedx.v1_5.Swid + 46, // 18: cyclonedx.v1_5.Component.pedigree:type_name -> cyclonedx.v1_5.Pedigree + 32, // 19: cyclonedx.v1_5.Component.external_references:type_name -> cyclonedx.v1_5.ExternalReference + 28, // 20: cyclonedx.v1_5.Component.components:type_name -> cyclonedx.v1_5.Component + 50, // 21: cyclonedx.v1_5.Component.properties:type_name -> cyclonedx.v1_5.Property + 53, // 22: cyclonedx.v1_5.Component.evidence:type_name -> cyclonedx.v1_5.Evidence + 59, // 23: cyclonedx.v1_5.Component.releaseNotes:type_name -> cyclonedx.v1_5.ReleaseNotes + 71, // 24: cyclonedx.v1_5.Component.modelCard:type_name -> cyclonedx.v1_5.ModelCard + 72, // 25: cyclonedx.v1_5.Component.data:type_name -> cyclonedx.v1_5.ComponentData + 1, // 26: cyclonedx.v1_5.DataFlow.flow:type_name -> cyclonedx.v1_5.DataFlowDirection + 73, // 27: cyclonedx.v1_5.DataFlow.governance:type_name -> cyclonedx.v1_5.DataGovernance + 30, // 28: cyclonedx.v1_5.Dependency.dependencies:type_name -> cyclonedx.v1_5.Dependency + 25, // 29: cyclonedx.v1_5.Diff.text:type_name -> cyclonedx.v1_5.AttachedText + 2, // 30: cyclonedx.v1_5.ExternalReference.type:type_name -> cyclonedx.v1_5.ExternalReferenceType + 33, // 31: cyclonedx.v1_5.ExternalReference.hashes:type_name -> cyclonedx.v1_5.Hash + 3, // 32: cyclonedx.v1_5.Hash.alg:type_name -> cyclonedx.v1_5.HashAlg + 104, // 33: cyclonedx.v1_5.IdentifiableAction.timestamp:type_name -> google.protobuf.Timestamp + 4, // 34: cyclonedx.v1_5.Issue.type:type_name -> cyclonedx.v1_5.IssueClassification + 36, // 35: cyclonedx.v1_5.Issue.source:type_name -> cyclonedx.v1_5.Source + 38, // 36: cyclonedx.v1_5.LicenseChoice.license:type_name -> cyclonedx.v1_5.License + 25, // 37: cyclonedx.v1_5.License.text:type_name -> cyclonedx.v1_5.AttachedText + 39, // 38: cyclonedx.v1_5.License.licensing:type_name -> cyclonedx.v1_5.Licensing + 50, // 39: cyclonedx.v1_5.License.properties:type_name -> cyclonedx.v1_5.Property + 40, // 40: cyclonedx.v1_5.Licensing.licensor:type_name -> cyclonedx.v1_5.OrganizationalEntityOrContact + 40, // 41: cyclonedx.v1_5.Licensing.licensee:type_name -> cyclonedx.v1_5.OrganizationalEntityOrContact + 40, // 42: cyclonedx.v1_5.Licensing.purchaser:type_name -> cyclonedx.v1_5.OrganizationalEntityOrContact + 5, // 43: cyclonedx.v1_5.Licensing.licenseTypes:type_name -> cyclonedx.v1_5.LicensingTypeEnum + 104, // 44: cyclonedx.v1_5.Licensing.lastRenewal:type_name -> google.protobuf.Timestamp + 104, // 45: cyclonedx.v1_5.Licensing.expiration:type_name -> google.protobuf.Timestamp + 44, // 46: cyclonedx.v1_5.OrganizationalEntityOrContact.organization:type_name -> cyclonedx.v1_5.OrganizationalEntity + 43, // 47: cyclonedx.v1_5.OrganizationalEntityOrContact.individual:type_name -> cyclonedx.v1_5.OrganizationalContact + 104, // 48: cyclonedx.v1_5.Metadata.timestamp:type_name -> google.protobuf.Timestamp + 49, // 49: cyclonedx.v1_5.Metadata.tools:type_name -> cyclonedx.v1_5.Tool + 43, // 50: cyclonedx.v1_5.Metadata.authors:type_name -> cyclonedx.v1_5.OrganizationalContact + 28, // 51: cyclonedx.v1_5.Metadata.component:type_name -> cyclonedx.v1_5.Component + 44, // 52: cyclonedx.v1_5.Metadata.manufacture:type_name -> cyclonedx.v1_5.OrganizationalEntity + 44, // 53: cyclonedx.v1_5.Metadata.supplier:type_name -> cyclonedx.v1_5.OrganizationalEntity + 37, // 54: cyclonedx.v1_5.Metadata.licenses:type_name -> cyclonedx.v1_5.LicenseChoice + 50, // 55: cyclonedx.v1_5.Metadata.properties:type_name -> cyclonedx.v1_5.Property + 42, // 56: cyclonedx.v1_5.Metadata.lifecycles:type_name -> cyclonedx.v1_5.Lifecycles + 6, // 57: cyclonedx.v1_5.Lifecycles.phase:type_name -> cyclonedx.v1_5.LifecyclePhase + 43, // 58: cyclonedx.v1_5.OrganizationalEntity.contact:type_name -> cyclonedx.v1_5.OrganizationalContact + 7, // 59: cyclonedx.v1_5.Patch.type:type_name -> cyclonedx.v1_5.PatchClassification + 31, // 60: cyclonedx.v1_5.Patch.diff:type_name -> cyclonedx.v1_5.Diff + 35, // 61: cyclonedx.v1_5.Patch.resolves:type_name -> cyclonedx.v1_5.Issue + 28, // 62: cyclonedx.v1_5.Pedigree.ancestors:type_name -> cyclonedx.v1_5.Component + 28, // 63: cyclonedx.v1_5.Pedigree.descendants:type_name -> cyclonedx.v1_5.Component + 28, // 64: cyclonedx.v1_5.Pedigree.variants:type_name -> cyclonedx.v1_5.Component + 27, // 65: cyclonedx.v1_5.Pedigree.commits:type_name -> cyclonedx.v1_5.Commit + 45, // 66: cyclonedx.v1_5.Pedigree.patches:type_name -> cyclonedx.v1_5.Patch + 44, // 67: cyclonedx.v1_5.Service.provider:type_name -> cyclonedx.v1_5.OrganizationalEntity + 29, // 68: cyclonedx.v1_5.Service.data:type_name -> cyclonedx.v1_5.DataFlow + 37, // 69: cyclonedx.v1_5.Service.licenses:type_name -> cyclonedx.v1_5.LicenseChoice + 32, // 70: cyclonedx.v1_5.Service.external_references:type_name -> cyclonedx.v1_5.ExternalReference + 47, // 71: cyclonedx.v1_5.Service.services:type_name -> cyclonedx.v1_5.Service + 50, // 72: cyclonedx.v1_5.Service.properties:type_name -> cyclonedx.v1_5.Property + 59, // 73: cyclonedx.v1_5.Service.releaseNotes:type_name -> cyclonedx.v1_5.ReleaseNotes + 25, // 74: cyclonedx.v1_5.Swid.text:type_name -> cyclonedx.v1_5.AttachedText + 33, // 75: cyclonedx.v1_5.Tool.hashes:type_name -> cyclonedx.v1_5.Hash + 32, // 76: cyclonedx.v1_5.Tool.external_references:type_name -> cyclonedx.v1_5.ExternalReference + 28, // 77: cyclonedx.v1_5.Tool.components:type_name -> cyclonedx.v1_5.Component + 47, // 78: cyclonedx.v1_5.Tool.services:type_name -> cyclonedx.v1_5.Service + 9, // 79: cyclonedx.v1_5.Composition.aggregate:type_name -> cyclonedx.v1_5.Aggregate + 37, // 80: cyclonedx.v1_5.Evidence.licenses:type_name -> cyclonedx.v1_5.LicenseChoice + 52, // 81: cyclonedx.v1_5.Evidence.copyright:type_name -> cyclonedx.v1_5.EvidenceCopyright + 55, // 82: cyclonedx.v1_5.Evidence.identity:type_name -> cyclonedx.v1_5.EvidenceIdentity + 57, // 83: cyclonedx.v1_5.Evidence.occurrences:type_name -> cyclonedx.v1_5.EvidenceOccurrences + 54, // 84: cyclonedx.v1_5.Evidence.callstack:type_name -> cyclonedx.v1_5.Callstack + 90, // 85: cyclonedx.v1_5.Callstack.frames:type_name -> cyclonedx.v1_5.Callstack.Frames + 10, // 86: cyclonedx.v1_5.EvidenceIdentity.field:type_name -> cyclonedx.v1_5.EvidenceFieldType + 56, // 87: cyclonedx.v1_5.EvidenceIdentity.methods:type_name -> cyclonedx.v1_5.EvidenceMethods + 11, // 88: cyclonedx.v1_5.EvidenceMethods.technique:type_name -> cyclonedx.v1_5.EvidenceTechnique + 25, // 89: cyclonedx.v1_5.Note.text:type_name -> cyclonedx.v1_5.AttachedText + 104, // 90: cyclonedx.v1_5.ReleaseNotes.timestamp:type_name -> google.protobuf.Timestamp + 35, // 91: cyclonedx.v1_5.ReleaseNotes.resolves:type_name -> cyclonedx.v1_5.Issue + 58, // 92: cyclonedx.v1_5.ReleaseNotes.notes:type_name -> cyclonedx.v1_5.Note + 50, // 93: cyclonedx.v1_5.ReleaseNotes.properties:type_name -> cyclonedx.v1_5.Property + 36, // 94: cyclonedx.v1_5.Vulnerability.source:type_name -> cyclonedx.v1_5.Source + 62, // 95: cyclonedx.v1_5.Vulnerability.references:type_name -> cyclonedx.v1_5.VulnerabilityReference + 63, // 96: cyclonedx.v1_5.Vulnerability.ratings:type_name -> cyclonedx.v1_5.VulnerabilityRating + 64, // 97: cyclonedx.v1_5.Vulnerability.advisories:type_name -> cyclonedx.v1_5.Advisory + 104, // 98: cyclonedx.v1_5.Vulnerability.created:type_name -> google.protobuf.Timestamp + 104, // 99: cyclonedx.v1_5.Vulnerability.published:type_name -> google.protobuf.Timestamp + 104, // 100: cyclonedx.v1_5.Vulnerability.updated:type_name -> google.protobuf.Timestamp + 65, // 101: cyclonedx.v1_5.Vulnerability.credits:type_name -> cyclonedx.v1_5.VulnerabilityCredits + 49, // 102: cyclonedx.v1_5.Vulnerability.tools:type_name -> cyclonedx.v1_5.Tool + 66, // 103: cyclonedx.v1_5.Vulnerability.analysis:type_name -> cyclonedx.v1_5.VulnerabilityAnalysis + 67, // 104: cyclonedx.v1_5.Vulnerability.affects:type_name -> cyclonedx.v1_5.VulnerabilityAffects + 50, // 105: cyclonedx.v1_5.Vulnerability.properties:type_name -> cyclonedx.v1_5.Property + 104, // 106: cyclonedx.v1_5.Vulnerability.rejected:type_name -> google.protobuf.Timestamp + 61, // 107: cyclonedx.v1_5.Vulnerability.proofOfConcept:type_name -> cyclonedx.v1_5.ProofOfConcept + 25, // 108: cyclonedx.v1_5.ProofOfConcept.supportingMaterial:type_name -> cyclonedx.v1_5.AttachedText + 36, // 109: cyclonedx.v1_5.VulnerabilityReference.source:type_name -> cyclonedx.v1_5.Source + 36, // 110: cyclonedx.v1_5.VulnerabilityRating.source:type_name -> cyclonedx.v1_5.Source + 12, // 111: cyclonedx.v1_5.VulnerabilityRating.severity:type_name -> cyclonedx.v1_5.Severity + 13, // 112: cyclonedx.v1_5.VulnerabilityRating.method:type_name -> cyclonedx.v1_5.ScoreMethod + 44, // 113: cyclonedx.v1_5.VulnerabilityCredits.organizations:type_name -> cyclonedx.v1_5.OrganizationalEntity + 43, // 114: cyclonedx.v1_5.VulnerabilityCredits.individuals:type_name -> cyclonedx.v1_5.OrganizationalContact + 14, // 115: cyclonedx.v1_5.VulnerabilityAnalysis.state:type_name -> cyclonedx.v1_5.ImpactAnalysisState + 15, // 116: cyclonedx.v1_5.VulnerabilityAnalysis.justification:type_name -> cyclonedx.v1_5.ImpactAnalysisJustification + 16, // 117: cyclonedx.v1_5.VulnerabilityAnalysis.response:type_name -> cyclonedx.v1_5.VulnerabilityResponse + 104, // 118: cyclonedx.v1_5.VulnerabilityAnalysis.firstIssued:type_name -> google.protobuf.Timestamp + 104, // 119: cyclonedx.v1_5.VulnerabilityAnalysis.lastUpdated:type_name -> google.protobuf.Timestamp + 68, // 120: cyclonedx.v1_5.VulnerabilityAffects.versions:type_name -> cyclonedx.v1_5.VulnerabilityAffectedVersions + 17, // 121: cyclonedx.v1_5.VulnerabilityAffectedVersions.status:type_name -> cyclonedx.v1_5.VulnerabilityAffectedStatus + 44, // 122: cyclonedx.v1_5.AnnotatorChoice.organization:type_name -> cyclonedx.v1_5.OrganizationalEntity + 43, // 123: cyclonedx.v1_5.AnnotatorChoice.individual:type_name -> cyclonedx.v1_5.OrganizationalContact + 28, // 124: cyclonedx.v1_5.AnnotatorChoice.component:type_name -> cyclonedx.v1_5.Component + 47, // 125: cyclonedx.v1_5.AnnotatorChoice.service:type_name -> cyclonedx.v1_5.Service + 69, // 126: cyclonedx.v1_5.Annotation.annotator:type_name -> cyclonedx.v1_5.AnnotatorChoice + 104, // 127: cyclonedx.v1_5.Annotation.timestamp:type_name -> google.protobuf.Timestamp + 91, // 128: cyclonedx.v1_5.ModelCard.modelParameters:type_name -> cyclonedx.v1_5.ModelCard.ModelParameters + 92, // 129: cyclonedx.v1_5.ModelCard.quantitativeAnalysis:type_name -> cyclonedx.v1_5.ModelCard.QuantitativeAnalysis + 93, // 130: cyclonedx.v1_5.ModelCard.considerations:type_name -> cyclonedx.v1_5.ModelCard.ModelCardConsiderations + 19, // 131: cyclonedx.v1_5.ComponentData.type:type_name -> cyclonedx.v1_5.ComponentDataType + 101, // 132: cyclonedx.v1_5.ComponentData.contents:type_name -> cyclonedx.v1_5.ComponentData.ComponentDataContents + 74, // 133: cyclonedx.v1_5.ComponentData.graphics:type_name -> cyclonedx.v1_5.GraphicsCollection + 73, // 134: cyclonedx.v1_5.ComponentData.governance:type_name -> cyclonedx.v1_5.DataGovernance + 102, // 135: cyclonedx.v1_5.DataGovernance.custodians:type_name -> cyclonedx.v1_5.DataGovernance.DataGovernanceResponsibleParty + 102, // 136: cyclonedx.v1_5.DataGovernance.stewards:type_name -> cyclonedx.v1_5.DataGovernance.DataGovernanceResponsibleParty + 102, // 137: cyclonedx.v1_5.DataGovernance.owners:type_name -> cyclonedx.v1_5.DataGovernance.DataGovernanceResponsibleParty + 103, // 138: cyclonedx.v1_5.GraphicsCollection.graphic:type_name -> cyclonedx.v1_5.GraphicsCollection.Graphic + 28, // 139: cyclonedx.v1_5.Formula.components:type_name -> cyclonedx.v1_5.Component + 47, // 140: cyclonedx.v1_5.Formula.services:type_name -> cyclonedx.v1_5.Service + 76, // 141: cyclonedx.v1_5.Formula.workflows:type_name -> cyclonedx.v1_5.Workflow + 50, // 142: cyclonedx.v1_5.Formula.properties:type_name -> cyclonedx.v1_5.Property + 50, // 143: cyclonedx.v1_5.Workflow.properties:type_name -> cyclonedx.v1_5.Property + 86, // 144: cyclonedx.v1_5.Workflow.resourceReferences:type_name -> cyclonedx.v1_5.ResourceReferenceChoice + 77, // 145: cyclonedx.v1_5.Workflow.tasks:type_name -> cyclonedx.v1_5.Task + 30, // 146: cyclonedx.v1_5.Workflow.taskDependencies:type_name -> cyclonedx.v1_5.Dependency + 20, // 147: cyclonedx.v1_5.Workflow.taskTypes:type_name -> cyclonedx.v1_5.TaskType + 82, // 148: cyclonedx.v1_5.Workflow.trigger:type_name -> cyclonedx.v1_5.Trigger + 78, // 149: cyclonedx.v1_5.Workflow.steps:type_name -> cyclonedx.v1_5.Step + 84, // 150: cyclonedx.v1_5.Workflow.inputs:type_name -> cyclonedx.v1_5.InputType + 85, // 151: cyclonedx.v1_5.Workflow.outputs:type_name -> cyclonedx.v1_5.OutputType + 104, // 152: cyclonedx.v1_5.Workflow.timeStart:type_name -> google.protobuf.Timestamp + 104, // 153: cyclonedx.v1_5.Workflow.timeEnd:type_name -> google.protobuf.Timestamp + 80, // 154: cyclonedx.v1_5.Workflow.workspaces:type_name -> cyclonedx.v1_5.Workspace + 30, // 155: cyclonedx.v1_5.Workflow.runtimeTopology:type_name -> cyclonedx.v1_5.Dependency + 50, // 156: cyclonedx.v1_5.Task.properties:type_name -> cyclonedx.v1_5.Property + 86, // 157: cyclonedx.v1_5.Task.resourceReferences:type_name -> cyclonedx.v1_5.ResourceReferenceChoice + 20, // 158: cyclonedx.v1_5.Task.taskTypes:type_name -> cyclonedx.v1_5.TaskType + 82, // 159: cyclonedx.v1_5.Task.trigger:type_name -> cyclonedx.v1_5.Trigger + 78, // 160: cyclonedx.v1_5.Task.steps:type_name -> cyclonedx.v1_5.Step + 84, // 161: cyclonedx.v1_5.Task.inputs:type_name -> cyclonedx.v1_5.InputType + 85, // 162: cyclonedx.v1_5.Task.outputs:type_name -> cyclonedx.v1_5.OutputType + 104, // 163: cyclonedx.v1_5.Task.timeStart:type_name -> google.protobuf.Timestamp + 104, // 164: cyclonedx.v1_5.Task.timeEnd:type_name -> google.protobuf.Timestamp + 80, // 165: cyclonedx.v1_5.Task.workspaces:type_name -> cyclonedx.v1_5.Workspace + 30, // 166: cyclonedx.v1_5.Task.runtimeTopology:type_name -> cyclonedx.v1_5.Dependency + 79, // 167: cyclonedx.v1_5.Step.commands:type_name -> cyclonedx.v1_5.Command + 50, // 168: cyclonedx.v1_5.Step.properties:type_name -> cyclonedx.v1_5.Property + 50, // 169: cyclonedx.v1_5.Command.properties:type_name -> cyclonedx.v1_5.Property + 50, // 170: cyclonedx.v1_5.Workspace.properties:type_name -> cyclonedx.v1_5.Property + 86, // 171: cyclonedx.v1_5.Workspace.resourceReferences:type_name -> cyclonedx.v1_5.ResourceReferenceChoice + 21, // 172: cyclonedx.v1_5.Workspace.accessMode:type_name -> cyclonedx.v1_5.Workspace.AccessMode + 81, // 173: cyclonedx.v1_5.Workspace.volume:type_name -> cyclonedx.v1_5.Volume + 22, // 174: cyclonedx.v1_5.Volume.mode:type_name -> cyclonedx.v1_5.Volume.VolumeMode + 50, // 175: cyclonedx.v1_5.Volume.properties:type_name -> cyclonedx.v1_5.Property + 50, // 176: cyclonedx.v1_5.Trigger.properties:type_name -> cyclonedx.v1_5.Property + 86, // 177: cyclonedx.v1_5.Trigger.resourceReferences:type_name -> cyclonedx.v1_5.ResourceReferenceChoice + 23, // 178: cyclonedx.v1_5.Trigger.type:type_name -> cyclonedx.v1_5.Trigger.TriggerType + 83, // 179: cyclonedx.v1_5.Trigger.event:type_name -> cyclonedx.v1_5.Event + 87, // 180: cyclonedx.v1_5.Trigger.conditions:type_name -> cyclonedx.v1_5.Condition + 104, // 181: cyclonedx.v1_5.Trigger.timeActivated:type_name -> google.protobuf.Timestamp + 84, // 182: cyclonedx.v1_5.Trigger.inputs:type_name -> cyclonedx.v1_5.InputType + 85, // 183: cyclonedx.v1_5.Trigger.outputs:type_name -> cyclonedx.v1_5.OutputType + 104, // 184: cyclonedx.v1_5.Event.timeReceived:type_name -> google.protobuf.Timestamp + 25, // 185: cyclonedx.v1_5.Event.data:type_name -> cyclonedx.v1_5.AttachedText + 86, // 186: cyclonedx.v1_5.Event.source:type_name -> cyclonedx.v1_5.ResourceReferenceChoice + 86, // 187: cyclonedx.v1_5.Event.target:type_name -> cyclonedx.v1_5.ResourceReferenceChoice + 50, // 188: cyclonedx.v1_5.Event.properties:type_name -> cyclonedx.v1_5.Property + 86, // 189: cyclonedx.v1_5.InputType.source:type_name -> cyclonedx.v1_5.ResourceReferenceChoice + 86, // 190: cyclonedx.v1_5.InputType.target:type_name -> cyclonedx.v1_5.ResourceReferenceChoice + 86, // 191: cyclonedx.v1_5.InputType.resource:type_name -> cyclonedx.v1_5.ResourceReferenceChoice + 88, // 192: cyclonedx.v1_5.InputType.parameters:type_name -> cyclonedx.v1_5.Parameter + 89, // 193: cyclonedx.v1_5.InputType.environmentVars:type_name -> cyclonedx.v1_5.EnvironmentVars + 25, // 194: cyclonedx.v1_5.InputType.data:type_name -> cyclonedx.v1_5.AttachedText + 50, // 195: cyclonedx.v1_5.InputType.properties:type_name -> cyclonedx.v1_5.Property + 24, // 196: cyclonedx.v1_5.OutputType.type:type_name -> cyclonedx.v1_5.OutputType.OutputTypeType + 86, // 197: cyclonedx.v1_5.OutputType.source:type_name -> cyclonedx.v1_5.ResourceReferenceChoice + 86, // 198: cyclonedx.v1_5.OutputType.target:type_name -> cyclonedx.v1_5.ResourceReferenceChoice + 86, // 199: cyclonedx.v1_5.OutputType.resource:type_name -> cyclonedx.v1_5.ResourceReferenceChoice + 25, // 200: cyclonedx.v1_5.OutputType.data:type_name -> cyclonedx.v1_5.AttachedText + 89, // 201: cyclonedx.v1_5.OutputType.environmentVars:type_name -> cyclonedx.v1_5.EnvironmentVars + 50, // 202: cyclonedx.v1_5.OutputType.properties:type_name -> cyclonedx.v1_5.Property + 32, // 203: cyclonedx.v1_5.ResourceReferenceChoice.externalReference:type_name -> cyclonedx.v1_5.ExternalReference + 50, // 204: cyclonedx.v1_5.Condition.properties:type_name -> cyclonedx.v1_5.Property + 50, // 205: cyclonedx.v1_5.EnvironmentVars.property:type_name -> cyclonedx.v1_5.Property + 94, // 206: cyclonedx.v1_5.ModelCard.ModelParameters.approach:type_name -> cyclonedx.v1_5.ModelCard.ModelParameters.Approach + 95, // 207: cyclonedx.v1_5.ModelCard.ModelParameters.datasets:type_name -> cyclonedx.v1_5.ModelCard.ModelParameters.Datasets + 96, // 208: cyclonedx.v1_5.ModelCard.ModelParameters.inputs:type_name -> cyclonedx.v1_5.ModelCard.ModelParameters.MachineLearningInputOutputParameters + 96, // 209: cyclonedx.v1_5.ModelCard.ModelParameters.outputs:type_name -> cyclonedx.v1_5.ModelCard.ModelParameters.MachineLearningInputOutputParameters + 97, // 210: cyclonedx.v1_5.ModelCard.QuantitativeAnalysis.performanceMetrics:type_name -> cyclonedx.v1_5.ModelCard.QuantitativeAnalysis.PerformanceMetrics + 74, // 211: cyclonedx.v1_5.ModelCard.QuantitativeAnalysis.graphics:type_name -> cyclonedx.v1_5.GraphicsCollection + 99, // 212: cyclonedx.v1_5.ModelCard.ModelCardConsiderations.ethicalConsiderations:type_name -> cyclonedx.v1_5.ModelCard.ModelCardConsiderations.EthicalConsiderations + 100, // 213: cyclonedx.v1_5.ModelCard.ModelCardConsiderations.fairnessAssessments:type_name -> cyclonedx.v1_5.ModelCard.ModelCardConsiderations.FairnessAssessments + 18, // 214: cyclonedx.v1_5.ModelCard.ModelParameters.Approach.type:type_name -> cyclonedx.v1_5.ModelParameterApproachType + 72, // 215: cyclonedx.v1_5.ModelCard.ModelParameters.Datasets.dataset:type_name -> cyclonedx.v1_5.ComponentData + 98, // 216: cyclonedx.v1_5.ModelCard.QuantitativeAnalysis.PerformanceMetrics.confidenceInterval:type_name -> cyclonedx.v1_5.ModelCard.QuantitativeAnalysis.PerformanceMetrics.ConfidenceInterval + 25, // 217: cyclonedx.v1_5.ComponentData.ComponentDataContents.attachment:type_name -> cyclonedx.v1_5.AttachedText + 50, // 218: cyclonedx.v1_5.ComponentData.ComponentDataContents.properties:type_name -> cyclonedx.v1_5.Property + 44, // 219: cyclonedx.v1_5.DataGovernance.DataGovernanceResponsibleParty.organization:type_name -> cyclonedx.v1_5.OrganizationalEntity + 43, // 220: cyclonedx.v1_5.DataGovernance.DataGovernanceResponsibleParty.contact:type_name -> cyclonedx.v1_5.OrganizationalContact + 25, // 221: cyclonedx.v1_5.GraphicsCollection.Graphic.image:type_name -> cyclonedx.v1_5.AttachedText + 222, // [222:222] is the sub-list for method output_type + 222, // [222:222] is the sub-list for method input_type + 222, // [222:222] is the sub-list for extension type_name + 222, // [222:222] is the sub-list for extension extendee + 0, // [0:222] is the sub-list for field type_name +} + +func init() { file_cyclonedx_schema_bom_1_5_proto_init() } +func file_cyclonedx_schema_bom_1_5_proto_init() { + if File_cyclonedx_schema_bom_1_5_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cyclonedx_schema_bom_1_5_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AttachedText); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Bom); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Commit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Component); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataFlow); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dependency); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Diff); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExternalReference); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Hash); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdentifiableAction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Issue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Source); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LicenseChoice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*License); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Licensing); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrganizationalEntityOrContact); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Metadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Lifecycles); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrganizationalContact); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrganizationalEntity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Patch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Pedigree); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Service); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Swid); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Tool); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Property); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Composition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EvidenceCopyright); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Evidence); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Callstack); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EvidenceIdentity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EvidenceMethods); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EvidenceOccurrences); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Note); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReleaseNotes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Vulnerability); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProofOfConcept); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VulnerabilityReference); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VulnerabilityRating); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Advisory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VulnerabilityCredits); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VulnerabilityAnalysis); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VulnerabilityAffects); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VulnerabilityAffectedVersions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnnotatorChoice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Annotation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModelCard); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ComponentData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataGovernance); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GraphicsCollection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Formula); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Workflow); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Task); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Step); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Command); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Workspace); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Volume); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Trigger); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Event); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InputType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OutputType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResourceReferenceChoice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Condition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Parameter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EnvironmentVars); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Callstack_Frames); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModelCard_ModelParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModelCard_QuantitativeAnalysis); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModelCard_ModelCardConsiderations); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModelCard_ModelParameters_Approach); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModelCard_ModelParameters_Datasets); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModelCard_ModelParameters_MachineLearningInputOutputParameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModelCard_QuantitativeAnalysis_PerformanceMetrics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModelCard_QuantitativeAnalysis_PerformanceMetrics_ConfidenceInterval); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModelCard_ModelCardConsiderations_EthicalConsiderations); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModelCard_ModelCardConsiderations_FairnessAssessments); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ComponentData_ComponentDataContents); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataGovernance_DataGovernanceResponsibleParty); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GraphicsCollection_Graphic); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[1].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[2].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[3].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[6].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[7].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[10].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[11].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[12].OneofWrappers = []interface{}{ + (*LicenseChoice_License)(nil), + (*LicenseChoice_Expression)(nil), + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[13].OneofWrappers = []interface{}{ + (*License_Id)(nil), + (*License_Name)(nil), + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[15].OneofWrappers = []interface{}{ + (*OrganizationalEntityOrContact_Organization)(nil), + (*OrganizationalEntityOrContact_Individual)(nil), + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[17].OneofWrappers = []interface{}{ + (*Lifecycles_Phase)(nil), + (*Lifecycles_Name)(nil), + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[18].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[19].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[20].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[21].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[22].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[23].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[24].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[25].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[26].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[28].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[30].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[31].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[32].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[33].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[34].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[35].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[36].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[38].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[39].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[41].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[43].OneofWrappers = []interface{}{ + (*VulnerabilityAffectedVersions_Version)(nil), + (*VulnerabilityAffectedVersions_Range)(nil), + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[44].OneofWrappers = []interface{}{ + (*AnnotatorChoice_Organization)(nil), + (*AnnotatorChoice_Individual)(nil), + (*AnnotatorChoice_Component)(nil), + (*AnnotatorChoice_Service)(nil), + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[45].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[46].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[47].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[49].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[50].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[51].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[52].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[53].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[54].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[55].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[56].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[57].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[58].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[59].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[60].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[61].OneofWrappers = []interface{}{ + (*ResourceReferenceChoice_Ref)(nil), + (*ResourceReferenceChoice_ExternalReference)(nil), + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[62].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[63].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[64].OneofWrappers = []interface{}{ + (*EnvironmentVars_Property)(nil), + (*EnvironmentVars_Value)(nil), + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[65].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[66].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[67].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[69].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[70].OneofWrappers = []interface{}{ + (*ModelCard_ModelParameters_Datasets_Dataset)(nil), + (*ModelCard_ModelParameters_Datasets_Ref)(nil), + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[71].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[72].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[73].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[74].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[75].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[76].OneofWrappers = []interface{}{} + file_cyclonedx_schema_bom_1_5_proto_msgTypes[77].OneofWrappers = []interface{}{ + (*DataGovernance_DataGovernanceResponsibleParty_Organization)(nil), + (*DataGovernance_DataGovernanceResponsibleParty_Contact)(nil), + } + file_cyclonedx_schema_bom_1_5_proto_msgTypes[78].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cyclonedx_schema_bom_1_5_proto_rawDesc, + NumEnums: 25, + NumMessages: 79, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_cyclonedx_schema_bom_1_5_proto_goTypes, + DependencyIndexes: file_cyclonedx_schema_bom_1_5_proto_depIdxs, + EnumInfos: file_cyclonedx_schema_bom_1_5_proto_enumTypes, + MessageInfos: file_cyclonedx_schema_bom_1_5_proto_msgTypes, + }.Build() + File_cyclonedx_schema_bom_1_5_proto = out.File + file_cyclonedx_schema_bom_1_5_proto_rawDesc = nil + file_cyclonedx_schema_bom_1_5_proto_goTypes = nil + file_cyclonedx_schema_bom_1_5_proto_depIdxs = nil +} diff --git a/protos/Makefile b/protos/Makefile index 42e2122a..909c54e9 100644 --- a/protos/Makefile +++ b/protos/Makefile @@ -1,6 +1,15 @@ # Creates the go libs in the go/ directory. go: - protoc --go_out=../go --go_opt=module=github.com/in-toto/attestation/go $(shell find ./in_toto_attestation -name "*.proto") + # All other Predicates + protoc --go_out=../go \ + --go_opt=module=github.com/in-toto/attestation/go \ + $(shell find ./in_toto_attestation -name "*.proto") + # CycloneDX 1.5 + # https://protobuf.dev/reference/go/go-generated/#package + protoc --go_out=../go \ + --go_opt=Mcyclonedx/schema/bom-1.5.proto=predicates/cyclonedx/v1 \ + ./cyclonedx/schema/bom-1.5.proto + mv ../go/predicates/cyclonedx/v1/bom-1.5.pb.go ../go/predicates/cyclonedx/v1/bom.pb.go # Creates the python libs in the python/ directory. python: diff --git a/protos/cyclonedx b/protos/cyclonedx new file mode 160000 index 00000000..299209ab --- /dev/null +++ b/protos/cyclonedx @@ -0,0 +1 @@ +Subproject commit 299209abd9531d808e0cc4235e77a7c4b1b53d96 diff --git a/spec/predicates/cyclonedx.md b/spec/predicates/cyclonedx.md index 01447e43..9ed26c30 100644 --- a/spec/predicates/cyclonedx.md +++ b/spec/predicates/cyclonedx.md @@ -2,7 +2,7 @@ Type URI: https://cyclonedx.org/bom -Version: 1.4 +Version: 1.5 ## Purpose @@ -48,10 +48,10 @@ this CycloneDX BOM document. "subject": [{ ... }], // Predicate: - "predicateType": "https://cyclonedx.org/bom/v1.4", + "predicateType": "https://cyclonedx.org/docs/1.5/json/", "predicate": { "bomFormat": "CycloneDX", - "specVersion": "1.4", + "specVersion": "1.5", "serialNumber": "urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79", "version": 1, "components": [ @@ -73,5 +73,5 @@ Not applicable for this initial version. [Attestation]: ../README.md [CycloneDX standard]: https://cyclonedx.org/specification/overview [CycloneDX Capabilities]: https://cyclonedx.org/capabilities/ -[CycloneDX Specification]: https://github.com/CycloneDX/specification/tree/1.4/schema +[CycloneDX Specification]: https://github.com/CycloneDX/specification/tree/1.5/schema [CycloneDX BOM generation tool]: https://cyclonedx.org/tool-center