diff --git a/Rakefile b/Rakefile index 52a0ba9b..0be79a0c 100644 --- a/Rakefile +++ b/Rakefile @@ -98,6 +98,7 @@ BASH echo "Generating sbom proto" PATH=#{protoc_gen_go_dir}/bin #{protoc_binary_2} --proto_path=$GOPATH/src:. --go_out=$GOPATH/src proto/deps/github.com/CycloneDX/specification/schema/bom-1.4.proto + PATH=#{protoc_gen_go_dir}/bin #{protoc_binary_2} --proto_path=$GOPATH/src:. --go_out=$GOPATH/src proto/deps/github.com/CycloneDX/specification/schema/bom-1.5.proto PATH=#{protoc_gen_go_dir}/bin #{protoc_binary_2} --proto_path=$GOPATH/src:. --go_out=$GOPATH/src proto/sbom/sbom.proto # Install protoc-gen-go-vtproto diff --git a/cyclonedx_v1_5/bom-1.5.pb.go b/cyclonedx_v1_5/bom-1.5.pb.go new file mode 100644 index 00000000..e7138c38 --- /dev/null +++ b/cyclonedx_v1_5/bom-1.5.pb.go @@ -0,0 +1,12324 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.32.0 +// protoc v3.21.12 +// source: proto/deps/github.com/CycloneDX/specification/schema/bom-1.5.proto + +package cyclonedx_v1_5 + +import ( + timestamp "github.com/golang/protobuf/ptypes/timestamp" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[0].Descriptor() +} + +func (Classification) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[1].Descriptor() +} + +func (DataFlowDirection) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[2].Descriptor() +} + +func (ExternalReferenceType) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[3].Descriptor() +} + +func (HashAlg) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[4].Descriptor() +} + +func (IssueClassification) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[5].Descriptor() +} + +func (LicensingTypeEnum) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[6].Descriptor() +} + +func (LifecyclePhase) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[7].Descriptor() +} + +func (PatchClassification) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[8].Descriptor() +} + +func (Scope) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[9].Descriptor() +} + +func (Aggregate) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[10].Descriptor() +} + +func (EvidenceFieldType) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[11].Descriptor() +} + +func (EvidenceTechnique) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[12].Descriptor() +} + +func (Severity) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[13].Descriptor() +} + +func (ScoreMethod) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[14].Descriptor() +} + +func (ImpactAnalysisState) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[15].Descriptor() +} + +func (ImpactAnalysisJustification) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[16].Descriptor() +} + +func (VulnerabilityResponse) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[17].Descriptor() +} + +func (VulnerabilityAffectedStatus) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[18].Descriptor() +} + +func (ModelParameterApproachType) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[19].Descriptor() +} + +func (ComponentDataType) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[20].Descriptor() +} + +func (TaskType) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[21].Descriptor() +} + +func (Workspace_AccessMode) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[22].Descriptor() +} + +func (Volume_VolumeMode) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[23].Descriptor() +} + +func (Trigger_TriggerType) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes[24].Descriptor() +} + +func (OutputType_OutputTypeType) Type() protoreflect.EnumType { + return &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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 *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_rawDescGZIP(), []int{9} +} + +func (x *IdentifiableAction) GetTimestamp() *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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 *timestamp.Timestamp `protobuf:"bytes,7,opt,name=lastRenewal,proto3,oneof" json:"lastRenewal,omitempty"` + // The timestamp indicating when the current license expires (if applicable). + Expiration *timestamp.Timestamp `protobuf:"bytes,8,opt,name=expiration,proto3,oneof" json:"expiration,omitempty"` +} + +func (x *Licensing) Reset() { + *x = Licensing{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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() *timestamp.Timestamp { + if x != nil { + return x.LastRenewal + } + return nil +} + +func (x *Licensing) GetExpiration() *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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 *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_rawDescGZIP(), []int{16} +} + +func (x *Metadata) GetTimestamp() *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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 proto/deps/github.com/CycloneDX/specification/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 proto/deps/github.com/CycloneDX/specification/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 proto/deps/github.com/CycloneDX/specification/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 proto/deps/github.com/CycloneDX/specification/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 proto/deps/github.com/CycloneDX/specification/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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_rawDescGZIP(), []int{24} +} + +// Deprecated: Marked as deprecated in proto/deps/github.com/CycloneDX/specification/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 proto/deps/github.com/CycloneDX/specification/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 proto/deps/github.com/CycloneDX/specification/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 proto/deps/github.com/CycloneDX/specification/schema/bom-1.5.proto. +func (x *Tool) GetHashes() []*Hash { + if x != nil { + return x.Hashes + } + return nil +} + +// Deprecated: Marked as deprecated in proto/deps/github.com/CycloneDX/specification/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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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 *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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() *timestamp.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 *timestamp.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 *timestamp.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 *timestamp.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 *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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() *timestamp.Timestamp { + if x != nil { + return x.Created + } + return nil +} + +func (x *Vulnerability) GetPublished() *timestamp.Timestamp { + if x != nil { + return x.Published + } + return nil +} + +func (x *Vulnerability) GetUpdated() *timestamp.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() *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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 *timestamp.Timestamp `protobuf:"bytes,5,opt,name=firstIssued,proto3,oneof" json:"firstIssued,omitempty"` + // The date and time (timestamp) when the analysis was last updated. + LastUpdated *timestamp.Timestamp `protobuf:"bytes,6,opt,name=lastUpdated,proto3,oneof" json:"lastUpdated,omitempty"` +} + +func (x *VulnerabilityAnalysis) Reset() { + *x = VulnerabilityAnalysis{} + if protoimpl.UnsafeEnabled { + mi := &file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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() *timestamp.Timestamp { + if x != nil { + return x.FirstIssued + } + return nil +} + +func (x *VulnerabilityAnalysis) GetLastUpdated() *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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 *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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() *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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 *timestamp.Timestamp `protobuf:"bytes,14,opt,name=timeStart,proto3,oneof" json:"timeStart,omitempty"` + // The date and time (timestamp) when the task ended. + TimeEnd *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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() *timestamp.Timestamp { + if x != nil { + return x.TimeStart + } + return nil +} + +func (x *Workflow) GetTimeEnd() *timestamp.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 *timestamp.Timestamp `protobuf:"bytes,14,opt,name=timeStart,proto3,oneof" json:"timeStart,omitempty"` + // The date and time (timestamp) when the task ended. + TimeEnd *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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() *timestamp.Timestamp { + if x != nil { + return x.TimeStart + } + return nil +} + +func (x *Task) GetTimeEnd() *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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 *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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() *timestamp.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 *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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() *timestamp.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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto protoreflect.FileDescriptor + +var file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_rawDesc = []byte{ + 0x0a, 0x42, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x64, 0x65, 0x70, 0x73, 0x2f, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x44, + 0x58, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x44, 0x61, 0x74, 0x61, 0x44, 0x6f, 0x67, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2d, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2f, 0x76, 0x35, 0x2f, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, + 0x64, 0x78, 0x5f, 0x76, 0x31, 0x5f, 0x35, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_rawDescOnce sync.Once + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_rawDescData = file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_rawDesc +) + +func file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_rawDescGZIP() []byte { + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_rawDescOnce.Do(func() { + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_rawDescData = protoimpl.X.CompressGZIP(file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_rawDescData) + }) + return file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_rawDescData +} + +var file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes = make([]protoimpl.EnumInfo, 25) +var file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes = make([]protoimpl.MessageInfo, 79) +var file_proto_deps_github_com_CycloneDX_specification_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 + (*timestamp.Timestamp)(nil), // 104: google.protobuf.Timestamp +} +var file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_init() } +func file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_init() { + if File_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[1].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[2].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[3].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[6].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[7].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[10].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[11].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[12].OneofWrappers = []interface{}{ + (*LicenseChoice_License)(nil), + (*LicenseChoice_Expression)(nil), + } + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[13].OneofWrappers = []interface{}{ + (*License_Id)(nil), + (*License_Name)(nil), + } + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[15].OneofWrappers = []interface{}{ + (*OrganizationalEntityOrContact_Organization)(nil), + (*OrganizationalEntityOrContact_Individual)(nil), + } + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[17].OneofWrappers = []interface{}{ + (*Lifecycles_Phase)(nil), + (*Lifecycles_Name)(nil), + } + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[18].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[19].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[20].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[21].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[22].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[23].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[24].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[25].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[26].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[28].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[30].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[31].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[32].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[33].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[34].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[35].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[36].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[38].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[39].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[41].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[43].OneofWrappers = []interface{}{ + (*VulnerabilityAffectedVersions_Version)(nil), + (*VulnerabilityAffectedVersions_Range)(nil), + } + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[44].OneofWrappers = []interface{}{ + (*AnnotatorChoice_Organization)(nil), + (*AnnotatorChoice_Individual)(nil), + (*AnnotatorChoice_Component)(nil), + (*AnnotatorChoice_Service)(nil), + } + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[45].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[46].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[47].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[49].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[50].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[51].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[52].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[53].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[54].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[55].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[56].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[57].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[58].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[59].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[60].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[61].OneofWrappers = []interface{}{ + (*ResourceReferenceChoice_Ref)(nil), + (*ResourceReferenceChoice_ExternalReference)(nil), + } + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[62].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[63].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[64].OneofWrappers = []interface{}{ + (*EnvironmentVars_Property)(nil), + (*EnvironmentVars_Value)(nil), + } + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[65].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[66].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[67].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[69].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[70].OneofWrappers = []interface{}{ + (*ModelCard_ModelParameters_Datasets_Dataset)(nil), + (*ModelCard_ModelParameters_Datasets_Ref)(nil), + } + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[71].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[72].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[73].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[74].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[75].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[76].OneofWrappers = []interface{}{} + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes[77].OneofWrappers = []interface{}{ + (*DataGovernance_DataGovernanceResponsibleParty_Organization)(nil), + (*DataGovernance_DataGovernanceResponsibleParty_Contact)(nil), + } + file_proto_deps_github_com_CycloneDX_specification_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_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_rawDesc, + NumEnums: 25, + NumMessages: 79, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_goTypes, + DependencyIndexes: file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_depIdxs, + EnumInfos: file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_enumTypes, + MessageInfos: file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_msgTypes, + }.Build() + File_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto = out.File + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_rawDesc = nil + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_goTypes = nil + file_proto_deps_github_com_CycloneDX_specification_schema_bom_1_5_proto_depIdxs = nil +} diff --git a/proto/deps/github.com/CycloneDX/specification/schema/bom-1.5.proto b/proto/deps/github.com/CycloneDX/specification/schema/bom-1.5.proto new file mode 100644 index 00000000..79f303bf --- /dev/null +++ b/proto/deps/github.com/CycloneDX/specification/schema/bom-1.5.proto @@ -0,0 +1,1489 @@ +syntax = "proto3"; +option go_package = "github.com/DataDog/agent-payload/v5/cyclonedx_v1_5"; +package cyclonedx.v1_5; +import "google/protobuf/timestamp.proto"; + +// Specifies attributes of the text +message AttachedText { + // Specifies the content type of the text. Defaults to 'text/plain' if not specified. + optional string content_type = 1; + // Specifies the optional encoding the text is represented in + optional string encoding = 2; + // SimpleContent value of element. Proactive controls such as input validation and sanitization should be employed to prevent misuse of attachment text. + string value = 3; +} + +message Bom { + // The version of the CycloneDX specification a BOM is written to (starting at version 1.3) + string spec_version = 1; + // 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'. + optional int32 version = 2; + // 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. + optional string serial_number = 3; + // Provides additional information about a BOM. + optional Metadata metadata = 4; + // Provides the ability to document a list of components. + repeated Component components = 5; + // Provides the ability to document a list of external services. + repeated Service services = 6; + // Provides the ability to document external references related to the BOM or to the project the BOM describes. + repeated ExternalReference external_references = 7; + // Provides the ability to document dependency relationships. + repeated Dependency dependencies = 8; + // 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. + repeated Composition compositions = 9; + // Vulnerabilities identified in components or services. + repeated Vulnerability vulnerabilities = 10; + // 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. + repeated Annotation annotations = 11; + // Specifies optional, custom, properties + repeated Property properties = 12; + // 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. + repeated Formula formulation = 13; +} + +enum Classification { + CLASSIFICATION_NULL = 0; + // A software application. Refer to https://en.wikipedia.org/wiki/Application_software for information about applications. + CLASSIFICATION_APPLICATION = 1; + // A software framework. Refer to https://en.wikipedia.org/wiki/Software_framework for information on how frameworks vary slightly from libraries. + CLASSIFICATION_FRAMEWORK = 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_LIBRARY = 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_OPERATING_SYSTEM = 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_DEVICE = 5; + // A computer file. Refer to https://en.wikipedia.org/wiki/Computer_file for information about files. + CLASSIFICATION_FILE = 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_CONTAINER = 7; + // A special type of software that provides low-level control over a devices hardware. Refer to https://en.wikipedia.org/wiki/Firmware + CLASSIFICATION_FIRMWARE = 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_DEVICE_DRIVER = 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_PLATFORM = 10; + // A model based on training data that can make predictions or decisions without being explicitly programmed to do so. + CLASSIFICATION_MACHINE_LEARNING_MODEL = 11; + // A collection of discrete values that convey information. + CLASSIFICATION_DATA = 12; +} + +message Commit { + // A unique identifier of the commit. This may be version control specific. For example, Subversion uses revision numbers whereas git uses commit hashes. + optional string uid = 1; + // The URL to the commit. This URL will typically point to a commit in a version control system. + optional string url = 2; + // The author who created the changes in the commit + optional IdentifiableAction author = 3; + // The person who committed or pushed the commit + optional IdentifiableAction committer = 4; + // The text description of the contents of the commit + optional string message = 5; +} + +message Component { + // 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. + Classification type = 1; + // 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. + optional string mime_type = 2; + // 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. + optional string bom_ref = 3; + // The organization that supplied the component. The supplier may often be the manufacture, but may also be a distributor or repackager. + optional OrganizationalEntity supplier = 4; + // The person(s) or organization(s) that authored the component + optional string author = 5; + // The person(s) or organization(s) that published the component + optional string publisher = 6; + // 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. + optional string group = 7; + // The name of the component. This will often be a shortened, single name of the component. Examples: commons-lang3 and jquery + string name = 8; + // 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. + string version = 9; + // Specifies a description for the component + optional string description = 10; + // Specifies the scope of the component. If scope is not specified, SCOPE_REQUIRED scope should be assumed by the consumer of the BOM + optional Scope scope = 11; + repeated Hash hashes = 12; + repeated LicenseChoice licenses = 13; + // An optional copyright notice informing users of the underlying claims to copyright ownership in a published work. + optional string copyright = 14; + // 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 + optional string cpe = 15; + // 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 + optional string purl = 16; + // Specifies metadata and content for ISO-IEC 19770-2 Software Identification (SWID) Tags. + optional Swid swid = 17; + // 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. + optional bool modified = 18; + // Component pedigree is a way to document complex supply chain scenarios where components are created, distributed, modified, redistributed, combined with other components, etc. + optional Pedigree pedigree = 19; + // Provides the ability to document external references related to the component or to the project the component describes. + repeated ExternalReference external_references = 20; + // 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. + repeated Component components = 21; + // Specifies optional, custom, properties + repeated Property properties = 22; + // Specifies optional license and copyright evidence + repeated Evidence evidence = 23; + // Specifies optional release notes. + optional ReleaseNotes releaseNotes = 24; + // 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. + optional ModelCard modelCard = 25; + // This object SHOULD be specified for any component of type `data` and MUST NOT be specified for other component types. + optional ComponentData data = 26; +} + +// Specifies the data flow. +message DataFlow { + // Specifies the flow direction of the data. + DataFlowDirection flow = 1; + // Data classification tags data according to its type, sensitivity, and value if altered, stolen, or destroyed. + string value = 2; + // Name for the defined data + optional string name = 3; + // Short description of the data content and usage + optional string description = 4; + // The URI, URL, or BOM-Link of the components or services the data came in from + repeated string source = 5; + // The URI, URL, or BOM-Link of the components or services the data is sent to + repeated string destination = 6; + // Data Governance + optional DataGovernance governance = 7; +} + +// 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. +enum DataFlowDirection { + DATA_FLOW_NULL = 0; + DATA_FLOW_INBOUND = 1; + DATA_FLOW_OUTBOUND = 2; + DATA_FLOW_BI_DIRECTIONAL = 3; + DATA_FLOW_UNKNOWN = 4; +} + +message Dependency { + // References a component or service by the its bom-ref attribute + string ref = 1; + repeated Dependency dependencies = 2; +} + +message Diff { + // Specifies the optional text of the diff + optional AttachedText text = 1; + // Specifies the URL to the diff + optional string url = 2; +} + +message ExternalReference { + // 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. + ExternalReferenceType type = 1; + // The URL to the external reference + string url = 2; + // An optional comment describing the external reference + optional string comment = 3; + // Optional integrity hashes for the external resource content + repeated Hash hashes = 4; +} + +enum ExternalReferenceType { + // Use this if no other types accurately describe the purpose of the external reference + EXTERNAL_REFERENCE_TYPE_OTHER = 0; + // Version Control System + EXTERNAL_REFERENCE_TYPE_VCS = 1; + // Issue or defect tracking system, or an Application Lifecycle Management (ALM) system + EXTERNAL_REFERENCE_TYPE_ISSUE_TRACKER = 2; + // Website + EXTERNAL_REFERENCE_TYPE_WEBSITE = 3; + // Security advisories + EXTERNAL_REFERENCE_TYPE_ADVISORIES = 4; + // Bill-of-material document (CycloneDX, SPDX, SWID, etc) + EXTERNAL_REFERENCE_TYPE_BOM = 5; + // Mailing list or discussion group + EXTERNAL_REFERENCE_TYPE_MAILING_LIST = 6; + // Social media account + EXTERNAL_REFERENCE_TYPE_SOCIAL = 7; + // Real-time chat platform + EXTERNAL_REFERENCE_TYPE_CHAT = 8; + // Documentation, guides, or how-to instructions + EXTERNAL_REFERENCE_TYPE_DOCUMENTATION = 9; + // Community or commercial support + EXTERNAL_REFERENCE_TYPE_SUPPORT = 10; + // Direct or repository download location + EXTERNAL_REFERENCE_TYPE_DISTRIBUTION = 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 + EXTERNAL_REFERENCE_TYPE_LICENSE = 12; + // Build-system specific meta file (i.e. pom.xml, package.json, .nuspec, etc) + EXTERNAL_REFERENCE_TYPE_BUILD_META = 13; + // URL to an automated build system + EXTERNAL_REFERENCE_TYPE_BUILD_SYSTEM = 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. + EXTERNAL_REFERENCE_TYPE_SECURITY_CONTACT = 15; + // Human or machine-readable statements containing facts, evidence, or testimony + EXTERNAL_REFERENCE_TYPE_ATTESTATION = 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 + EXTERNAL_REFERENCE_TYPE_THREAT_MODEL = 17; + // The defined assumptions, goals, and capabilities of an adversary. + EXTERNAL_REFERENCE_TYPE_ADVERSARY_MODEL = 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. + EXTERNAL_REFERENCE_TYPE_RISK_ASSESSMENT = 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 + EXTERNAL_REFERENCE_TYPE_DISTRIBUTION_INTAKE = 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 + EXTERNAL_REFERENCE_TYPE_VULNERABILITY_ASSERTION = 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 + EXTERNAL_REFERENCE_TYPE_EXPLOITABILITY_STATEMENT = 22; + // Results from an authorized simulated cyberattack on a component or service, otherwise known as a penetration test + EXTERNAL_REFERENCE_TYPE_PENTEST_REPORT = 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 + EXTERNAL_REFERENCE_TYPE_STATIC_ANALYSIS_REPORT = 24; + // Dynamic analysis report that has identified issues such as vulnerabilities and misconfigurations + EXTERNAL_REFERENCE_TYPE_DYNAMIC_ANALYSIS_REPORT = 25; + // Report generated by analyzing the call stack of a running application + EXTERNAL_REFERENCE_TYPE_RUNTIME_ANALYSIS_REPORT = 26; + // Report generated by Software Composition Analysis (SCA), container analysis, or other forms of component analysis + EXTERNAL_REFERENCE_TYPE_COMPONENT_ANALYSIS_REPORT = 27; + // Report containing a formal assessment of an organization, business unit, or team against a maturity model + EXTERNAL_REFERENCE_TYPE_MATURITY_REPORT = 28; + // Industry, regulatory, or other certification from an accredited (if applicable) certification body + EXTERNAL_REFERENCE_TYPE_CERTIFICATION_REPORT = 29; + // Report or system in which quality metrics can be obtained + EXTERNAL_REFERENCE_TYPE_QUALITY_METRICS = 30; + // Code or configuration that defines and provisions virtualized infrastructure, commonly referred to as Infrastructure as Code (IaC) + EXTERNAL_REFERENCE_TYPE_CODIFIED_INFRASTRUCTURE = 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. + EXTERNAL_REFERENCE_TYPE_MODEL_CARD = 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". + EXTERNAL_REFERENCE_TYPE_POAM = 33; + // A record of events that occurred in a computer system or application, such as problems, errors, or information on current operations. + EXTERNAL_REFERENCE_TYPE_LOG = 34; + // Parameters or settings that may be used by other components or services. + EXTERNAL_REFERENCE_TYPE_CONFIGURATION = 35; + // Information used to substantiate a claim. + EXTERNAL_REFERENCE_TYPE_EVIDENCE = 36; + // Describes how a component or service was manufactured or deployed. + EXTERNAL_REFERENCE_TYPE_FORMULATION = 37; +} + +enum HashAlg { + 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; +} + +// Specifies the file hash of the component +message Hash { + // Specifies the algorithm used to create the hash + HashAlg alg = 1; + // SimpleContent value of element + string value = 2; +} + +message IdentifiableAction { + // The timestamp in which the action occurred + optional google.protobuf.Timestamp timestamp = 1; + // The name of the individual who performed the action + optional string name = 2; + // The email address of the individual who performed the action + optional string email = 3; +} + +enum IssueClassification { + ISSUE_CLASSIFICATION_NULL = 0; + // A fault, flaw, or bug in software + ISSUE_CLASSIFICATION_DEFECT = 1; + // A new feature or behavior in software + ISSUE_CLASSIFICATION_ENHANCEMENT = 2; + // A special type of defect which impacts security + ISSUE_CLASSIFICATION_SECURITY = 3; +} + +message Issue { + // Specifies the type of issue + IssueClassification type = 1; + // The identifier of the issue assigned by the source of the issue + optional string id = 2; + // The name of the issue + optional string name = 3; + // A description of the issue + optional string description = 4; + optional Source source = 5; + repeated string references = 6; +} + +// The source of the issue where it is documented. +message Source { + // The name of the source. For example "National Vulnerability Database", "NVD", and "Apache" + optional string name = 1; + // The url of the issue documentation as provided by the source + optional string url = 2; +} + +message LicenseChoice { + oneof choice { + License license = 1; + string expression = 2; + } +} + +message License { + oneof license { + // A valid SPDX license ID + string id = 1; + // If SPDX does not define the license used, this field may be used to provide the license name + string name = 2; + } + // Specifies the optional full text of the attachment + optional AttachedText text = 3; + // The URL to the attachment file. If the attachment is a license or BOM, an externalReference should also be specified for completeness. + optional string url = 4; + // 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. + optional string bom_ref = 5; + // Licensing details describing the licensor/licensee, license type, renewal and expiration dates, and other important metadata + optional Licensing licensing = 6; + // Specifies optional, custom, properties + repeated Property properties = 7; +} + +message Licensing { + // License identifiers that may be used to manage licenses and their lifecycle + repeated string altIds = 1; + // The individual or organization that grants a license to another individual or organization + optional OrganizationalEntityOrContact licensor = 2; + // The individual or organization for which a license was granted to + optional OrganizationalEntityOrContact licensee = 3; + // The individual or organization that purchased the license + optional OrganizationalEntityOrContact purchaser = 4; + // The purchase order identifier the purchaser sent to a supplier or vendor to authorize a purchase + optional string purchaseOrder = 5; + // The type of license(s) that was granted to the licensee + repeated LicensingTypeEnum licenseTypes = 6; + // 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. + optional google.protobuf.Timestamp lastRenewal = 7; + // The timestamp indicating when the current license expires (if applicable). + optional google.protobuf.Timestamp expiration = 8; +} + +message OrganizationalEntityOrContact { + oneof choice { + OrganizationalEntity organization = 1; + OrganizationalContact individual = 2; + } +} + +enum LicensingTypeEnum { + LICENSING_TYPE_NULL = 0; + // A license that grants use of software solely for the purpose of education or research. + LICENSING_TYPE_ACADEMIC = 1; + // A license covering use of software embedded in a specific piece of hardware. + LICENSING_TYPE_APPLIANCE = 2; + // A Client Access License (CAL) allows client computers to access services provided by server software. + LICENSING_TYPE_CLIENT_ACCESS = 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. + LICENSING_TYPE_CONCURRENT_USER = 4; + // A license where the core of a computer's processor is assigned a specific number of points. + LICENSING_TYPE_CORE_POINTS = 5; + // A license for which consumption is measured by non-standard metrics. + LICENSING_TYPE_CUSTOM_METRIC = 6; + // A license that covers a defined number of installations on computers and other types of devices. + LICENSING_TYPE_DEVICE = 7; + // A license that grants permission to install and use software for trial purposes. + LICENSING_TYPE_EVALUATION = 8; + // A license that grants access to the software to one or more pre-defined users. + LICENSING_TYPE_NAMED_USER = 9; + // A license that grants access to the software on one or more pre-defined computers or devices. + LICENSING_TYPE_NODE_LOCKED = 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. + LICENSING_TYPE_OEM = 11; + // A license where the software is sold on a one-time basis and the licensee can use a copy of the software indefinitely. + LICENSING_TYPE_PERPETUAL = 12; + // A license where each installation consumes points per processor. + LICENSING_TYPE_PROCESSOR_POINTS = 13; + // A license where the licensee pays a fee to use the software or service. + LICENSING_TYPE_SUBSCRIPTION = 14; + // A license that grants access to the software or service by a specified number of users. + LICENSING_TYPE_USER = 15; + // Another license type. + LICENSING_TYPE_OTHER = 16; +} + +message Metadata { + // The date and time (timestamp) when the document was created. + optional google.protobuf.Timestamp timestamp = 1; + // The tool(s) used in the creation of the BOM. + optional Tool tools = 2; + // 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. + repeated OrganizationalContact authors = 3; + // The component that the BOM describes. + optional Component component = 4; + // The organization that manufactured the component that the BOM describes. + optional OrganizationalEntity manufacture = 5; + // 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. + optional OrganizationalEntity supplier = 6; + // The license information for the BOM document + optional LicenseChoice licenses = 7; + // Specifies optional, custom, properties + repeated Property properties = 8; + // The product lifecycle(s) that this BOM represents. + repeated Lifecycles lifecycles = 9; +} + +message Lifecycles { + oneof choice { + // A pre-defined phase in the product lifecycle. + LifecyclePhase phase = 1; + // The name of the lifecycle phase + string name = 2; + } + // The description of the lifecycle phase + optional string description = 3; +} + +enum LifecyclePhase { + // 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. + LIFECYCLE_PHASE_DESIGN = 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. + LIFECYCLE_PHASE_PRE_BUILD = 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. + LIFECYCLE_PHASE_BUILD = 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. + LIFECYCLE_PHASE_POST_BUILD = 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. + LIFECYCLE_PHASE_OPERATIONS = 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. + LIFECYCLE_PHASE_DISCOVERY = 5; + // BOM containing inventory that will be, or has been retired from operations. + LIFECYCLE_PHASE_DECOMMISSION = 6; +} + +message OrganizationalContact { + // The name of the contact + optional string name = 1; + // The email address of the contact. + optional string email = 2; + // The phone number of the contact. + optional string phone = 3; + // 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. + optional string bom_ref = 4; +} + +message OrganizationalEntity { + // The name of the organization + optional string name = 1; + // The URL of the organization. Multiple URLs are allowed. + repeated string url = 2; + // A contact person at the organization. Multiple contacts are allowed. + repeated OrganizationalContact contact = 3; + // 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. + optional string bom_ref = 4; +} + +enum PatchClassification { + PATCH_CLASSIFICATION_NULL = 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 + PATCH_CLASSIFICATION_UNOFFICIAL = 1; + // A patch which dynamically modifies runtime behavior. Refer to https://en.wikipedia.org/wiki/Monkey_patch + PATCH_CLASSIFICATION_MONKEY = 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 + PATCH_CLASSIFICATION_BACKPORT = 3; + // A patch created by selectively applying commits from other versions or branches of the same software. + PATCH_CLASSIFICATION_CHERRY_PICK = 4; +} + +message Patch { + // Specifies the purpose for the patch including the resolution of defects, security issues, or new behavior or functionality + PatchClassification type = 1; + // The patch file (or diff) that show changes. Refer to https://en.wikipedia.org/wiki/Diff + optional Diff diff = 2; + repeated Issue resolves = 3; +} + +// 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. +message Pedigree { + // 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. + repeated Component ancestors = 1; + // Descendants are the exact opposite of ancestors. This provides a way to document all forks (and their forks) of an original or root component. + repeated Component descendants = 2; + // 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. + repeated Component variants = 3; + // A list of zero or more commits which provide a trail describing how the component deviates from an ancestor, descendant, or variant. + repeated Commit commits = 4; + // 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. + repeated Patch patches = 5; + // Notes, observations, and other non-structured commentary describing the components pedigree. + optional string notes = 6; +} + +enum Scope { + // Default + SCOPE_UNSPECIFIED = 0; + // The component is required for runtime + SCOPE_REQUIRED = 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_OPTIONAL = 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_EXCLUDED = 3; +} + +message Service { + // 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. + optional string bom_ref = 1; + // The organization that provides the service. + optional OrganizationalEntity provider = 2; + // 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. + optional string group = 3; + // The name of the service. This will often be a shortened, single name of the service. + string name = 4; + // The service version. + optional string version = 5; + // Specifies a description for the service. + optional string description = 6; + repeated string endpoints = 7; + // 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. + optional bool authenticated = 8; + // 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. + optional bool x_trust_boundary = 9; + repeated DataFlow data = 10; + repeated LicenseChoice licenses = 11; + // Provides the ability to document external references related to the service. + repeated ExternalReference external_references = 12; + // 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. + repeated Service services = 13; + // Specifies optional, custom, properties + repeated Property properties = 14; + // Specifies optional release notes. + optional ReleaseNotes releaseNotes = 15; + // The name of the trust zone the service resides in. + optional string trustZone = 16; +} + +message Swid { + // Maps to the tagId of a SoftwareIdentity. + string tag_id = 1; + // Maps to the name of a SoftwareIdentity. + string name = 2; + // Maps to the version of a SoftwareIdentity. Defaults to '0.0' if not specified. + optional string version = 3; + // Maps to the tagVersion of a SoftwareIdentity. Defaults to '0' if not specified. + optional int32 tag_version = 4; + // Maps to the patch of a SoftwareIdentity. Defaults to 'false' if not specified. + optional bool patch = 5; + // Specifies the full content of the SWID tag. + optional AttachedText text = 6; + // The URL to the SWID file. + optional string url = 7; +} + +// Specifies a tool (manual or automated). +message Tool { + // DEPRECATED - DO NOT USE - The vendor of the tool used to create the BOM. + optional string vendor = 1 [deprecated = true]; + // DEPRECATED - DO NOT USE - The name of the tool used to create the BOM. + optional string name = 2 [deprecated = true]; + // DEPRECATED - DO NOT USE - The version of the tool used to create the BOM. + optional string version = 3 [deprecated = true]; + // DEPRECATED - DO NOT USE + repeated Hash hashes = 4 [deprecated = true]; + // DEPRECATED - DO NOT USE - Provides the ability to document external references related to the tool. + repeated ExternalReference external_references = 5 [deprecated = true]; + // A list of software and hardware components used as tools + repeated Component components = 6; + // A list of services used as tools. This may include microservices, function-as-a-service, and other types of network or intra-process services. + repeated Service services = 7; +} + +// Specifies a property +message Property { + string name = 1; + optional string value = 2; +} + +enum Aggregate { + // The relationship completeness is not specified. + AGGREGATE_NOT_SPECIFIED = 0; + // The relationship is complete. No further relationships including constituent components, services, or dependencies are known to exist. + AGGREGATE_COMPLETE = 1; + // The relationship is incomplete. Additional relationships exist and may include constituent components, services, or dependencies. + AGGREGATE_INCOMPLETE = 2; + // The relationship is incomplete. Only relationships for first-party components, services, or their dependencies are represented. + AGGREGATE_INCOMPLETE_FIRST_PARTY_ONLY = 3; + // The relationship is incomplete. Only relationships for third-party components, services, or their dependencies are represented. + AGGREGATE_INCOMPLETE_THIRD_PARTY_ONLY = 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_UNKNOWN = 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_INCOMPLETE_FIRST_PARTY_PROPRIETARY_ONLY = 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_INCOMPLETE_FIRST_PARTY_OPENSOURCE_ONLY = 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_INCOMPLETE_THIRD_PARTY_PROPRIETARY_ONLY = 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_INCOMPLETE_THIRD_PARTY_OPENSOURCE_ONLY = 9; +} + +message Composition { + // Indicates the aggregate completeness + Aggregate aggregate = 1; + // The assemblies the aggregate completeness applies to + repeated string assemblies = 2; + // The dependencies the aggregate completeness applies to + repeated string dependencies = 3; + // The bom-ref identifiers of the vulnerabilities being described. + repeated string vulnerabilities = 4; + // An optional identifier which can be used to reference the composition elsewhere in the BOM. Every bom-ref MUST be unique within the BOM. + optional string bom_ref = 5; +} + +message EvidenceCopyright { + // Copyright text + string text = 1; +} + +message Evidence { + repeated LicenseChoice licenses = 1; + repeated EvidenceCopyright copyright = 2; + repeated EvidenceIdentity identity = 3; + repeated EvidenceOccurrences occurrences = 4; + optional Callstack callstack = 5; +} + +// Evidence of the components use through the callstack. +message Callstack { + repeated Frames frames = 1; + + message Frames { + // A package organizes modules into namespaces, providing a unique namespace for each type it contains. + optional string package = 1; + // A module or class that encloses functions/methods and other code. + string module = 2; + // A block of code designed to perform a particular task. + optional string function = 3; + // Optional arguments that are passed to the module or function. + repeated string parameters = 4; + // The line number the code that is called resides on. + optional int32 line = 5; + // The column the code that is called resides. + optional int32 column = 6; + // The full path and filename of the module. + optional string fullFilename = 7; + } +} + +message EvidenceIdentity { + // The identity field of the component which the evidence describes. + EvidenceFieldType field = 1; + // The overall confidence of the evidence from 0 - 1, where 1 is 100% confidence. + optional float confidence = 2; + // The methods used to extract and/or analyze the evidence. + repeated EvidenceMethods methods = 3; + // 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. + repeated string tools = 4; +} + +message EvidenceMethods { + // The technique used in this method of analysis. + EvidenceTechnique technique = 1; + // 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. + float confidence = 2; + // The value or contents of the evidence. + optional string value = 3; +} + +message EvidenceOccurrences { + // An optional identifier which can be used to reference the occurrence elsewhere in the BOM. Every bom-ref MUST be unique within the BOM. + optional string bom_ref = 1; + // The location or path to where the component was found. + string location = 2; +} + +enum EvidenceFieldType { + 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; +} + +enum EvidenceTechnique { + 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; +} + +message Note { + // The ISO-639 (or higher) language code and optional ISO-3166 (or higher) country code. Examples include: "en", "en-US", "fr" and "fr-CA". + optional string locale = 1; + // Specifies the full content of the release note. + optional AttachedText text = 2; +} + +message ReleaseNotes { + // 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. + string type = 1; + // The title of the release. + optional string title = 2; + // The URL to an image that may be prominently displayed with the release note. + optional string featuredImage = 3; + // The URL to an image that may be used in messaging on social media platforms. + optional string socialImage = 4; + // A short description of the release. + optional string description = 5; + // The date and time (timestamp) when the release note was created. + optional google.protobuf.Timestamp timestamp = 6; + // Optional alternate names the release may be referred to. This may include unofficial terms used by development and marketing teams (e.g. code names). + repeated string aliases = 7; + // Optional tags that may aid in search or retrieval of the release note. + repeated string tags = 8; + // A collection of issues that have been resolved. + repeated Issue resolves = 9; + // 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. + repeated Note notes = 10; + // Specifies optional, custom, properties + repeated Property properties = 11; +} + +message Vulnerability { + // 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. + optional string bom_ref = 1; + // The identifier that uniquely identifies the vulnerability. + optional string id = 2; + // The source that published the vulnerability. + optional Source source = 3; + // 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. + repeated VulnerabilityReference references = 4; + // List of vulnerability ratings + repeated VulnerabilityRating ratings = 5; + // List of Common Weaknesses Enumerations (CWEs) codes that describes this vulnerability. For example 399 (of https://cwe.mitre.org/data/definitions/399.html) + repeated int32 cwes = 6; + // A description of the vulnerability as provided by the source. + optional string description = 7; + // If available, an in-depth description of the vulnerability as provided by the source organization. Details often include information useful in understanding root cause. + optional string detail = 8; + // Recommendations of how the vulnerability can be remediated or mitigated. + optional string recommendation = 9; + // Published advisories of the vulnerability if provided. + repeated Advisory advisories = 10; + // The date and time (timestamp) when the vulnerability record was created in the vulnerability database. + optional google.protobuf.Timestamp created = 11; + // The date and time (timestamp) when the vulnerability record was first published. + optional google.protobuf.Timestamp published = 12; + // The date and time (timestamp) when the vulnerability record was last updated. + optional google.protobuf.Timestamp updated = 13; + // Individuals or organizations credited with the discovery of the vulnerability. + optional VulnerabilityCredits credits = 14; + // The tool(s) used to identify, confirm, or score the vulnerability. + optional Tool tools = 15; + // An assessment of the impact and exploitability of the vulnerability. + optional VulnerabilityAnalysis analysis = 16; + // affects + repeated VulnerabilityAffects affects = 17; + // Specifies optional, custom, properties + repeated Property properties = 18; + // The date and time (timestamp) when the vulnerability record was rejected (if applicable). + optional google.protobuf.Timestamp rejected = 19; + // Evidence used to reproduce the vulnerability. + optional ProofOfConcept proofOfConcept = 20; + // A bypass, usually temporary, of the vulnerability that reduces its likelihood and/or impact. Workarounds often involve changes to configuration or deployments. + optional string workaround = 21; +} + +message ProofOfConcept { + // Precise steps to reproduce the vulnerability. + optional string reproductionSteps = 1; + // A description of the environment in which reproduction was possible. + optional string environment = 2; + // Supporting material that helps in reproducing or understanding how reproduction is possible. This may include screenshots, payloads, and PoC exploit code. + repeated AttachedText supportingMaterial = 3; +} + +message VulnerabilityReference { + // An identifier that uniquely identifies the vulnerability. + string id = 1; + // The source that published the vulnerability. + Source source = 2; +} + +message VulnerabilityRating { + // The source that calculated the severity or risk rating of the vulnerability. + optional Source source = 1; + // The numerical score of the rating. + optional double score = 2; + // Textual representation of the severity that corresponds to the numerical score of the rating. + optional Severity severity = 3; + // Specifies the severity or risk scoring methodology or standard used. + optional ScoreMethod method = 4; + // Textual representation of the metric values used to score the vulnerability. + optional string vector = 5; + // An optional reason for rating the vulnerability as it was. + optional string justification = 6; +} + +enum Severity { + SEVERITY_UNKNOWN = 0; + SEVERITY_CRITICAL = 1; + SEVERITY_HIGH = 2; + SEVERITY_MEDIUM = 3; + SEVERITY_LOW = 4; + SEVERITY_INFO = 5; + SEVERITY_NONE = 6; +} + +enum ScoreMethod { + // An undefined score method + SCORE_METHOD_NULL = 0; + // Common Vulnerability Scoring System v2 - https://www.first.org/cvss/v2/ + SCORE_METHOD_CVSSV2 = 1; + // Common Vulnerability Scoring System v3 - https://www.first.org/cvss/v3-0/ + SCORE_METHOD_CVSSV3 = 2; + // Common Vulnerability Scoring System v3.1 - https://www.first.org/cvss/v3-1/ + SCORE_METHOD_CVSSV31 = 3; + // OWASP Risk Rating Methodology - https://owasp.org/www-community/OWASP_Risk_Rating_Methodology + SCORE_METHOD_OWASP = 4; + // Other scoring method + SCORE_METHOD_OTHER = 5; + // Common Vulnerability Scoring System v3.1 - https://www.first.org/cvss/v4-0/ + SCORE_METHOD_CVSSV4 = 6; + // Stakeholder Specific Vulnerability Categorization (all versions) - https://github.com/CERTCC/SSVC + SCORE_METHOD_SSVC = 7; +} + +message Advisory { + // An optional name of the advisory. + optional string title = 1; + // Location where the advisory can be obtained. + string url = 2; +} + +message VulnerabilityCredits { + // The organizations credited with vulnerability discovery. + repeated OrganizationalEntity organizations = 1; + // The individuals, not associated with organizations, that are credited with vulnerability discovery. + repeated OrganizationalContact individuals = 2; +} + +message VulnerabilityAnalysis { + // Declares the current state of an occurrence of a vulnerability, after automated or manual analysis. + optional ImpactAnalysisState state = 1; + // The rationale of why the impact analysis state was asserted. + optional ImpactAnalysisJustification justification = 2; + // 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. + repeated VulnerabilityResponse response = 3; + // 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. + optional string detail = 4; + // The date and time (timestamp) when the analysis was first issued. + optional google.protobuf.Timestamp firstIssued = 5; + // The date and time (timestamp) when the analysis was last updated. + optional google.protobuf.Timestamp lastUpdated = 6; +} + +enum ImpactAnalysisState { + // An undefined impact analysis state + IMPACT_ANALYSIS_STATE_NULL = 0; + // The vulnerability has been remediated. + IMPACT_ANALYSIS_STATE_RESOLVED = 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). + IMPACT_ANALYSIS_STATE_RESOLVED_WITH_PEDIGREE = 2; + // The vulnerability may be directly or indirectly exploitable. + IMPACT_ANALYSIS_STATE_EXPLOITABLE = 3; + // The vulnerability is being investigated. + IMPACT_ANALYSIS_STATE_IN_TRIAGE = 4; + // The vulnerability is not specific to the component or service and was falsely identified or associated. + IMPACT_ANALYSIS_STATE_FALSE_POSITIVE = 5; + // The component or service is not affected by the vulnerability. Justification should be specified for all not_affected cases. + IMPACT_ANALYSIS_STATE_NOT_AFFECTED = 6; +} + +enum ImpactAnalysisJustification { + // An undefined impact analysis justification + IMPACT_ANALYSIS_JUSTIFICATION_NULL = 0; + // The code has been removed or tree-shaked. + IMPACT_ANALYSIS_JUSTIFICATION_CODE_NOT_PRESENT = 1; + // The vulnerable code is not invoked at runtime. + IMPACT_ANALYSIS_JUSTIFICATION_CODE_NOT_REACHABLE = 2; + // Exploitability requires a configurable option to be set/unset. + IMPACT_ANALYSIS_JUSTIFICATION_REQUIRES_CONFIGURATION = 3; + // Exploitability requires a dependency that is not present. + IMPACT_ANALYSIS_JUSTIFICATION_REQUIRES_DEPENDENCY = 4; + // Exploitability requires a certain environment which is not present. + IMPACT_ANALYSIS_JUSTIFICATION_REQUIRES_ENVIRONMENT = 5; + // Exploitability requires a compiler flag to be set/unset. + IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_BY_COMPILER = 6; + // Exploits are prevented at runtime. + IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_AT_RUNTIME = 7; + // Attacks are blocked at physical, logical, or network perimeter. + IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_AT_PERIMETER = 8; + // Preventative measures have been implemented that reduce the likelihood and/or impact of the vulnerability. + IMPACT_ANALYSIS_JUSTIFICATION_PROTECTED_BY_MITIGATING_CONTROL = 9; +} + +enum VulnerabilityResponse { + 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; +} + +message VulnerabilityAffects { + // References a component or service by the objects bom-ref + string ref = 1; + // Zero or more individual versions or range of versions. + repeated VulnerabilityAffectedVersions versions = 2; +} + +message VulnerabilityAffectedVersions { + oneof choice { + // A single version of a component or service. + string version = 1; + // 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 + string range = 2; + } + // The vulnerability status for the version or range of versions. Defaults to VULNERABILITY_AFFECTED_STATUS_AFFECTED if not specified. + optional VulnerabilityAffectedStatus status = 3; +} + +enum VulnerabilityAffectedStatus { + // 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. + VULNERABILITY_AFFECTED_STATUS_UNKNOWN = 0; + VULNERABILITY_AFFECTED_STATUS_AFFECTED = 1; + VULNERABILITY_AFFECTED_STATUS_NOT_AFFECTED = 2; +} + +message AnnotatorChoice { + oneof choice { + // The organization that created the annotation + OrganizationalEntity organization = 1; + // The person that created the annotation + OrganizationalContact individual = 2; + // The tool or component that created the annotation + Component component = 3; + // The service that created the annotation + Service service = 4; + } +} + +message Annotation { + // An optional identifier which can be used to reference the annotation elsewhere in the BOM. Every bom-ref MUST be unique within the BOM. + optional string bom_ref = 1; + // 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. + repeated string subjects = 2; + // The organization, person, component, or service which created the textual content of the annotation. + AnnotatorChoice annotator = 3; + // The date and time (timestamp) when the annotation was created. + google.protobuf.Timestamp timestamp = 4; + // The textual content of the annotation. + string text = 5; +} + +message ModelCard { + // 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. + optional string bom_ref = 1; + // Hyper-parameters for construction of the model. + optional ModelParameters modelParameters = 2; + // A quantitative analysis of the model + optional QuantitativeAnalysis quantitativeAnalysis = 3; + // What considerations should be taken into account regarding the model's construction, training, and application? + optional ModelCardConsiderations considerations = 4; + + message ModelParameters { + // The overall approach to learning used by the model for problem solving. + optional Approach approach = 1; + // Directly influences the input and/or output. Examples include classification, regression, clustering, etc. + optional string task = 2; + // The model architecture family such as transformer network, convolutional neural network, residual neural network, LSTM neural network, etc. + optional string architectureFamily = 3; + //The specific architecture of the model such as GPT-1, ResNet-50, YOLOv3, etc. + optional string modelArchitecture = 4; + // The datasets used to train and evaluate the model. + repeated Datasets datasets = 5; + // The input format(s) of the model + repeated MachineLearningInputOutputParameters inputs = 6; + // The output format(s) from the model + repeated MachineLearningInputOutputParameters outputs = 7; + + message Approach { + optional ModelParameterApproachType type = 1; + } + message Datasets { + oneof choice { + ComponentData dataset = 1; + // References a data component by the components bom-ref attribute + string ref = 2; + } + } + message MachineLearningInputOutputParameters { + // The data format for input/output to the model. Example formats include string, image, time-series + optional string format = 1; + } + } + message QuantitativeAnalysis { + // The model performance metrics being reported. Examples may include accuracy, F1 score, precision, top-3 error rates, MSC, etc. + repeated PerformanceMetrics performanceMetrics = 1; + optional GraphicsCollection graphics = 2; + + message PerformanceMetrics { + // The type of performance metric. + optional string type = 1; + // The value of the performance metric. + optional string value = 2; + // The name of the slice this metric was computed on. By default, assume this metric is not sliced. + optional string slice = 3; + // The confidence interval of the metric. + optional ConfidenceInterval confidenceInterval = 4; + + message ConfidenceInterval { + // The lower bound of the confidence interval. + optional string lowerBound = 1; + // The upper bound of the confidence interval. + optional string upperBound = 2; + } + } + } + message ModelCardConsiderations { + // Who are the intended users of the model? + repeated string users = 1; + // What are the intended use cases of the model? + repeated string useCases = 2; + // 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? + repeated string technicalLimitations = 3; + // What are the known tradeoffs in accuracy/performance of the model? + repeated string performanceTradeoffs = 4; + // What are the ethical (or environmental) risks involved in the application of this model? + repeated EthicalConsiderations ethicalConsiderations = 5; + // How does the model affect groups at risk of being systematically disadvantaged? What are the harms and benefits to the various affected groups? + repeated FairnessAssessments fairnessAssessments = 6; + + message EthicalConsiderations { + // The name of the risk. + optional string name = 1; + // Strategy used to address this risk. + optional string mitigationStrategy = 2; + } + message FairnessAssessments { + // The groups or individuals at risk of being systematically disadvantaged by the model. + optional string groupAtRisk = 1; + // Expected benefits to the identified groups. + optional string benefits = 2; + // Expected harms to the identified groups. + optional string harms = 3; + // With respect to the benefits and harms outlined, please describe any mitigation strategy implemented. + optional string mitigationStrategy = 4; + } + } +} + +enum ModelParameterApproachType { + 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; +} + +message ComponentData { + // An optional identifier which can be used to reference the dataset elsewhere in the BOM. Every bom-ref MUST be unique within the BOM. + optional string bom_ref = 1; + // The general theme or subject matter of the data being specified. + ComponentDataType type = 2; + // The name of the dataset. + optional string name = 3; + // The contents or references to the contents of the data being described. + optional ComponentDataContents contents = 4; + // Data classification tags data according to its type, sensitivity, and value if altered, stolen, or destroyed. + optional string classification = 5; + // A description of any sensitive data in a dataset. + repeated string sensitiveData = 6; + // A collection of graphics that represent various measurements. + optional GraphicsCollection graphics = 7; + // A description of the dataset. Can describe size of dataset, whether it's used for source code, training, testing, or validation, etc. + optional string description = 8; + // Data Governance + optional DataGovernance governance = 9; + + message ComponentDataContents { + // An optional way to include textual or encoded data. + optional AttachedText attachment = 1; + // The URL to where the data can be retrieved. + optional string url = 2; + // Provides the ability to document name-value parameters used for configuration. + repeated Property properties = 3; + } +} + +message DataGovernance { + // Data custodians are responsible for the safe custody, transport, and storage of data. + repeated DataGovernanceResponsibleParty custodians = 1; + // Data stewards are responsible for data content, context, and associated business rules. + repeated DataGovernanceResponsibleParty stewards = 2; + // Data owners are concerned with risk and appropriate access to data. + repeated DataGovernanceResponsibleParty owners = 3; + + message DataGovernanceResponsibleParty { + oneof choice { + OrganizationalEntity organization = 1; + OrganizationalContact contact = 2; + } + } +} + +enum ComponentDataType { + // Any type of code, code snippet, or data-as-code + COMPONENT_DATA_TYPE_SOURCE_CODE = 0; + // Parameters or settings that may be used by other components. + COMPONENT_DATA_TYPE_CONFIGURATION = 1; + // A collection of data. + COMPONENT_DATA_TYPE_DATASET = 2; + // Data that can be used to create new instances of what the definition defines. + COMPONENT_DATA_TYPE_DEFINITION = 3; + // Any other type of data that does not fit into existing definitions. + COMPONENT_DATA_TYPE_OTHER = 4; +} + +message GraphicsCollection { + // A description of this collection of graphics. + optional string description = 1; + // A collection of graphics. + repeated Graphic graphic = 2; + + message Graphic { + // The name of the graphic. + optional string name = 1; + // The graphic (vector or raster). Base64 encoding MUST be specified for binary images. + optional AttachedText image = 2; + } +} + +// Describes workflows and resources that captures rules and other aspects of how the associated BOM component or service was formed. +message Formula { + // BOM unique reference to the resource. + optional string bom_ref = 1; + // Transient components that are used in tasks that constitute one or more of this formula's workflows + repeated Component components = 2; + // Transient services that are used in tasks that constitute one or more of this formula's workflows + repeated Service services = 3; + // List of workflows that can be declared to accomplish specific orchestrated goals and independently triggered. + repeated Workflow workflows = 4; + // Domain-specific formula properties. + repeated Property properties = 5; +} + +// A specialized orchestration task. +message Workflow { + // BOM unique reference to the resource. + string bom_ref = 1; + // The unique identifier for the resource instance within its deployment context. + string uid = 2; + // The name of the resource instance. + optional string name = 3; + // A description of the resource instance. + optional string description = 4; + // Domain-specific resource instance properties. + repeated Property properties = 5; + // References to component or service resources that are used to realize the resource instance. + repeated ResourceReferenceChoice resourceReferences = 6; + // The tasks that comprise the workflow. + repeated Task tasks = 7; + // The graph of dependencies between tasks within the workflow. + repeated Dependency taskDependencies = 8; + // Indicates the types of activities performed by the set of workflow tasks. + repeated TaskType taskTypes = 9; + // The trigger that initiated the task. + optional Trigger trigger = 10; + // The sequence of steps for the task. + repeated Step steps = 11; + // Represents resources and data brought into a task at runtime by executor or task commands + repeated InputType inputs = 12; + // Represents resources and data output from a task at runtime by executor or task commands + repeated OutputType outputs = 13; + // The date and time (timestamp) when the task started. + optional google.protobuf.Timestamp timeStart = 14; + // The date and time (timestamp) when the task ended. + optional google.protobuf.Timestamp timeEnd = 15; + // A set of named filesystem or data resource shareable by workflow tasks. + repeated Workspace workspaces = 16; + // A graph of the component runtime topology for workflow's instance. + repeated Dependency runtimeTopology = 17; +} + +// Describes the inputs, sequence of steps and resources used to accomplish a task and its output. +message Task { + // BOM unique reference to the resource. + string bom_ref = 1; + // The unique identifier for the resource instance within its deployment context. + string uid = 2; + // The name of the resource instance. + optional string name = 3; + // A description of the resource instance. + optional string description = 4; + // Domain-specific task instance properties. + repeated Property properties = 5; + // References to component or service resources that are used to realize the resource instance. + repeated ResourceReferenceChoice resourceReferences = 6; + // Indicates the types of activities performed by the set of workflow tasks. + repeated TaskType taskTypes = 7; + // The trigger that initiated the task. + optional Trigger trigger = 8; + // "The sequence of steps for the task. + repeated Step steps = 9; + // Represents resources and data brought into a task at runtime by executor or task commands + repeated InputType inputs = 10; + // Represents resources and data output from a task at runtime by executor or task commands + repeated OutputType outputs = 11; + // The date and time (timestamp) when the task started. + optional google.protobuf.Timestamp timeStart = 14; + // The date and time (timestamp) when the task ended. + optional google.protobuf.Timestamp timeEnd = 15; + // A set of named filesystem or data resource shareable by workflow tasks. + repeated Workspace workspaces = 16; + // A graph of the component runtime topology for task's instance. + repeated Dependency runtimeTopology = 17; +} + +// Executes specific commands or tools in order to accomplish its owning task as part of a sequence. +message Step { + // A name for the step. + optional string name = 1; + // A description of the step. + optional string description = 2; + // Ordered list of commands or directives for the step + repeated Command commands = 3; + // Domain-specific step properties. + repeated Property properties = 4; +} + +message Command { + // A text representation of the executed command. + optional string executed = 1; + // Domain-specific command properties. + repeated Property properties = 2; +} + +// A named filesystem or data resource shareable by workflow tasks. +message Workspace { + // BOM unique reference to the resource. + string bom_ref = 1; + // The unique identifier for the resource instance within its deployment context. + string uid = 2; + // The name of the resource instance. + optional string name = 3; + // 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. + repeated string aliases = 4; + // A description of the resource instance. + optional string description = 5; + // Domain-specific workspace instance properties. + repeated Property properties = 6; + // References to component or service resources that are used to realize the resource instance. + repeated ResourceReferenceChoice resourceReferences = 7; + // Describes the read-write access control for the workspace relative to the owning resource instance. + optional AccessMode accessMode = 8; + // A path to a location on disk where the workspace will be available to the associated task's steps. + optional string mountPath = 9; + // The name of a domain-specific data type the workspace represents. + optional string managedDataType = 10; + // Identifies the reference to the request for a specific volume type and parameters. + optional string volumeRequest = 11; + // Information about the actual volume instance allocated to the workspace. + optional Volume volume = 12; + + enum AccessMode { + 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; + } +} + +// An identifiable, logical unit of data storage tied to a physical device. +message Volume { + // The unique identifier for the volume instance within its deployment context. + optional string uid = 1; + // The name of the volume instance + optional string name = 2; + // The volume mode for the volume instance. + optional VolumeMode mode = 3; + // The underlying path created from the actual volume. + optional string path = 4; + // 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. + optional string sizeAllocated = 5; + // Indicates if the volume persists beyond the life of the resource it is associated with. + optional bool persistent = 6; + // Indicates if the volume is remotely (i.e., network) attached. + optional bool remote = 7; + // Domain-specific volume instance properties. + repeated Property properties = 8; + + enum VolumeMode { + VOLUME_MODE_FILESYSTEM = 0; + VOLUME_MODE_BLOCK = 1; + } +} + +// Represents a resource that can conditionally activate (or fire) tasks based upon associated events and their data. +message Trigger { + // BOM unique reference to the resource. + string bom_ref = 1; + // The unique identifier for the resource instance within its deployment context. + string uid = 2; + // The name of the resource instance. + optional string name = 3; + // A description of the resource instance. + optional string description = 4; + // Additional properties of the trigger. + repeated Property properties = 5; + // References to component or service resources that are used to realize the resource instance. + repeated ResourceReferenceChoice resourceReferences = 6; + // The source type of event which caused the trigger to fire. + TriggerType type = 7; + // The event data that caused the associated trigger to activate. + optional Event event = 8; + // Conditions + repeated Condition conditions = 9; + // The date and time (timestamp) when the trigger was activated. + optional google.protobuf.Timestamp timeActivated = 10; + // Represents resources and data brought into a task at runtime by executor or task commands + repeated InputType inputs = 11; + // Represents resources and data output from a task at runtime by executor or task commands + repeated OutputType outputs = 12; + + enum TriggerType { + TRIGGER_TYPE_MANUAL = 0; + TRIGGER_TYPE_API = 1; + TRIGGER_TYPE_WEBHOOK = 2; + TRIGGER_TYPE_SCHEDULED = 3; + } +} + +// Represents something that happened that may trigger a response. +message Event { + // The unique identifier of the event. + optional string uid = 1; + // A description of the event. + optional string description = 2; + // The date and time (timestamp) when the event was received. + optional google.protobuf.Timestamp timeReceived = 3; + // Encoding of the raw event data. + optional AttachedText data = 4; + // References the component or service that was the source of the event + optional ResourceReferenceChoice source = 5; + // References the component or service that was the target of the event + optional ResourceReferenceChoice target = 6; + // Additional properties of the event. + repeated Property properties = 7; +} + +// Type that represents various input data types and formats. +message InputType { + // 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`) + optional ResourceReferenceChoice source = 1; + // 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) + optional ResourceReferenceChoice target = 2; + // A reference to an independent resource provided as an input to a task by the workflow runtime. + optional ResourceReferenceChoice resource = 3; + // Inputs that have the form of parameters with names and values. + repeated Parameter parameters = 4; + // Inputs that have the form of parameters with names and values. + repeated EnvironmentVars environmentVars = 5; + // Inputs that have the form of data. + optional AttachedText data = 6; + // Additional properties of the input data. + repeated Property properties = 7; +} + +message OutputType { + // Describes the type of data output. + optional OutputTypeType type = 1; + // Component or service that generated or provided the output from the task (e.g., a build tool) + optional ResourceReferenceChoice source = 2; + // Component or service that received the output from the task (e.g., reference to an artifactory service with data flow value of `outbound`) + optional ResourceReferenceChoice target = 3; + // A reference to an independent resource generated as output by the task. + optional ResourceReferenceChoice resource = 4; + // Outputs that have the form of data. + optional AttachedText data = 5; + // Outputs that have the form of environment variables. + repeated EnvironmentVars environmentVars = 6; + // Additional properties of the output data. + repeated Property properties = 7; + + enum OutputTypeType { + OUTPUT_TYPE_ARTIFACT = 0; + OUTPUT_TYPE_ATTESTATION = 1; + OUTPUT_TYPE_LOG = 2; + OUTPUT_TYPE_EVIDENCE = 3; + OUTPUT_TYPE_METRICS = 4; + OUTPUT_TYPE_OTHER = 5; + } +} + +message ResourceReferenceChoice { + oneof choice { + string ref = 1; + ExternalReference externalReference = 2; + } +} + +// A condition that was used to determine a trigger should be activated. +message Condition { + // Describes the set of conditions which cause the trigger to activate. + optional string description = 1; + // The logical expression that was evaluated that determined the trigger should be fired. + optional string expression = 2; + // Domain-specific condition instance properties. + repeated Property properties = 3; +} + +enum TaskType { + 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; +} + +// A representation of a functional parameter. +message Parameter { + // The name of the parameter. + optional string name = 1; + // The value of the parameter. + optional string value = 2; + // The data type of the parameter. + optional string dataType = 3; +} + +message EnvironmentVars { + oneof choice { + Property property = 1; + string value = 2; + } +} + diff --git a/proto/sbom/sbom.proto b/proto/sbom/sbom.proto index 7f00829e..21b73e6c 100644 --- a/proto/sbom/sbom.proto +++ b/proto/sbom/sbom.proto @@ -7,6 +7,7 @@ package datadog.sbom; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "proto/deps/github.com/CycloneDX/specification/schema/bom-1.4.proto"; +import "proto/deps/github.com/CycloneDX/specification/schema/bom-1.5.proto"; // SBOMPayload represents the main SBOM payload message SBOMPayload { @@ -28,8 +29,9 @@ message SBOMEntity { bool heartbeat = 8; // Whether the SBOM is identical to the previously sent one string hash = 9; // Hash of the SBOM oneof sbom { - cyclonedx.v1_4.Bom cyclonedx = 10; // only cyclonedx will be supported initially but putting it optional will allow us to move to another format later - // spdx.SBOM spdx = 13; // SPDX can be added later as any other format. + cyclonedx.v1_4.Bom cyclonedx_1_4 = 10; // only cyclonedx will be supported initially but putting it optional will allow us to move to another format later + cyclonedx.v1_5.Bom cyclonedx_1_5 = 13; + // spdx.SBOM spdx = 15; // SPDX can be added later as any other format. string error = 12; } SBOMStatus status = 11; diff --git a/sbom/sbom.pb.go b/sbom/sbom.pb.go index 4e3a59bd..11ced88d 100644 --- a/sbom/sbom.pb.go +++ b/sbom/sbom.pb.go @@ -8,6 +8,7 @@ package sbom import ( cyclonedx_v1_4 "github.com/DataDog/agent-payload/v5/cyclonedx_v1_4" + cyclonedx_v1_5 "github.com/DataDog/agent-payload/v5/cyclonedx_v1_5" duration "github.com/golang/protobuf/ptypes/duration" timestamp "github.com/golang/protobuf/ptypes/timestamp" protoreflect "google.golang.org/protobuf/reflect/protoreflect" @@ -225,7 +226,8 @@ type SBOMEntity struct { Heartbeat bool `protobuf:"varint,8,opt,name=heartbeat,proto3" json:"heartbeat,omitempty"` // Whether the SBOM is identical to the previously sent one Hash string `protobuf:"bytes,9,opt,name=hash,proto3" json:"hash,omitempty"` // Hash of the SBOM // Types that are assignable to Sbom: - // *SBOMEntity_Cyclonedx + // *SBOMEntity_Cyclonedx_1_4 + // *SBOMEntity_Cyclonedx_1_5 // *SBOMEntity_Error Sbom isSBOMEntity_Sbom `protobuf_oneof:"sbom"` Status SBOMStatus `protobuf:"varint,11,opt,name=status,proto3,enum=datadog.sbom.SBOMStatus" json:"status,omitempty"` @@ -334,9 +336,16 @@ func (m *SBOMEntity) GetSbom() isSBOMEntity_Sbom { return nil } -func (x *SBOMEntity) GetCyclonedx() *cyclonedx_v1_4.Bom { - if x, ok := x.GetSbom().(*SBOMEntity_Cyclonedx); ok { - return x.Cyclonedx +func (x *SBOMEntity) GetCyclonedx_1_4() *cyclonedx_v1_4.Bom { + if x, ok := x.GetSbom().(*SBOMEntity_Cyclonedx_1_4); ok { + return x.Cyclonedx_1_4 + } + return nil +} + +func (x *SBOMEntity) GetCyclonedx_1_5() *cyclonedx_v1_5.Bom { + if x, ok := x.GetSbom().(*SBOMEntity_Cyclonedx_1_5); ok { + return x.Cyclonedx_1_5 } return nil } @@ -366,16 +375,22 @@ type isSBOMEntity_Sbom interface { isSBOMEntity_Sbom() } -type SBOMEntity_Cyclonedx struct { - Cyclonedx *cyclonedx_v1_4.Bom `protobuf:"bytes,10,opt,name=cyclonedx,proto3,oneof"` // only cyclonedx will be supported initially but putting it optional will allow us to move to another format later +type SBOMEntity_Cyclonedx_1_4 struct { + Cyclonedx_1_4 *cyclonedx_v1_4.Bom `protobuf:"bytes,10,opt,name=cyclonedx_1_4,json=cyclonedx14,proto3,oneof"` // only cyclonedx will be supported initially but putting it optional will allow us to move to another format later +} + +type SBOMEntity_Cyclonedx_1_5 struct { + Cyclonedx_1_5 *cyclonedx_v1_5.Bom `protobuf:"bytes,13,opt,name=cyclonedx_1_5,json=cyclonedx15,proto3,oneof"` } type SBOMEntity_Error struct { - // spdx.SBOM spdx = 13; // SPDX can be added later as any other format. + // spdx.SBOM spdx = 15; // SPDX can be added later as any other format. Error string `protobuf:"bytes,12,opt,name=error,proto3,oneof"` } -func (*SBOMEntity_Cyclonedx) isSBOMEntity_Sbom() {} +func (*SBOMEntity_Cyclonedx_1_4) isSBOMEntity_Sbom() {} + +func (*SBOMEntity_Cyclonedx_1_5) isSBOMEntity_Sbom() {} func (*SBOMEntity_Error) isSBOMEntity_Sbom() {} @@ -392,70 +407,78 @@ var file_proto_sbom_sbom_proto_rawDesc = []byte{ 0x70, 0x73, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x44, 0x58, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x62, 0x6f, 0x6d, - 0x2d, 0x31, 0x2e, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc0, 0x01, 0x0a, 0x0b, 0x53, - 0x42, 0x4f, 0x4d, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, - 0x67, 0x2e, 0x73, 0x62, 0x6f, 0x6d, 0x2e, 0x53, 0x42, 0x4f, 0x4d, 0x45, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x64, - 0x64, 0x5f, 0x65, 0x6e, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, - 0x64, 0x45, 0x6e, 0x76, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x64, 0x5f, 0x65, 0x6e, 0x76, 0x22, 0xb0, 0x04, - 0x0a, 0x0a, 0x53, 0x42, 0x4f, 0x4d, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x30, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x73, 0x62, 0x6f, 0x6d, 0x2e, 0x53, 0x42, 0x4f, 0x4d, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x41, - 0x0a, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 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, - 0x01, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x54, 0x61, 0x67, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, - 0x6e, 0x55, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x12, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x12, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x64, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x64, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, - 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, - 0x33, 0x0a, 0x09, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, - 0x31, 0x5f, 0x34, 0x2e, 0x42, 0x6f, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x63, 0x79, 0x63, 0x6c, 0x6f, - 0x6e, 0x65, 0x64, 0x78, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x73, 0x62, 0x6f, 0x6d, 0x2e, 0x53, 0x42, 0x4f, 0x4d, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, - 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x18, 0x0e, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, - 0x73, 0x42, 0x06, 0x0a, 0x04, 0x73, 0x62, 0x6f, 0x6d, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2a, 0x8f, 0x01, 0x0a, 0x0e, 0x53, 0x42, 0x4f, 0x4d, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, - 0x52, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x10, 0x01, - 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x46, 0x49, - 0x4c, 0x45, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x48, - 0x4f, 0x53, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, - 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x49, 0x5f, 0x50, 0x49, 0x50, 0x45, 0x4c, 0x49, 0x4e, 0x45, - 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x48, 0x4f, 0x53, 0x54, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, - 0x10, 0x05, 0x2a, 0x32, 0x0a, 0x0a, 0x53, 0x42, 0x4f, 0x4d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0a, 0x0a, - 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, - 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x42, 0x2a, 0x5a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x44, 0x6f, 0x67, 0x2f, 0x61, 0x67, 0x65, - 0x6e, 0x74, 0x2d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2f, 0x76, 0x35, 0x2f, 0x73, 0x62, - 0x6f, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2d, 0x31, 0x2e, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x42, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2f, 0x64, 0x65, 0x70, 0x73, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x43, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x44, 0x58, 0x2f, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x2f, 0x62, 0x6f, 0x6d, 0x2d, 0x31, 0x2e, 0x35, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc0, + 0x01, 0x0a, 0x0b, 0x53, 0x42, 0x4f, 0x4d, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x08, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x73, 0x62, 0x6f, 0x6d, 0x2e, 0x53, 0x42, 0x4f, 0x4d, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, + 0x1a, 0x0a, 0x06, 0x64, 0x64, 0x5f, 0x65, 0x6e, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x05, 0x64, 0x64, 0x45, 0x6e, 0x76, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x64, 0x5f, 0x65, 0x6e, + 0x76, 0x22, 0xf1, 0x04, 0x0a, 0x0a, 0x53, 0x42, 0x4f, 0x4d, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x73, 0x62, 0x6f, 0x6d, 0x2e, 0x53, 0x42, + 0x4f, 0x4d, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x41, 0x0a, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 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, 0x01, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x54, 0x61, + 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x05, 0x69, 0x6e, 0x55, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x12, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, + 0x02, 0x52, 0x12, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x64, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x64, 0x54, 0x61, 0x67, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, + 0x61, 0x73, 0x68, 0x12, 0x39, 0x0a, 0x0d, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, + 0x5f, 0x31, 0x5f, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x79, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x34, 0x2e, 0x42, 0x6f, 0x6d, 0x48, + 0x00, 0x52, 0x0b, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x31, 0x34, 0x12, 0x39, + 0x0a, 0x0d, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x5f, 0x31, 0x5f, 0x35, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, + 0x78, 0x2e, 0x76, 0x31, 0x5f, 0x35, 0x2e, 0x42, 0x6f, 0x6d, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x79, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x64, 0x78, 0x31, 0x35, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x18, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x64, 0x6f, 0x67, 0x2e, 0x73, 0x62, 0x6f, 0x6d, + 0x2e, 0x53, 0x42, 0x4f, 0x4d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x64, 0x69, 0x67, 0x65, + 0x73, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x44, + 0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x73, 0x62, 0x6f, 0x6d, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x8f, 0x01, 0x0a, 0x0e, 0x53, 0x42, 0x4f, 0x4d, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4e, + 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x4c, 0x41, 0x59, + 0x45, 0x52, 0x53, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, + 0x45, 0x52, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x02, + 0x12, 0x14, 0x0a, 0x10, 0x48, 0x4f, 0x53, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x53, 0x59, + 0x53, 0x54, 0x45, 0x4d, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x49, 0x5f, 0x50, 0x49, 0x50, + 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x48, 0x4f, 0x53, 0x54, 0x5f, + 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x05, 0x2a, 0x32, 0x0a, 0x0a, 0x53, 0x42, 0x4f, 0x4d, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, + 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x42, 0x2a, 0x5a, 0x28, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x44, 0x6f, + 0x67, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2f, + 0x76, 0x35, 0x2f, 0x73, 0x62, 0x6f, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -480,19 +503,21 @@ var file_proto_sbom_sbom_proto_goTypes = []interface{}{ (*timestamp.Timestamp)(nil), // 4: google.protobuf.Timestamp (*duration.Duration)(nil), // 5: google.protobuf.Duration (*cyclonedx_v1_4.Bom)(nil), // 6: cyclonedx.v1_4.Bom + (*cyclonedx_v1_5.Bom)(nil), // 7: cyclonedx.v1_5.Bom } var file_proto_sbom_sbom_proto_depIdxs = []int32{ 3, // 0: datadog.sbom.SBOMPayload.entities:type_name -> datadog.sbom.SBOMEntity 0, // 1: datadog.sbom.SBOMEntity.type:type_name -> datadog.sbom.SBOMSourceType 4, // 2: datadog.sbom.SBOMEntity.generatedAt:type_name -> google.protobuf.Timestamp 5, // 3: datadog.sbom.SBOMEntity.generationDuration:type_name -> google.protobuf.Duration - 6, // 4: datadog.sbom.SBOMEntity.cyclonedx:type_name -> cyclonedx.v1_4.Bom - 1, // 5: datadog.sbom.SBOMEntity.status:type_name -> datadog.sbom.SBOMStatus - 6, // [6:6] is the sub-list for method output_type - 6, // [6:6] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 6, // 4: datadog.sbom.SBOMEntity.cyclonedx_1_4:type_name -> cyclonedx.v1_4.Bom + 7, // 5: datadog.sbom.SBOMEntity.cyclonedx_1_5:type_name -> cyclonedx.v1_5.Bom + 1, // 6: datadog.sbom.SBOMEntity.status:type_name -> datadog.sbom.SBOMStatus + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_proto_sbom_sbom_proto_init() } @@ -528,7 +553,8 @@ func file_proto_sbom_sbom_proto_init() { } file_proto_sbom_sbom_proto_msgTypes[0].OneofWrappers = []interface{}{} file_proto_sbom_sbom_proto_msgTypes[1].OneofWrappers = []interface{}{ - (*SBOMEntity_Cyclonedx)(nil), + (*SBOMEntity_Cyclonedx_1_4)(nil), + (*SBOMEntity_Cyclonedx_1_5)(nil), (*SBOMEntity_Error)(nil), } type x struct{}