pax_global_header00006660000000000000000000000064147060255250014520gustar00rootroot0000000000000052 comment=91b29525c73fa4775908fa9533fe17cea1d1381c golang-github-in-toto-attestation-1.1.0/000077500000000000000000000000001470602552500201725ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/.github/000077500000000000000000000000001470602552500215325ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/.github/dependabot.yml000066400000000000000000000004031470602552500243570ustar00rootroot00000000000000version: 2 updates: - package-ecosystem: github-actions directory: "/" schedule: interval: weekly - package-ecosystem: npm directory: "/" schedule: interval: daily - package-ecosystem: gomod directory: "/" schedule: interval: daily golang-github-in-toto-attestation-1.1.0/.github/workflows/000077500000000000000000000000001470602552500235675ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/.github/workflows/lint.yml000066400000000000000000000005711470602552500252630ustar00rootroot00000000000000name: Lint on: [workflow_dispatch, pull_request] permissions: read-all jobs: lint: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - name: Setup Node uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 - run: npm ci --ignore-scripts - run: npm run lint --silent golang-github-in-toto-attestation-1.1.0/.github/workflows/make-protos.yml000066400000000000000000000041121470602552500265510ustar00rootroot00000000000000name: Generate attestation libraries on: push: branches: - "main" schedule: # There are two reasons we may need to regenerate libraries. # First, there's an explicit change merged into main. That's caught by the # other trigger. The second reason is when protoc is updated to a newer # version (still within the versions specified here, as 3.x may map to 3.20 # instead of 3.19) without any changes to the main branch of this # repository. For this reason, the second trigger runs this workflow once a # week. - cron: '0 14 * * 1' jobs: run-make-protos: runs-on: ubuntu-latest steps: - name: Install protoc uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b with: version: '24.x' - name: Install Python uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c with: python-version: '3.x' - name: Install Go uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 with: go-version: 1.20.x - name: setup env run: | echo "$(go env GOPATH)/bin" >> $GITHUB_PATH - name: Checkout repo uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - name: Generate libraries run: | make protos - name: Create PR # This step opens a PR if make protos resulted in a difference from # what's currently in the main branch. It has no permissions to write to # the repository, maintainers are required to approve and merge the PRs. uses: peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e with: commit-message: Regenerate attestation libraries title: Regenerate attestation libraries body: This PR updates the attestation libraries generated using protoc. base: main branch: actions-regenerate-attestation-libraries delete-branch: true signoff: true author: GitHub committer: GitHub golang-github-in-toto-attestation-1.1.0/.github/workflows/python.yml000066400000000000000000000014401470602552500256320ustar00rootroot00000000000000name: Python tests and linting on: push: branches: - main paths: - 'python/**' pull_request: paths: - 'python/**' workflow_dispatch: jobs: test: strategy: matrix: python: - "3.8" - "3.9" - "3.10" - "3.11" - "3.12" runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} - name: test run: make -C python test INSTALL_EXTRA=test lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.x" - name: lint run: make -C python lint INSTALL_EXTRA=lint golang-github-in-toto-attestation-1.1.0/.github/workflows/run-go-tests.yml000066400000000000000000000015331470602552500266630ustar00rootroot00000000000000name: Run Go tests on: workflow_dispatch: push: branches: - main paths: - 'go/**' # Want to trigger these tests whenever the attestation # libraries are regenerated, or new modules/tests are # added to the language bindings pull_request: paths: - 'go/**' permissions: read-all jobs: tests: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 - name: Install Go uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 with: go-version: 1.20.x - name: Format run: if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then exit 1; fi - name: Setup Env run: | echo "$(go env GOPATH)/bin" >> $GITHUB_PATH - name: Run tests run: | make go_test golang-github-in-toto-attestation-1.1.0/.gitignore000066400000000000000000000000751470602552500221640ustar00rootroot00000000000000.sass-cache _site node_modules *~ \#*\# dist __pycache__ env golang-github-in-toto-attestation-1.1.0/.markdownlint.yaml000066400000000000000000000016171470602552500236520ustar00rootroot00000000000000# MD004/ul-style - Unordered list style MD004: style: "dash" # MD007/ul-indent - Unordered list indentation MD007: indent: 4 # MD013/line-length - Line length MD013: false # MD029/ol-prefix - Ordered list item prefix MD029: # List style style: "ordered" # MD030/list-marker-space - Spaces after list markers MD030: # Spaces for single-line unordered list items ul_single: 3 # Spaces for single-line ordered list items ol_single: 2 # Spaces for multi-line unordered list items ul_multi: 3 # Spaces for multi-line ordered list items ol_multi: 2 # MD033/no-inline-html - Inline HTML MD033: false # MD034/no-bare-urls - Bare URL used MD034: false # MD046/code-block-style - Code block style MD046: style: "fenced" # MD047/single-trailing-newline - Files should end with a single newline character MD047: true # MD048/code-fence-style - Code fence style MD048: style: "backtick" golang-github-in-toto-attestation-1.1.0/.markdownlintignore000077700000000000000000000000001470602552500260732.gitignoreustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/CODEOWNERS000066400000000000000000000001361470602552500215650ustar00rootroot00000000000000# For a detailed list of maintainers, see MAINTAINERS.md. * @in-toto/attestation-maintainers golang-github-in-toto-attestation-1.1.0/GOVERNANCE.md000066400000000000000000000010721470602552500221430ustar00rootroot00000000000000# in-toto Governance in-toto's [governance](https://github.com/in-toto/community/blob/main/GOVERNANCE.md) and [code of conduct](https://github.com/in-toto/community/blob/main/CODE-OF-CONDUCT.md) are described in the [in-toto/community](https://github.com/in-toto/community) repository. ## in-toto Attestation Framework Contributions This implementation adheres to [in-toto's contributing guidelines](https://github.com/in-toto/community/blob/main/CONTRIBUTING.md). Pull requests must be submitted to the `main` branch where they undergo review and automated testing. golang-github-in-toto-attestation-1.1.0/LICENSE000066400000000000000000000010571470602552500212020ustar00rootroot00000000000000Copyright 2021 in-toto Developers Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. golang-github-in-toto-attestation-1.1.0/MAINTAINERS.md000066400000000000000000000007631470602552500222740ustar00rootroot00000000000000# Maintainers | Name | GitHub | |----------------------------|-----------------| | Joshua Lock (Verizon) | [@joshuagl](https://github.com/joshuagl) | | Marcela Melara (Intel) | [@marcelamelara](https://github.com/marcelamelara) | | Mikhail Swift (TestifySec) | [@mikhailswift](https://github.com/mikhailswift) | | Parth Patel (Kusari) | [@pxp928](https://github.com/pxp928) | | Tom Hennen (Google) | [@TomHennen](https://github.com/TomHennen) | golang-github-in-toto-attestation-1.1.0/Makefile000066400000000000000000000005011470602552500216260ustar00rootroot00000000000000go_setup: go install google.golang.org/protobuf/cmd/protoc-gen-go protos: go_setup make -C protos go make -C protos python make -C protos java go_run: go run examples/go/main.go go_test: go_setup go test ./... py_test: python3 -m unittest python/tests/test_*.py .PHONY: protos go_setup go_run go_test py_test golang-github-in-toto-attestation-1.1.0/README.md000066400000000000000000000056621470602552500214620ustar00rootroot00000000000000# in-toto Attestation Framework The in-toto Attestation Framework provides a specification for generating verifiable claims about any aspect of how a piece of software is produced. Consumers or users of software can then validate the origins of the software, and establish trust in its supply chain, using in-toto attestations. ## Learning about in-toto attestations To get started, check out the [overview] of the in-toto Attestation Framework. For a deeper dive, we recommend reading through our [documentation] to learn more about the goals of the in-toto Attestation Framework. If you encountered in-toto via the SLSA project, take a look at this [blog post](https://slsa.dev/blog/2023/05/in-toto-and-slsa) to understand how the two frameworks intersect and how you can use in-toto for SLSA. Visit [https://in-toto.io](https://in-toto.io) to learn about the larger in-toto project. ## Working with in-toto attestations The core of the in-toto Attestation Framework is the [specification] that defines the format for in-toto attestations and the metadata they contain. We also provide a set of [attestation predicates], which are metadata formats vetted by our maintainers to cover a number of common use cases. For tooling integration, we provide [protobuf definitions] of the spec. We currently only provide language bindings for Go and Python. ## Is your use case not covered by existing predicate types? Take a look at the open [issues] or [pull requests] to see if your usage has already been reported. We can help with use cases, thinking through options, and questions about existing predicates. Feel free to comment on an existing issue or PR. ## Want to propose a new predicate type? If you still can't find what you're looking for, open a new issue or pull request. Before opening a request for a new metadata format, please review our [New Predicate Guidelines]. ## Governance The in-toto Attestation Framework is part of the [in-toto] project under the [CNCF]. For more information, see [GOVERNANCE.md]. Use `@in-toto/attestation-maintainers` to tag the maintainers on GitHub. ## Disclaimer The in-toto Attestation Framework is still under development. We are in the process of developing tooling to enable better integration and adoption of the framework. In the meantime, please visit any of the language-specific [in-toto implementations] to become familiar with current tooling options. [CNCF]: https://www.cncf.io/projects/in-toto/ [GOVERNANCE.md]: GOVERNANCE.md [New Predicate Guidelines]: docs/new_predicate_guidelines.md [attestation predicates]: spec/predicates/ [documentation]: docs/ [in-toto]: https://in-toto.io [in-toto implementations]: https://github.com/in-toto [issues]: https://github.com/in-toto/attestation/issues?q=is%3Aopen+is%3Aissue [overview]: spec/README.md#in-toto-attestation-framework-spec [protobuf definitions]: protos/ [pull requests]: https://github.com/in-toto/attestation/pulls?q=is%3Aopen+is%3Apr [specification]: spec/v1/ golang-github-in-toto-attestation-1.1.0/docs/000077500000000000000000000000001470602552500211225ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/docs/README.md000066400000000000000000000054071470602552500224070ustar00rootroot00000000000000# Introduction The **in-toto Attestation Framework** 1. defines a standard [format](../spec/v1/) for attestations which bind subjects, the artifacts being described, to arbitrary authenticated metadata about the artifact 2. provides a set of [pre-defined predicates](../spec/predicates/) for communicating authenticated metadata throughout and across software supply chains The framework was designed to support use of the data by automated policy engines, such as [in-toto-verify] and [Binary Authorization]. However, any system that creates or consumes verifiable claims about how a piece of software is produced can benefit from the in-toto Attestation Framework. ## Project goals - Standardize artifact metadata without being specific to the producer or consumer. This way CI/CD pipelines, vulnerability scanners, and other systems can generate a single set of attestations that can be consumed by anyone. - Make it possible to write automated policies that take advantage of structured information. - Fit within the [SLSA Framework][SLSA]. - Support an ecosystem of verifiable metadata about software artifacts to improve software supply chain security. ## Example uses Attestations can be used to provide data for a variety of policy decisions including, but not limited to, the following high-level examples: - [Provenance][SLSA Provenance]: GitHub Actions attests to the fact that it built a container image with digest "sha256:87f7fe…" from git commit "f0c93d…" in the "main" branch of "https://github.com/example/foo". - Test result: GitHub Actions attests to the fact that the npm tests passed on git commit "f0c93d…". - Vulnerability scan: Google Container Analysis attests to the fact that no vulnerabilities were found in container image "sha256:87f7fe…" at a particular time. - Policy decision: Binary Authorization attests to the fact that container image "sha256:87f7fe…" is allowed to run under GKE project "example-project" within the next 4 hours, and that it used the four attestations above and as well as the policy with sha256 hash "79e572" to make its decision. ## Detailed documentation - [background on the framework and its requirements](background.md) - [motivating use case](motivating_use_case.md) - [guidelines for creating new attestation schemas](new_predicate_guidelines.md) - [validation model](validation.md) - [ideas for future schemas](schema_ideas.md) - [protobuf definitions](protos.md) - [testing the implementations](testing.md) [Binary Authorization]: https://cloud.google.com/binary-authorization [SLSA Provenance]: https://slsa.dev/provenance [SLSA]: https://github.com/slsa-framework/slsa [in-toto-verify]: https://github.com/in-toto/in-toto#verification golang-github-in-toto-attestation-1.1.0/docs/background.md000066400000000000000000000123611470602552500235660ustar00rootroot00000000000000# Background We capture the historical motivational context for the creation of the in-toto Attestation Framework here. Terms and statements within were up-to-date at the time this document was authored but may be out of date now. ## Motivation This project was initiated with two main motivations: 1. Support use cases where the prior in-toto link schema was a poor fit. For example, test steps and vulnerability scans are not about "producing" a new artifact so they are awkward to represent in the original format. 2. Support interoperability with [Binary Authorization], which can support the agreed-upon format once finalized. This way we have a single ecosystem of software supply chain security. ## Requirements Functional requirements: - Must support user-defined types and schemas, for two reasons: - To allow in-toto users to more naturally express attestations, as explained above. - Because Binary Authorization does not want to require its users to use the existing in-toto link schema, which is overly specific. - Should allow indexing of attestations by their artifact identifier, i.e., a digest, without having to understand the user-defined schema. - Primary reason: To support generic attestation indexing/storage/fetching without requiring user configuration for every type of attestation. - Secondary reason: To simplify the programming model of policies. The binding between artifact and attestation can be done in a framework without requiring type-dependent configuration. - Implication: the association between attestation and primary artifact identifier must be standardized. - Should allow identification of related artifacts IDs given an attestation, without having to understand the user-defined schema. - Reason: To support "inline attestations," where the client fetches and sends all required attestations to the server for verification. The client does not know the policy ahead of time or understand all attestation types. - Example: Given a provenance attestation for a docker image, it should be possible to identify all the materials generically. - Implication: the association between attestation and related artifact IDs must be standardized. Nonfunctional requirements: - Must support backwards compatible Links that can be consumed by existing Layout files. - Must differentiate between different types of related artifacts (only if related artifacts are standardized.) Examples: materials vs products, sources vs build tools. - Should be type-dependent, rather than mandating "materials" and "products." ## Reasoning ### Reason for separate Statement and Predicate layers The [Statement] layer has a fixed schema while the [Predicate] layer has an arbitrary schema. Furthermore, the fixed Statement schema has a `subject` and `predicateType`. There are two main reasons for this. First, doing so allows policy engines to make decisions without requiring Predicate-specific logic or configuration. Binary Authorization policies today are purely about "does an attestation exist that is signed by X with subject Y", and similarly in-toto layouts are about "does an attestation exist that is signed by X with materials/products Z?"[^1] These relatively simple policies are quite powerful. With this proposal, such policies become more expressive without any additional configuration: "does an attestation exist that is signed by X having predicate type T, with subject Y/Z?" Second, it enables lookup of attestations by `subject`, again without Predicate-specific logic or configuration. Consider a validation policy as "fetch attestations for artifact X". The lookup could be from a set of attestations provided by the caller, or it could be from an external database keyed by subject.[^2] Without a standardized `subject` field, this would be significantly harder. The alternative is to not have a fixed Statement schema and instead have `subject` be part of the Predicate. Doing so would require users to configure the system for every possible Predicate type they wanted to support, in order to instruct the system how to find the subject. Furthermore, because there would be no standardization, concepts and models may not necessarily translate between predicate types. For example, one predicate type might require an "or" between artifact IDs, while another requires an "and." This difference would add complexity and confusion. [^1]: The `expected_command` is only a warning, and `inspections` require running external commands which is infeasible in many situations. [^2]: That said, we strongly recommend against keying a database purely by content hash. The reason is that such databases quickly run into scaling issues, as explained in [Building Secure and Reliable Systems](https://static.googleusercontent.com/media/landing.google.com/en//sre/static/pdf/Building_Secure_and_Reliable_Systems.pdf#page=364), Chapter 14, page 328, "Ensure Unambiguous Provenance." Instead, we recommend keying primarily by resource name, in addition to content hash. [Binary Authorization]: https://cloud.google.com/binary-authorization [Predicate]: spec/README.md#predicate [Statement]: spec/README.md#statement golang-github-in-toto-attestation-1.1.0/docs/motivating_use_case.md000066400000000000000000000237231470602552500255030ustar00rootroot00000000000000# Motivating use case > :warning: **These are example predicate types and do not represent real predicates**: please refer to [predicates directory](https://github.com/in-toto/attestation/tree/main/spec/predicates) for real world use cases! MyCompany wants to centrally enforce the following rules of its production Kubernetes environments: - All containers must undergo a source-level vulnerability scan showing zero known high severity vulnerabilities. - All first-party code must be peer reviewed, reside in MyCompany's GitHub org, and be sufficiently recent. - All third-party code and build tools must be verified via Reproducible Builds. (Let's pretend such an attestation service exists.) - All build steps must be performed by GitHub Actions, Google Cloud Build, or AWS CodeBuild in (a hypothetical) "hermetic" mode. - The intermediate products in the supply chain have not been tampered with. It is both too costly and too insecure to have every team write their own layout. There are several hundred different Kuberenetes environments administered by many different product teams, none of whom employ security experts. Instead, we need a solution that allows the central security team to write a policy that automatically applies to every environment across the company. The current in-toto link and layout formats are impractical for this application: - It is awkward to express these concepts in the current link format. One would need to either record the exact command lines used, which is too brittle, or ignore all of the standard fields and jam everything in `environment`, which is hard to use. - It is impossible to express this policy in the current layout format. - There is no support for verifying any details. The closest option, `expected_command`, is just a warning but not an error. - There is no support for performing generic traversals of the build graph, such as "allow any number of verifiable build steps." - There is no practical way to analyze a layout to determine if it meets the requirements above. The proposed attestation format, along with a future policy engine, allows us to craft such a policy. This ITE does not cover the policy engine piece, but we show the ideas via pseudocode. ## Policy pseudocode The following pseudocode implements the policy above. Assume that memoization takes care of cycles. This policy would be written by a security expert at the company and used for all Kubernetes environments. In this pseudocode `attestation` is assumed to be a signed in-toto Statement. In most use cases the in-toto statement would be contained in the payload of a [DSSE][]. ```python policy(artifact): lookup attestations for artifact allow if (any attestation meets vulnerability_scan and any attestation meets first_party_code_review) for each attestation meeting verifiable_build: allow if (every 'top_level_source' relation meets good_top_level_source and every 'dependent_sources' relation meets good_dependent_source and every 'tool' relation meets good_tool) deny otherwise good_top_level_source(relation): return policy(relation.artifact) good_dependent_source(relation): lookup attestations for relation.artifact allow if any attestation meets first_party_code_review deny otherwise good_tool(relation): lookup attestations for relation.artifact allow if any attestation (meets reproducible_build and attestation.predicate.name == relation.name) deny otherwise vulnerability_scan(attestation): attestation is signed by 'MyCompanyScanner' attestation.predicateType == 'https://example.com/VulnerabilityScan/v1' attestation.predicate.vulnerability_counts.high == 0 attestation.predicate.timestamp is within 14 days of today first_party_code_review(attestation): attestation is signed by 'GitHub' attestation.predicateType == 'https://example.com/CodeReview/v1' attestation.predicate.repo_url starts with 'https://github.com/my-company/' attestation.predicate.code_reviewed == true attestation.predicate.timestamp is within 30 days of today reproducible_build(attestation): attestation is signed by 'ReproducibleBuilds' attestation.predicateType == 'https://example.com/ReproducibleBuild/v1' verifiable_build(attestation): return (hermetic_github_action(attestation) or hermetic_cloud_build(attestation) or hermetic_codebuild(attestation)) hermetic_github_action(attestation): attestation is signed by 'GitHubActions' attestation.predicateType == 'https://example.com/GitHubActionProduct/v1' attestation.predicate.hermetic == true hermetic_cloud_build(attestation): attestation is signed by 'GoogleCloudBuild' attestation.predicateType == 'https://example.com/GoogleCloudBuildProduct/v1' attestation.predicate.no_network == true hermetic_cloud_build(attestation): attestation is signed by 'AwsCodeBuild' attestation.predicateType == 'https://example.com/AwsCodeBuildProduct/v1' attestation.predicate.no_network == true ## Types of artifact IDs considered by `lookup attestations for `. allowed_artifact_id_types = [ 'sha256', 'sha512', 'container_image_digest', 'gitCommit', ] ``` ## Attestations Let's take a look at one example team's software supply chain. ![drawing](../images/attestation_supply_chain.png) - Top-level code repository is "https://github.com/my-company/my-product". - This defines submodules and the GitHub Actions workflows. - Vulnerability scan is provided by an in-house scanner. - Docker image is produced by the GitHub Actions "Build" workflow. - In the hypothetical "hermetic" mode, this records all dependent submodules and build tools. This corresponds to the following attestations. Assume each is signed by the appropriate party; we only show the claim here. ```json { "predicateType": "https://example.com/CodeReview/v1", "subject": [{ "digest": { "gitCommit": "859b387b985ea0f414e4e8099c9f874acb217b94" } }], "predicate": { "timestamp": "2020-04-12T13:50:00Z", "repo_type": "git", "repo_url": "https://github.com/my-company/my-product", "repo_branch": "master", "code_reviewed": true } } ``` ```json { "predicateType": "https://example.com/CodeReview/v1", "subject": [{ "digest": { "gitCommit": "2f02c094e6a9afe8e889c3f1d3cb66b437797af4" } }], "predicate": { "timestamp": "2020-04-12T13:50:00Z", "repo_type": "git", "repo_url": "https://github.com/my-company/submodule1", "repo_branch": "master", "code_reviewed": true } } ``` ```json { "predicateType": "https://example.com/CodeReview/v1", "subject": [{ "digest": {"gitCommit": "5215a97a7978d8ee0de859ccac1bbfd2475bfe92" } }], "predicate": { "timestamp": "2020-04-12T13:50:00Z", "repo_type": "git", "repo_url": "https://github.com/my-company/submodule2", "repo_branch": "master", "code_reviewed": true } } ``` ```json { "predicateType": "https://example.com/VulnerabilityScan/v1", "subject": [{ "digest": { "gitCommit": "859b387b985ea0f414e4e8099c9f874acb217b94" } }], "predicate": { "timestamp": "2020-04-12T13:55:02Z", "vulnerability_counts": { "high": 0, "medium": 1, "low": 17 } } } ``` ```json { "predicateType": "https://example.com/GitHubActionProduct/v1", "subject": [{ "container_image_digest": "sha256:c201c331d6142766c866..." }], "predicate": { "workflow_name": "Build", "hermetic": true, "relations": { "top_level_source": [{ "artifact": { "gitCommit": "859b387b985ea0f414e4e8099c9f874acb217b94" }, "git_repo": "https://github.com/example/repo" }], "dependent_sources": [{ "artifact": { "gitCommit": "2f02c094e6a9afe8e889c3f1d3cb66b437797af4" }, "git_repo": "https://github.com/example/submodule1" }, { "artifact": { "gitCommit": "5215a97a7978d8ee0de859ccac1bbfd2475bfe92" }, "git_repo": "https://github.com/example/submodule2" }], "tools": [{ "artifact": { "sha256": "411c1dfb3c8f3bea29da934d61a884baad341af8..." }, "name": "clang" }, { "artifact": { "sha256": "9f5068311eb98e6dd9bb554d4b7b9ee126b13693..." }, "name": "bazel" }] } } } ``` ```json { "predicateType": "https://example.com/ReproducibleBuild/v1", "subject": [{ "sha256": "411c1dfb3c8f3bea29da934d61a884baad341af8..." }], "predicate": { "name": "clang" } } ``` ```json { "predicateType": "https://example.com/ReproducibleBuild/v1", "subject": [{ "sha256": "9f5068311eb98e6dd9bb554d4b7b9ee126b13693..." }], "predicate": { "name": "bazel" } } ``` ## Policy result attestations It may not be practical to perform attestation chaining at Kubernetes deployment time due to latency limitations, since the chain of attestations could be unbounded in length. To work around this limitation, the full policy evaluation can happen as a step earlier in the software supply chain. That policy evaluation returns its own attestation proving that the artifact passed the policy. Then the Kubernetes policy only requires one such attestation. ```python kubernetes_policy(artifact): lookup attestations for artifact allow if any attestation meets passed_policy_evaluation deny otherwise passed_policy_evaluation(attestation): attestation is signed by 'BinaryAuthorization' attestation.predicateType == 'https://example.com/BinAuthzDecision/v1' attestation.predicate.decision == 'allow' attestation.predicate.timestamp is within 24 hours of now attestation.predicate.environment matches this Kubernetes environment allowed_artifact_id_types = ['container_image_digest'] ``` ```json { "predicateType": "https://example.com/BinAuthzDecision/v1", "subject": [{ "container_image_digest": "sha256:c201c331d6142766c866..." }], "predicate": { "timestamp": "2020-04-12T18:04:10Z", "decision": "allow", "environment": { "gcp_project": "example-project", "cluster": "us-east1-a.prod-cluster" } } } ``` [DSSE]: https://github.com/secure-systems-lab/dsse golang-github-in-toto-attestation-1.1.0/docs/new_predicate_guidelines.md000066400000000000000000000066331470602552500264750ustar00rootroot00000000000000# Guidelines for new predicates This document provides guidelines for developing and contributing new in-toto Attestation Framework predicate types. ## Preliminary questions It's important to understand the _why_ for each predicate type. Before you start developing your new predicate, make sure you can answer the following questions. This will also help us better understand your request. - What's your use case? - Why don’t [existing predicates] cover this use case? - What might a new predicate type for your use case look like? (concrete examples in JSON or CUE preferred) - What policy questions do you want to be able to answer with the predicate? ## Predicate conventions We provide a set of common predicate [field types], and recommend the following conventions for predicates: - [Predicates] SHOULD follow and opt-in to the general [parsing rules], particularly the monotonic principle, and SHOULD explain what the parsing rules are. - Field names SHOULD use lowerCamelCase. - Timestamps SHOULD use [RFC 3339] syntax with timezone "Z" and SHOULD clarify the meaning of the timestamp. For example, a field named `timestamp` is too ambiguous; a better name would be `builtAt` or `allowedAt` or `scannedAt`. Predicate designers are free to limit what subject types are valid for a given predicate type. For example, suppose a "Gerrit code review" predicate only applies to git commit subjects. In that case, a producer of such attestations should never use a subject other than a git commit. ## Contributing your new predicate to in-toto We love to see our list of vetted predicates grow. New attestation predicates usually undergo a short [vetting process] before they are added to our list. To start this process, please submit a PR following the [ITE-9] formatting guidelines. **IMPORTANT:** Your predicate is yours. This means that in-toto Attestation Framework maintainers can provide feedback, but will not write the specification for you. ## Vetting process Our vetting process is simple, and is based on the process specified in [ITE-9]. 1. Open a PR following the formatting guidelines specified in the [predicate template]. - Add the new predicate to the list of [existing predicates]. - To generate Go/Python/Java language bindings for the new predicate, include a [protobuf definition]. 2. The in-toto Attestation Framework maintainers will review the PR at the next maintainers meeting. 3. If accepted, the new predicate type will be included in our directory. 4. Finally, if the new [predicateType] URI is defined under the https://in-toto.io/attestation namespace, submit a PR to add the following line to the [URL redirects list] for the in-toto.io domain: `attestation// https://github.com/in-toto/attestation/tree/main/spec/predicates/.md` [ITE-9]: https://github.com/in-toto/ITE/tree/master/ITE/9#document-format [Predicates]: ../spec/v1/predicate.md [RFC 3339]: https://tools.ietf.org/html/rfc3339 [URL redirects list]: https://github.com/in-toto/in-toto.io/blob/master/public/_redirects [field types]: ../spec/v1/field_types.md [existing predicates]: ../spec/predicates/README.md [parsing rules]: ../spec/v1/README.md#parsing-rules [predicateType]: ../spec/v1/predicate.md#fields [protobuf definition]: ../protos/README.md [vetting process]: #vetting-process [predicate template]: /spec/predicates/template/template.md golang-github-in-toto-attestation-1.1.0/docs/protos.md000066400000000000000000000055051470602552500227770ustar00rootroot00000000000000# Spec protobuf definitions Protobuf definitions for the in-toto spec and some predicates are provided in the [protos/] directory. We provide a list of [supported language bindings] for the spec and predicates. **DISCLAIMER**: The protobuf definitions and language bindings will not be considered stable before the v1.1 tagged release. Use at your own risk. ## Pre-requisites On an Ubuntu-based system, install the following dependencies. ```shell sudo apt install build-essential protobuf-compiler golang python3 python3-pip ``` ## Protobuf programming practices You should follow standard [protobuf programming practices] when developing a protobuf definition. **NOTE**: This means that while [specification documents] [by convention use] lowerCamelCase for field names, the protobuf definitions use lower_snake_case for field names per the standard protobuf convention. We establish the following project specific practices, in addition to the standard protobuf programming practices: ### Package versioning To enable consumers to support multiple versions of the in-toto attestation spec or predicates[^1], we maintain versioned sub-packages for the protos. This means, the protos for a new major version should be placed under new `vMAJ` sub-package under the respective protos package: - spec in `protos/in\_toto\_attestation/` - predicates in `protos/in\_toto\_attestation//` ### Updates Minor version updates to the protobufs are expected to be fully backwards compatible (per [semver guidelines]), and should be made directly to the proto defintions in the corresponding `vMAJ` sub-package. To ensure backwards compatibility of the updated definition, please review the message type [update guidelines]. ## Regenerating proto libraries [It's typical](https://go.dev/doc/articles/go_command#:~:text=and%20then%20check%20those%20generated%20source%20files%20into%20your%20repository) to keep code generated from protobuf definitions in the repository itself, since it makes users' lives much easier. However, do NOT manually regenerate and check in the libraries if your change modifies or adds protos. To ensure libraries are generated using consistent tooling, we have [automated their generation](/.github/workflows/make-protos.yml). Therefore, they will be regenerated automatically, after your change is merged. [^1]: This is especially helpful during transitions between major versions of the spec or predicate. [protobuf programming practices]: https://protobuf.dev/programming-guides/proto3 [update guidelines]: https://protobuf.dev/programming-guides/proto3/#updating [protos/]: ../protos/ [semver guidelines]: https://semver.org/#summary [by convention use]: ../docs/new_predicate_guidelines.md#predicate-conventions [specification documents]: ../spec/ [supported language bindings]: ../protos/README.md#supported-language-bindings golang-github-in-toto-attestation-1.1.0/docs/testing.md000066400000000000000000000024161470602552500231240ustar00rootroot00000000000000# in-toto attestation implementation tests We provide a set of basic tests for the different language bindings for the in-toto attestation layers. ## Testing the Go bindings The go packages `go/v1` and `go/predicates` provide a number of tests for the statement and predicate layers. ### Running the Go tests To run all tests: ```shell make go_test ``` ### Writing new Go tests Please use the standard [Go testing package] to write tests for new predicates. For example tests, take a look at the `*_test.go` files in the `go/` directory tree. At a minimum, we suggest testing JSON marshalling and unmarshalling of the Go language bindings. ## Testing the Python bindings The `tests/python` directory contains a number of tests for the statement and predicate layers. ### Running the Python tests To run all tests: ```shell make py_test ``` ### Writing new Python tests Please use the standard [Python unittest package] to write tests for new predicates. For example tests, take a look at the `test_*.py` modules in the `tests/python/` directory tree. At a minimum, we suggest testing JSON marshalling and unmarshalling of the Python language bindings. [Go testing package]: https://pkg.go.dev/testing [Python unittest package]: https://docs.python.org/3/library/unittest.html golang-github-in-toto-attestation-1.1.0/docs/validation.md000066400000000000000000000036651470602552500236100ustar00rootroot00000000000000# Validation model The following pseudocode shows how to verify and extract metadata about a single artifact from a single attestation. The expectation is that consumers will feed the resulting metadata into a policy engine. > **TODO**: Explain how to process multiple artifacts and/or multiple attestations. Inputs: - `artifactToVerify`: blob of data - `attestation`: JSON-encoded [Envelope] - `recognizedAttesters`: collection of (`name`, `publicKey`) pairs - `acceptableDigestAlgorithms`: collection of acceptable cryptographic hash algorithms (usually just `sha256`) Steps: - Envelope layer: - `envelope` := decode `attestation` as a JSON-encoded [Envelope]; reject if decoding fails - `attesterNames` := empty set of names - For each `signature` in `envelope.signatures`: - For each (`name`, `publicKey`) in `recognizedAttesters`: - Optional: skip if `signature.keyid` does not match `publicKey` - If `signature.sig` matches `publicKey`: - Add `name` to `attesterNames` - Reject if `attesterNames` is empty - Intermediate state: `envelope.payloadType`, `envelope.payload`, `attesterNames` - Statement layer: - Reject if `envelope.payloadType` != `application/vnd.in-toto+json` - `statement` := decode `envelope.payload` as a JSON-encoded [Statement]; reject if decoding fails - Reject if `statement.type` != `https://in-toto.io/Statement/v1` - `matchedSubjects` := the subset of entries `s` in `statement.subject` where: - there exists at least one `(alg, value)` in `s.digest` where: - `alg` is in `acceptableDigestAlgorithms` AND - `hash(alg, artifactToVerify)` == `hexDecode(value)` - Reject if `matchedSubjects` is empty Output (to be fed into policy engine): - `statement.predicateType` - `statement.predicate` - `matchedSubjects` - `attesterNames` golang-github-in-toto-attestation-1.1.0/examples/000077500000000000000000000000001470602552500220105ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/examples/go/000077500000000000000000000000001470602552500224155ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/examples/go/main.go000066400000000000000000000064711470602552500237000ustar00rootroot00000000000000package main import ( "fmt" "log" "strings" vpb "github.com/in-toto/attestation/go/predicates/vsa/v0" spb "github.com/in-toto/attestation/go/v1" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/types/known/structpb" "google.golang.org/protobuf/types/known/timestamppb" ) func createStatementPbFromJson(subName string, subSha256 string, predicateType string, predicateJson []byte) (*spb.Statement, error) { pred := &structpb.Struct{} err := protojson.Unmarshal(predicateJson, pred) if err != nil { return nil, fmt.Errorf("failed to unmarshal predicate: %w", err) } return createStatementPb(subName, subSha256, predicateType, pred), nil } func createStatementPb(subName string, subSha256 string, predicateType string, predicate *structpb.Struct) *spb.Statement { sub := []*spb.ResourceDescriptor{{ Name: subName, Digest: map[string]string{"sha256": strings.ToLower(subSha256)}, }} return &spb.Statement{ Type: spb.StatementTypeUri, Subject: sub, PredicateType: predicateType, Predicate: predicate, } } func createVsa(subName string, subSha256 string, vsaBody *vpb.VerificationSummary) (*spb.Statement, error) { vsaJson, err := protojson.Marshal(vsaBody) if err != nil { return nil, err } vsaStruct := &structpb.Struct{} err = protojson.Unmarshal(vsaJson, vsaStruct) if err != nil { return nil, err } return createStatementPb(subName, subSha256, "https://slsa.dev/verification_summary/v0.2", vsaStruct), nil } // Example of how to use protobuf to create in-toto statements. // Users will still likely want to put the json output in a DSSE. func main() { // Create a statement with an unknown predicate. s, err := createStatementPbFromJson( "sub-name", "ABC123", "https://example.com/unknownPred1", []byte(`{ "foo": "bar", "baz": [1,2,3] }`)) if err != nil { log.Fatal(err) } fmt.Printf("Statement as json:\n%v\n", protojson.Format(s)) // Create a statement of a VSA vsaPred := &vpb.VerificationSummary{ Verifier: &vpb.VerificationSummary_Verifier{ Id: "verifier-id"}, TimeVerified: timestamppb.Now(), ResourceUri: "http://example.com/the/protected/resource.tar", Policy: &vpb.VerificationSummary_Policy{ Uri: "http://example.com/policy/uri"}, InputAttestations: []*vpb.VerificationSummary_InputAttestation{{ Uri: "http://example.com/attestation/foo.intoto.jsonl", Digest: map[string]string{"sha256": "def456"}}, }, VerificationResult: "PASSED", PolicyLevel: "SLSA_LEVEL_3", DependencyLevels: map[string]uint64{"SLSA_LEVEL_0": 1}, } v, err := createVsa("vsa-sub", "abc123", vsaPred) if err != nil { log.Fatal(err) } fmt.Printf("\nVSA as json:\n%v\n", protojson.Format(v)) // Read JSON text into a Statement err = protojson.Unmarshal([]byte(`{ "_type": "https://in-toto.io/Statement/v1", "subject": [{ "name": "sub name", "digest": { "sha256": "abc123" } }], "predicateType": "https://example.com/unknownPred2", "predicate": { "foo": { "bar": "baz" } } }`), s) if err != nil { log.Fatal(err) } fmt.Printf("\nRead statement with predicateType %v\n", s.PredicateType) fmt.Printf("Predicate %v\n", s.Predicate) } golang-github-in-toto-attestation-1.1.0/go.mod000066400000000000000000000004271470602552500213030ustar00rootroot00000000000000module github.com/in-toto/attestation go 1.20 require ( github.com/stretchr/testify v1.9.0 google.golang.org/protobuf v1.34.1 ) require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) golang-github-in-toto-attestation-1.1.0/go.sum000066400000000000000000000023261470602552500213300ustar00rootroot00000000000000github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= golang-github-in-toto-attestation-1.1.0/go/000077500000000000000000000000001470602552500205775ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/README.md000066400000000000000000000020621470602552500220560ustar00rootroot00000000000000# Golang implementation of in-toto attestations This package contains Golang bindings for the in-toto Attestation Framework spec. Its contents are autogenerated using [protobuf definitions](https://github.com/in-toto/attestation/tree/main/protos). For more information, see the [in-toto Attestation Framework](https://github.com/in-toto/attestation). ## Usage Install via `go get github.com/in-toto/attestation`. The Go bindings for the attestations layers and predicates are provided in the `github.com/in-toto/attestation/go/v1` and `github.com/in-toto/attestation/go/predicates` packages, respectively. ## Testing See the [testing docs] for info and instructions for testing this implementation. ## Run the Go example examples/go/main.go provides an example of how these protos can be used. To try it: ```shell $ make go_run ... Read statement with predicateType https://example.com/unknownPred2 Predicate fields:{key:"foo" value:{struct_value:{fields:{key:"bar" value:{string_value:"baz"}}}}} ``` [testing docs]: ../docs/testing.md#testing-the-go-bindings golang-github-in-toto-attestation-1.1.0/go/predicates/000077500000000000000000000000001470602552500227225ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/predicates/link/000077500000000000000000000000001470602552500236575ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/predicates/link/v0/000077500000000000000000000000001470602552500242045ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/predicates/link/v0/link.pb.go000066400000000000000000000220201470602552500260640ustar00rootroot00000000000000// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.1 // protoc v4.24.4 // source: in_toto_attestation/predicates/link/v0/link.proto package v0 import ( v1 "github.com/in-toto/attestation/go/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" structpb "google.golang.org/protobuf/types/known/structpb" 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 Link struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Command []string `protobuf:"bytes,2,rep,name=command,proto3" json:"command,omitempty"` Materials []*v1.ResourceDescriptor `protobuf:"bytes,3,rep,name=materials,proto3" json:"materials,omitempty"` Byproducts *structpb.Struct `protobuf:"bytes,4,opt,name=byproducts,proto3" json:"byproducts,omitempty"` Environment *structpb.Struct `protobuf:"bytes,5,opt,name=environment,proto3" json:"environment,omitempty"` } func (x *Link) Reset() { *x = Link{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_link_v0_link_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Link) String() string { return protoimpl.X.MessageStringOf(x) } func (*Link) ProtoMessage() {} func (x *Link) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_link_v0_link_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 Link.ProtoReflect.Descriptor instead. func (*Link) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_link_v0_link_proto_rawDescGZIP(), []int{0} } func (x *Link) GetName() string { if x != nil { return x.Name } return "" } func (x *Link) GetCommand() []string { if x != nil { return x.Command } return nil } func (x *Link) GetMaterials() []*v1.ResourceDescriptor { if x != nil { return x.Materials } return nil } func (x *Link) GetByproducts() *structpb.Struct { if x != nil { return x.Byproducts } return nil } func (x *Link) GetEnvironment() *structpb.Struct { if x != nil { return x.Environment } return nil } var File_in_toto_attestation_predicates_link_v0_link_proto protoreflect.FileDescriptor var file_in_toto_attestation_predicates_link_v0_link_proto_rawDesc = []byte{ 0x0a, 0x31, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x6c, 0x69, 0x6e, 0x6b, 0x2f, 0x76, 0x30, 0x2f, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x26, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x30, 0x1a, 0x30, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf2, 0x01, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x48, 0x0a, 0x09, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x62, 0x79, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x62, 0x79, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x67, 0x0a, 0x2f, 0x69, 0x6f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x69, 0x6e, 0x74, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x76, 0x30, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x6c, 0x69, 0x6e, 0x6b, 0x2f, 0x76, 0x30, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_in_toto_attestation_predicates_link_v0_link_proto_rawDescOnce sync.Once file_in_toto_attestation_predicates_link_v0_link_proto_rawDescData = file_in_toto_attestation_predicates_link_v0_link_proto_rawDesc ) func file_in_toto_attestation_predicates_link_v0_link_proto_rawDescGZIP() []byte { file_in_toto_attestation_predicates_link_v0_link_proto_rawDescOnce.Do(func() { file_in_toto_attestation_predicates_link_v0_link_proto_rawDescData = protoimpl.X.CompressGZIP(file_in_toto_attestation_predicates_link_v0_link_proto_rawDescData) }) return file_in_toto_attestation_predicates_link_v0_link_proto_rawDescData } var file_in_toto_attestation_predicates_link_v0_link_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_in_toto_attestation_predicates_link_v0_link_proto_goTypes = []interface{}{ (*Link)(nil), // 0: in_toto_attestation.predicates.link.v0.Link (*v1.ResourceDescriptor)(nil), // 1: in_toto_attestation.v1.ResourceDescriptor (*structpb.Struct)(nil), // 2: google.protobuf.Struct } var file_in_toto_attestation_predicates_link_v0_link_proto_depIdxs = []int32{ 1, // 0: in_toto_attestation.predicates.link.v0.Link.materials:type_name -> in_toto_attestation.v1.ResourceDescriptor 2, // 1: in_toto_attestation.predicates.link.v0.Link.byproducts:type_name -> google.protobuf.Struct 2, // 2: in_toto_attestation.predicates.link.v0.Link.environment:type_name -> google.protobuf.Struct 3, // [3:3] is the sub-list for method output_type 3, // [3:3] is the sub-list for method input_type 3, // [3:3] is the sub-list for extension type_name 3, // [3:3] is the sub-list for extension extendee 0, // [0:3] is the sub-list for field type_name } func init() { file_in_toto_attestation_predicates_link_v0_link_proto_init() } func file_in_toto_attestation_predicates_link_v0_link_proto_init() { if File_in_toto_attestation_predicates_link_v0_link_proto != nil { return } if !protoimpl.UnsafeEnabled { file_in_toto_attestation_predicates_link_v0_link_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Link); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_in_toto_attestation_predicates_link_v0_link_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_in_toto_attestation_predicates_link_v0_link_proto_goTypes, DependencyIndexes: file_in_toto_attestation_predicates_link_v0_link_proto_depIdxs, MessageInfos: file_in_toto_attestation_predicates_link_v0_link_proto_msgTypes, }.Build() File_in_toto_attestation_predicates_link_v0_link_proto = out.File file_in_toto_attestation_predicates_link_v0_link_proto_rawDesc = nil file_in_toto_attestation_predicates_link_v0_link_proto_goTypes = nil file_in_toto_attestation_predicates_link_v0_link_proto_depIdxs = nil } golang-github-in-toto-attestation-1.1.0/go/predicates/provenance/000077500000000000000000000000001470602552500250625ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/predicates/provenance/v1/000077500000000000000000000000001470602552500254105ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/predicates/provenance/v1/provenance.go000066400000000000000000000071431470602552500301040ustar00rootroot00000000000000/* Validator APIs for SLSA Provenance v1 protos. */ package v1 import ( "errors" "fmt" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/structpb" ) // all of the following errors apply to SLSA Build L1 and above var ( ErrBuilderRequired = errors.New("runDetails.builder required") ErrBuilderIdRequired = errors.New("runDetails.builder.id required") ErrBuildDefinitionRequired = errors.New("buildDefinition required") ErrBuildTypeRequired = errors.New("buildDefinition.buildType required") ErrExternalParamsRequired = errors.New("buildDefinition.externalParameters required") ErrRunDetailsRequired = errors.New("runDetails required") ) func (m *BuildMetadata) Validate() error { // check valid timestamps s := m.GetStartedOn() if s != nil { if err := s.CheckValid(); err != nil { return fmt.Errorf("buildMetadata.startedOn error: %w", err) } } f := m.GetFinishedOn() if f != nil { if err := f.CheckValid(); err != nil { return fmt.Errorf("buildMetadata.finishedOn error: %w", err) } } return nil } func (b *Builder) Validate() error { // the id field is required for SLSA Build L1 if b.GetId() == "" { return ErrBuilderIdRequired } // check that all builderDependencies are valid RDs builderDeps := b.GetBuilderDependencies() for i, rd := range builderDeps { if err := rd.Validate(); err != nil { return fmt.Errorf("Invalid Builder.BuilderDependencies[%d]: %w", i, err) } } return nil } func (b *BuildDefinition) Validate() error { // the buildType field is required for SLSA Build L1 if b.GetBuildType() == "" { return ErrBuildTypeRequired } // the externalParameters field is required for SLSA Build L1 ext := b.GetExternalParameters() if ext == nil || proto.Equal(ext, &structpb.Struct{}) { return ErrExternalParamsRequired } // check that all resolvedDependencies are valid RDs resolvedDeps := b.GetResolvedDependencies() for i, rd := range resolvedDeps { if err := rd.Validate(); err != nil { return fmt.Errorf("Invalid BuildDefinition.ResolvedDependencies[%d]: %w", i, err) } } return nil } func (r *RunDetails) Validate() error { // the builder field is required for SLSA Build L1 builder := r.GetBuilder() if builder == nil || proto.Equal(builder, &Builder{}) { return ErrBuilderRequired } // check the Builder if err := builder.Validate(); err != nil { return fmt.Errorf("runDetails.builder error: %w", err) } // check the Metadata, if present metadata := r.GetMetadata() if metadata != nil && !proto.Equal(metadata, &BuildMetadata{}) { if err := metadata.Validate(); err != nil { return fmt.Errorf("Invalid RunDetails.Metadata: %w", err) } } // check that all byproducts are valid RDs byproducts := r.GetByproducts() for i, rd := range byproducts { if err := rd.Validate(); err != nil { return fmt.Errorf("Invalid RunDetails.Byproducts[%d]: %w", i, err) } } return nil } func (p *Provenance) Validate() error { // the buildDefinition field is required for SLSA Build L1 buildDef := p.GetBuildDefinition() if buildDef == nil || proto.Equal(buildDef, &BuildDefinition{}) { return ErrBuildDefinitionRequired } // check the BuildDefinition if err := buildDef.Validate(); err != nil { return fmt.Errorf("provenance.buildDefinition error: %w", err) } // the runDetails field is required for SLSA Build L1 runDetails := p.GetRunDetails() if runDetails == nil || proto.Equal(runDetails, &RunDetails{}) { return ErrRunDetailsRequired } // check the RunDetails if err := runDetails.Validate(); err != nil { return fmt.Errorf("provenance.runDetails error: %w", err) } return nil } golang-github-in-toto-attestation-1.1.0/go/predicates/provenance/v1/provenance.pb.go000066400000000000000000000637361470602552500305160ustar00rootroot00000000000000// Keep in sync with schema at https://github.com/slsa-framework/slsa/blob/main/docs/provenance/schema/v1/provenance.proto // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.1 // protoc v4.24.4 // source: in_toto_attestation/predicates/provenance/v1/provenance.proto package v1 import ( v1 "github.com/in-toto/attestation/go/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" structpb "google.golang.org/protobuf/types/known/structpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // Proto representation of predicate type https://slsa.dev/provenance/v1 // Validation of all fields is left to the users of this proto. type Provenance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BuildDefinition *BuildDefinition `protobuf:"bytes,1,opt,name=build_definition,json=buildDefinition,proto3" json:"build_definition,omitempty"` RunDetails *RunDetails `protobuf:"bytes,2,opt,name=run_details,json=runDetails,proto3" json:"run_details,omitempty"` } func (x *Provenance) Reset() { *x = Provenance{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_provenance_v1_provenance_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Provenance) String() string { return protoimpl.X.MessageStringOf(x) } func (*Provenance) ProtoMessage() {} func (x *Provenance) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_provenance_v1_provenance_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 Provenance.ProtoReflect.Descriptor instead. func (*Provenance) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescGZIP(), []int{0} } func (x *Provenance) GetBuildDefinition() *BuildDefinition { if x != nil { return x.BuildDefinition } return nil } func (x *Provenance) GetRunDetails() *RunDetails { if x != nil { return x.RunDetails } return nil } type BuildDefinition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BuildType string `protobuf:"bytes,1,opt,name=build_type,json=buildType,proto3" json:"build_type,omitempty"` ExternalParameters *structpb.Struct `protobuf:"bytes,2,opt,name=external_parameters,json=externalParameters,proto3" json:"external_parameters,omitempty"` InternalParameters *structpb.Struct `protobuf:"bytes,3,opt,name=internal_parameters,json=internalParameters,proto3" json:"internal_parameters,omitempty"` ResolvedDependencies []*v1.ResourceDescriptor `protobuf:"bytes,4,rep,name=resolved_dependencies,json=resolvedDependencies,proto3" json:"resolved_dependencies,omitempty"` } func (x *BuildDefinition) Reset() { *x = BuildDefinition{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_provenance_v1_provenance_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BuildDefinition) String() string { return protoimpl.X.MessageStringOf(x) } func (*BuildDefinition) ProtoMessage() {} func (x *BuildDefinition) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_provenance_v1_provenance_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 BuildDefinition.ProtoReflect.Descriptor instead. func (*BuildDefinition) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescGZIP(), []int{1} } func (x *BuildDefinition) GetBuildType() string { if x != nil { return x.BuildType } return "" } func (x *BuildDefinition) GetExternalParameters() *structpb.Struct { if x != nil { return x.ExternalParameters } return nil } func (x *BuildDefinition) GetInternalParameters() *structpb.Struct { if x != nil { return x.InternalParameters } return nil } func (x *BuildDefinition) GetResolvedDependencies() []*v1.ResourceDescriptor { if x != nil { return x.ResolvedDependencies } return nil } type RunDetails struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Builder *Builder `protobuf:"bytes,1,opt,name=builder,proto3" json:"builder,omitempty"` Metadata *BuildMetadata `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"` Byproducts []*v1.ResourceDescriptor `protobuf:"bytes,3,rep,name=byproducts,proto3" json:"byproducts,omitempty"` } func (x *RunDetails) Reset() { *x = RunDetails{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_provenance_v1_provenance_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RunDetails) String() string { return protoimpl.X.MessageStringOf(x) } func (*RunDetails) ProtoMessage() {} func (x *RunDetails) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_provenance_v1_provenance_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 RunDetails.ProtoReflect.Descriptor instead. func (*RunDetails) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescGZIP(), []int{2} } func (x *RunDetails) GetBuilder() *Builder { if x != nil { return x.Builder } return nil } func (x *RunDetails) GetMetadata() *BuildMetadata { if x != nil { return x.Metadata } return nil } func (x *RunDetails) GetByproducts() []*v1.ResourceDescriptor { if x != nil { return x.Byproducts } return nil } type Builder struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Version map[string]string `protobuf:"bytes,2,rep,name=version,proto3" json:"version,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` BuilderDependencies []*v1.ResourceDescriptor `protobuf:"bytes,3,rep,name=builder_dependencies,json=builderDependencies,proto3" json:"builder_dependencies,omitempty"` } func (x *Builder) Reset() { *x = Builder{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_provenance_v1_provenance_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Builder) String() string { return protoimpl.X.MessageStringOf(x) } func (*Builder) ProtoMessage() {} func (x *Builder) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_provenance_v1_provenance_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 Builder.ProtoReflect.Descriptor instead. func (*Builder) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescGZIP(), []int{3} } func (x *Builder) GetId() string { if x != nil { return x.Id } return "" } func (x *Builder) GetVersion() map[string]string { if x != nil { return x.Version } return nil } func (x *Builder) GetBuilderDependencies() []*v1.ResourceDescriptor { if x != nil { return x.BuilderDependencies } return nil } type BuildMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields InvocationId string `protobuf:"bytes,1,opt,name=invocation_id,json=invocationId,proto3" json:"invocation_id,omitempty"` StartedOn *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=started_on,json=startedOn,proto3" json:"started_on,omitempty"` FinishedOn *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=finished_on,json=finishedOn,proto3" json:"finished_on,omitempty"` } func (x *BuildMetadata) Reset() { *x = BuildMetadata{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_provenance_v1_provenance_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BuildMetadata) String() string { return protoimpl.X.MessageStringOf(x) } func (*BuildMetadata) ProtoMessage() {} func (x *BuildMetadata) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_provenance_v1_provenance_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 BuildMetadata.ProtoReflect.Descriptor instead. func (*BuildMetadata) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescGZIP(), []int{4} } func (x *BuildMetadata) GetInvocationId() string { if x != nil { return x.InvocationId } return "" } func (x *BuildMetadata) GetStartedOn() *timestamppb.Timestamp { if x != nil { return x.StartedOn } return nil } func (x *BuildMetadata) GetFinishedOn() *timestamppb.Timestamp { if x != nil { return x.FinishedOn } return nil } var File_in_toto_attestation_predicates_provenance_v1_provenance_proto protoreflect.FileDescriptor var file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDesc = []byte{ 0x0a, 0x3d, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x2c, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x30, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 0xd1, 0x01, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x68, 0x0a, 0x10, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0b, 0x72, 0x75, 0x6e, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0a, 0x72, 0x75, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xa5, 0x02, 0x0a, 0x0f, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x12, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x48, 0x0a, 0x13, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x12, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5f, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x22, 0x82, 0x02, 0x0a, 0x0a, 0x52, 0x75, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x4f, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x57, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4a, 0x0a, 0x0a, 0x62, 0x79, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x62, 0x79, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x22, 0x92, 0x02, 0x0a, 0x07, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x5c, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5d, 0x0a, 0x14, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x13, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xac, 0x01, 0x0a, 0x0d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x02, 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, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 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, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x4f, 0x6e, 0x42, 0x73, 0x0a, 0x35, 0x69, 0x6f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x69, 0x6e, 0x74, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescOnce sync.Once file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescData = file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDesc ) func file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescGZIP() []byte { file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescOnce.Do(func() { file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescData = protoimpl.X.CompressGZIP(file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescData) }) return file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDescData } var file_in_toto_attestation_predicates_provenance_v1_provenance_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_in_toto_attestation_predicates_provenance_v1_provenance_proto_goTypes = []interface{}{ (*Provenance)(nil), // 0: in_toto_attestation.predicates.provenance.v1.Provenance (*BuildDefinition)(nil), // 1: in_toto_attestation.predicates.provenance.v1.BuildDefinition (*RunDetails)(nil), // 2: in_toto_attestation.predicates.provenance.v1.RunDetails (*Builder)(nil), // 3: in_toto_attestation.predicates.provenance.v1.Builder (*BuildMetadata)(nil), // 4: in_toto_attestation.predicates.provenance.v1.BuildMetadata nil, // 5: in_toto_attestation.predicates.provenance.v1.Builder.VersionEntry (*structpb.Struct)(nil), // 6: google.protobuf.Struct (*v1.ResourceDescriptor)(nil), // 7: in_toto_attestation.v1.ResourceDescriptor (*timestamppb.Timestamp)(nil), // 8: google.protobuf.Timestamp } var file_in_toto_attestation_predicates_provenance_v1_provenance_proto_depIdxs = []int32{ 1, // 0: in_toto_attestation.predicates.provenance.v1.Provenance.build_definition:type_name -> in_toto_attestation.predicates.provenance.v1.BuildDefinition 2, // 1: in_toto_attestation.predicates.provenance.v1.Provenance.run_details:type_name -> in_toto_attestation.predicates.provenance.v1.RunDetails 6, // 2: in_toto_attestation.predicates.provenance.v1.BuildDefinition.external_parameters:type_name -> google.protobuf.Struct 6, // 3: in_toto_attestation.predicates.provenance.v1.BuildDefinition.internal_parameters:type_name -> google.protobuf.Struct 7, // 4: in_toto_attestation.predicates.provenance.v1.BuildDefinition.resolved_dependencies:type_name -> in_toto_attestation.v1.ResourceDescriptor 3, // 5: in_toto_attestation.predicates.provenance.v1.RunDetails.builder:type_name -> in_toto_attestation.predicates.provenance.v1.Builder 4, // 6: in_toto_attestation.predicates.provenance.v1.RunDetails.metadata:type_name -> in_toto_attestation.predicates.provenance.v1.BuildMetadata 7, // 7: in_toto_attestation.predicates.provenance.v1.RunDetails.byproducts:type_name -> in_toto_attestation.v1.ResourceDescriptor 5, // 8: in_toto_attestation.predicates.provenance.v1.Builder.version:type_name -> in_toto_attestation.predicates.provenance.v1.Builder.VersionEntry 7, // 9: in_toto_attestation.predicates.provenance.v1.Builder.builder_dependencies:type_name -> in_toto_attestation.v1.ResourceDescriptor 8, // 10: in_toto_attestation.predicates.provenance.v1.BuildMetadata.started_on:type_name -> google.protobuf.Timestamp 8, // 11: in_toto_attestation.predicates.provenance.v1.BuildMetadata.finished_on:type_name -> google.protobuf.Timestamp 12, // [12:12] is the sub-list for method output_type 12, // [12:12] is the sub-list for method input_type 12, // [12:12] is the sub-list for extension type_name 12, // [12:12] is the sub-list for extension extendee 0, // [0:12] is the sub-list for field type_name } func init() { file_in_toto_attestation_predicates_provenance_v1_provenance_proto_init() } func file_in_toto_attestation_predicates_provenance_v1_provenance_proto_init() { if File_in_toto_attestation_predicates_provenance_v1_provenance_proto != nil { return } if !protoimpl.UnsafeEnabled { file_in_toto_attestation_predicates_provenance_v1_provenance_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Provenance); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_in_toto_attestation_predicates_provenance_v1_provenance_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BuildDefinition); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_in_toto_attestation_predicates_provenance_v1_provenance_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RunDetails); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_in_toto_attestation_predicates_provenance_v1_provenance_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Builder); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_in_toto_attestation_predicates_provenance_v1_provenance_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BuildMetadata); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDesc, NumEnums: 0, NumMessages: 6, NumExtensions: 0, NumServices: 0, }, GoTypes: file_in_toto_attestation_predicates_provenance_v1_provenance_proto_goTypes, DependencyIndexes: file_in_toto_attestation_predicates_provenance_v1_provenance_proto_depIdxs, MessageInfos: file_in_toto_attestation_predicates_provenance_v1_provenance_proto_msgTypes, }.Build() File_in_toto_attestation_predicates_provenance_v1_provenance_proto = out.File file_in_toto_attestation_predicates_provenance_v1_provenance_proto_rawDesc = nil file_in_toto_attestation_predicates_provenance_v1_provenance_proto_goTypes = nil file_in_toto_attestation_predicates_provenance_v1_provenance_proto_depIdxs = nil } golang-github-in-toto-attestation-1.1.0/go/predicates/provenance/v1/provenance_test.go000066400000000000000000000142051470602552500311400ustar00rootroot00000000000000/* Tests for SLSA Provenance v1 protos. */ package v1 import ( "fmt" "testing" ita1 "github.com/in-toto/attestation/go/v1" "github.com/stretchr/testify/assert" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/structpb" ) func createTestProvenance(t *testing.T) *Provenance { // Create a Provenance t.Helper() rd := &ita1.ResourceDescriptor{ Name: "theResource", Digest: map[string]string{"alg1": "abc123"}, } builder := &Builder{ Id: "theId", Version: map[string]string{"theComponent": "v0.1"}, BuilderDependencies: []*ita1.ResourceDescriptor{rd}, } buildMeta := &BuildMetadata{ InvocationId: "theInvocationId", } runDetails := &RunDetails{ Builder: builder, Metadata: buildMeta, Byproducts: []*ita1.ResourceDescriptor{rd}, } externalParams, err := structpb.NewStruct(map[string]interface{}{ "param1": map[string]interface{}{ "subKey": "subVal"}}) if err != nil { t.Fatal(err) } buildDef := &BuildDefinition{ BuildType: "theBuildType", ExternalParameters: externalParams, ResolvedDependencies: []*ita1.ResourceDescriptor{rd}, } return &Provenance{ BuildDefinition: buildDef, RunDetails: runDetails, } } func TestJsonUnmarshalProvenance(t *testing.T) { var wantSt = `{"buildDefinition":{"buildType":"theBuildType","externalParameters":{"param1":{"subKey":"subVal"}},"resolvedDependencies":[{"name":"theResource","digest":{"alg1":"abc123"}}]},"runDetails":{"builder":{"id":"theId","version":{"theComponent":"v0.1"},"builderDependencies":[{"name":"theResource","digest":{"alg1":"abc123"}}]},"metadata":{"invocationId":"theInvocationId"},"byproducts":[{"name":"theResource","digest":{"alg1":"abc123"}}]}}` got := &Provenance{} err := protojson.Unmarshal([]byte(wantSt), got) assert.NoError(t, err, "error during JSON unmarshalling") want := createTestProvenance(t) assert.NoError(t, err, "unexpected error during test Statement creation") assert.True(t, proto.Equal(got, want), "protos do not match") } func TestBadProvenanceBuildDefinition(t *testing.T) { tests := map[string]struct { input string err error noErrMessage string }{ "no buildDefinition": { input: `{"buildDefinition":{},"runDetails":{"builder":{"id":"theId","version":{"theComponent":"v0.1"},"builderDependencies":[{"name":"theResource","digest":{"alg1":"abc123"}}]},"metadata":{"invocationId":"theInvocationId"},"byproducts":[{"name":"theResource","digest":{"alg1":"abc123"}}]}}`, err: ErrBuildDefinitionRequired, noErrMessage: "created malformed Provenance (empty buildDefinition)", }, "buildDefinition missing buildType required field": { input: `{"buildDefinition":{"externalParameters":{"param1":{"subKey":"subVal"}},"resolvedDependencies":[{"name":"theResource","digest":{"alg1":"abc123"}}]},"runDetails":{"builder":{"id":"theId","version":{"theComponent":"v0.1"},"builderDependencies":[{"name":"theResource","digest":{"alg1":"abc123"}}]},"metadata":{"invocationId":"theInvocationId"},"byproducts":[{"name":"theResource","digest":{"alg1":"abc123"}}]}}`, err: ErrBuildTypeRequired, noErrMessage: "created malformed Provenance (buildDefinition missing required buildType field)", }, "buildDefinition missing externalParameters required field": { input: `{"buildDefinition":{"buildType":"theBuildType","resolvedDependencies":[{"name":"theResource","digest":{"alg1":"abc123"}}]},"runDetails":{"builder":{"id":"theId","version":{"theComponent":"v0.1"},"builderDependencies":[{"name":"theResource","digest":{"alg1":"abc123"}}]},"metadata":{"invocationId":"theInvocationId"},"byproducts":[{"name":"theResource","digest":{"alg1":"abc123"}}]}}`, err: ErrExternalParamsRequired, noErrMessage: "created malformed Provenance (buildDefinition missing requried externalParameters field)", }, } for name, test := range tests { got := &Provenance{} err := protojson.Unmarshal([]byte(test.input), got) assert.NoError(t, err, fmt.Sprintf("error during JSON unmarshalling in test '%s'", name)) err = got.Validate() assert.ErrorIs(t, err, test.err, fmt.Sprintf("%s in test '%s'", test.noErrMessage, name)) } } func TestBadProvenanceRunDetails(t *testing.T) { tests := map[string]struct { input string err error noErrMessage string }{ "no runDetails": { input: `{"buildDefinition":{"buildType":"theBuildType","externalParameters":{"param1":{"subKey":"subVal"}},"resolvedDependencies":[{"name":"theResource","digest":{"alg1":"abc123"}}]},"runDetails":{}}`, err: ErrRunDetailsRequired, noErrMessage: "created malformed Provenance (empty runDetails)", }, "runDetails missing builder required field": { input: `{"buildDefinition":{"buildType":"theBuildType","externalParameters":{"param1":{"subKey":"subVal"}},"resolvedDependencies":[{"name":"theResource","digest":{"alg1":"abc123"}}]},"runDetails":{"builder":{},"metadata":{"invocationId":"theInvocationId"},"byproducts":[{"name":"theResource","digest":{"alg1":"abc123"}}]}}`, err: ErrBuilderRequired, noErrMessage: "created malformed Provenance (runDetails missing required builder field)", }, "runDetails.builder missing id required field": { input: `{"buildDefinition":{"buildType":"theBuildType","externalParameters":{"param1":{"subKey":"subVal"}},"resolvedDependencies":[{"name":"theResource","digest":{"alg1":"abc123"}}]},"runDetails":{"builder":{"id":"","version":{"theComponent":"v0.1"},"builderDependencies":[{"name":"theResource","digest":{"alg1":"abc123"}}]},"metadata":{"invocationId":"theInvocationId"},"byproducts":[{"name":"theResource","digest":{"alg1":"abc123"}}]}}`, err: ErrBuilderIdRequired, noErrMessage: "created malformed Provenance (runDetails.builder missing requried id field)", }, } for name, test := range tests { got := &Provenance{} err := protojson.Unmarshal([]byte(test.input), got) assert.NoError(t, err, fmt.Sprintf("error during JSON unmarshalling in test '%s'", name)) err = got.Validate() assert.ErrorIs(t, err, test.err, fmt.Sprintf("%s in test '%s'", test.noErrMessage, name)) } } golang-github-in-toto-attestation-1.1.0/go/predicates/release/000077500000000000000000000000001470602552500243425ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/predicates/release/v0/000077500000000000000000000000001470602552500246675ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/predicates/release/v0/release.pb.go000066400000000000000000000154301470602552500272410ustar00rootroot00000000000000// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.1 // protoc v4.24.4 // source: in_toto_attestation/predicates/release/v0/release.proto package v0 import ( 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 Release struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Purl string `protobuf:"bytes,1,opt,name=purl,proto3" json:"purl,omitempty"` ReleaseId *string `protobuf:"bytes,2,opt,name=release_id,json=releaseId,proto3,oneof" json:"release_id,omitempty"` } func (x *Release) Reset() { *x = Release{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_release_v0_release_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Release) String() string { return protoimpl.X.MessageStringOf(x) } func (*Release) ProtoMessage() {} func (x *Release) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_release_v0_release_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 Release.ProtoReflect.Descriptor instead. func (*Release) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_release_v0_release_proto_rawDescGZIP(), []int{0} } func (x *Release) GetPurl() string { if x != nil { return x.Purl } return "" } func (x *Release) GetReleaseId() string { if x != nil && x.ReleaseId != nil { return *x.ReleaseId } return "" } var File_in_toto_attestation_predicates_release_v0_release_proto protoreflect.FileDescriptor var file_in_toto_attestation_predicates_release_v0_release_proto_rawDesc = []byte{ 0x0a, 0x37, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x30, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x29, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x30, 0x22, 0x50, 0x0a, 0x07, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x75, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x6d, 0x0a, 0x32, 0x69, 0x6f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x69, 0x6e, 0x74, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x30, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x30, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_in_toto_attestation_predicates_release_v0_release_proto_rawDescOnce sync.Once file_in_toto_attestation_predicates_release_v0_release_proto_rawDescData = file_in_toto_attestation_predicates_release_v0_release_proto_rawDesc ) func file_in_toto_attestation_predicates_release_v0_release_proto_rawDescGZIP() []byte { file_in_toto_attestation_predicates_release_v0_release_proto_rawDescOnce.Do(func() { file_in_toto_attestation_predicates_release_v0_release_proto_rawDescData = protoimpl.X.CompressGZIP(file_in_toto_attestation_predicates_release_v0_release_proto_rawDescData) }) return file_in_toto_attestation_predicates_release_v0_release_proto_rawDescData } var file_in_toto_attestation_predicates_release_v0_release_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_in_toto_attestation_predicates_release_v0_release_proto_goTypes = []interface{}{ (*Release)(nil), // 0: in_toto_attestation.predicates.release.v0.Release } var file_in_toto_attestation_predicates_release_v0_release_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type 0, // [0:0] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } func init() { file_in_toto_attestation_predicates_release_v0_release_proto_init() } func file_in_toto_attestation_predicates_release_v0_release_proto_init() { if File_in_toto_attestation_predicates_release_v0_release_proto != nil { return } if !protoimpl.UnsafeEnabled { file_in_toto_attestation_predicates_release_v0_release_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Release); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_in_toto_attestation_predicates_release_v0_release_proto_msgTypes[0].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_in_toto_attestation_predicates_release_v0_release_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_in_toto_attestation_predicates_release_v0_release_proto_goTypes, DependencyIndexes: file_in_toto_attestation_predicates_release_v0_release_proto_depIdxs, MessageInfos: file_in_toto_attestation_predicates_release_v0_release_proto_msgTypes, }.Build() File_in_toto_attestation_predicates_release_v0_release_proto = out.File file_in_toto_attestation_predicates_release_v0_release_proto_rawDesc = nil file_in_toto_attestation_predicates_release_v0_release_proto_goTypes = nil file_in_toto_attestation_predicates_release_v0_release_proto_depIdxs = nil } golang-github-in-toto-attestation-1.1.0/go/predicates/scai/000077500000000000000000000000001470602552500236415ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/predicates/scai/v0/000077500000000000000000000000001470602552500241665ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/predicates/scai/v0/scai.go000066400000000000000000000024771470602552500254460ustar00rootroot00000000000000/* Wrapper APIs for SCAI AttributeAssertion and AttributeReport protos. */ package v0 import "fmt" func (a *AttributeAssertion) Validate() error { // at least the attribute field is required if a.GetAttribute() == "" { return fmt.Errorf("The attribute field is required") } // check target and evidence are valid ResourceDescriptors if a.GetTarget() != nil { if err := a.GetTarget().Validate(); err != nil { return fmt.Errorf("Target validation failed with an error: %w", err) } } if a.GetEvidence() != nil { if err := a.GetEvidence().Validate(); err != nil { return fmt.Errorf("Evidence validation failed with an error: %w", err) } } return nil } func (r *AttributeReport) Validate() error { // at least the attributes field is required attrs := r.GetAttributes() if attrs == nil || len(attrs) == 0 { return fmt.Errorf("At least one AttributeAssertion is required") } // ensure all AttributeAssertions are valid for _, a := range attrs { if err := a.Validate(); err != nil { return fmt.Errorf("AttributeAssertion validation failed with an error: %w", err) } } // ensure the producer is a valid ResourceDescriptor if r.GetProducer() != nil { if err := r.GetProducer().Validate(); err != nil { return fmt.Errorf("Producer validation failed with an error: %w", err) } } return nil } golang-github-in-toto-attestation-1.1.0/go/predicates/scai/v0/scai.pb.go000066400000000000000000000310711470602552500260360ustar00rootroot00000000000000// Protobuf definition for the SCAI Attribute Report predicate // (predicateType = https://in-toto.io/attestation/scai/attribute-report/v0.2) // // Validation of all fields is left to the users of this proto. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.1 // protoc v4.24.4 // source: in_toto_attestation/predicates/scai/v0/scai.proto package v0 import ( v1 "github.com/in-toto/attestation/go/v1" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" structpb "google.golang.org/protobuf/types/known/structpb" 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 AttributeAssertion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Attribute string `protobuf:"bytes,1,opt,name=attribute,proto3" json:"attribute,omitempty"` // required Target *v1.ResourceDescriptor `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"` Conditions *structpb.Struct `protobuf:"bytes,3,opt,name=conditions,proto3" json:"conditions,omitempty"` Evidence *v1.ResourceDescriptor `protobuf:"bytes,4,opt,name=evidence,proto3" json:"evidence,omitempty"` } func (x *AttributeAssertion) Reset() { *x = AttributeAssertion{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_scai_v0_scai_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AttributeAssertion) String() string { return protoimpl.X.MessageStringOf(x) } func (*AttributeAssertion) ProtoMessage() {} func (x *AttributeAssertion) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_scai_v0_scai_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 AttributeAssertion.ProtoReflect.Descriptor instead. func (*AttributeAssertion) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_scai_v0_scai_proto_rawDescGZIP(), []int{0} } func (x *AttributeAssertion) GetAttribute() string { if x != nil { return x.Attribute } return "" } func (x *AttributeAssertion) GetTarget() *v1.ResourceDescriptor { if x != nil { return x.Target } return nil } func (x *AttributeAssertion) GetConditions() *structpb.Struct { if x != nil { return x.Conditions } return nil } func (x *AttributeAssertion) GetEvidence() *v1.ResourceDescriptor { if x != nil { return x.Evidence } return nil } type AttributeReport struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Attributes []*AttributeAssertion `protobuf:"bytes,1,rep,name=attributes,proto3" json:"attributes,omitempty"` Producer *v1.ResourceDescriptor `protobuf:"bytes,2,opt,name=producer,proto3" json:"producer,omitempty"` } func (x *AttributeReport) Reset() { *x = AttributeReport{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_scai_v0_scai_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AttributeReport) String() string { return protoimpl.X.MessageStringOf(x) } func (*AttributeReport) ProtoMessage() {} func (x *AttributeReport) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_scai_v0_scai_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 AttributeReport.ProtoReflect.Descriptor instead. func (*AttributeReport) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_scai_v0_scai_proto_rawDescGZIP(), []int{1} } func (x *AttributeReport) GetAttributes() []*AttributeAssertion { if x != nil { return x.Attributes } return nil } func (x *AttributeReport) GetProducer() *v1.ResourceDescriptor { if x != nil { return x.Producer } return nil } var File_in_toto_attestation_predicates_scai_v0_scai_proto protoreflect.FileDescriptor var file_in_toto_attestation_predicates_scai_v0_scai_proto_rawDesc = []byte{ 0x0a, 0x31, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x73, 0x63, 0x61, 0x69, 0x2f, 0x76, 0x30, 0x2f, 0x73, 0x63, 0x61, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x26, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x73, 0x63, 0x61, 0x69, 0x2e, 0x76, 0x30, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf7, 0x01, 0x0a, 0x12, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xb5, 0x01, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x5a, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x73, 0x63, 0x61, 0x69, 0x2e, 0x76, 0x30, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x42, 0x67, 0x0a, 0x2f, 0x69, 0x6f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x69, 0x6e, 0x74, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x73, 0x63, 0x61, 0x69, 0x2e, 0x76, 0x30, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x73, 0x63, 0x61, 0x69, 0x2f, 0x76, 0x30, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_in_toto_attestation_predicates_scai_v0_scai_proto_rawDescOnce sync.Once file_in_toto_attestation_predicates_scai_v0_scai_proto_rawDescData = file_in_toto_attestation_predicates_scai_v0_scai_proto_rawDesc ) func file_in_toto_attestation_predicates_scai_v0_scai_proto_rawDescGZIP() []byte { file_in_toto_attestation_predicates_scai_v0_scai_proto_rawDescOnce.Do(func() { file_in_toto_attestation_predicates_scai_v0_scai_proto_rawDescData = protoimpl.X.CompressGZIP(file_in_toto_attestation_predicates_scai_v0_scai_proto_rawDescData) }) return file_in_toto_attestation_predicates_scai_v0_scai_proto_rawDescData } var file_in_toto_attestation_predicates_scai_v0_scai_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_in_toto_attestation_predicates_scai_v0_scai_proto_goTypes = []interface{}{ (*AttributeAssertion)(nil), // 0: in_toto_attestation.predicates.scai.v0.AttributeAssertion (*AttributeReport)(nil), // 1: in_toto_attestation.predicates.scai.v0.AttributeReport (*v1.ResourceDescriptor)(nil), // 2: in_toto_attestation.v1.ResourceDescriptor (*structpb.Struct)(nil), // 3: google.protobuf.Struct } var file_in_toto_attestation_predicates_scai_v0_scai_proto_depIdxs = []int32{ 2, // 0: in_toto_attestation.predicates.scai.v0.AttributeAssertion.target:type_name -> in_toto_attestation.v1.ResourceDescriptor 3, // 1: in_toto_attestation.predicates.scai.v0.AttributeAssertion.conditions:type_name -> google.protobuf.Struct 2, // 2: in_toto_attestation.predicates.scai.v0.AttributeAssertion.evidence:type_name -> in_toto_attestation.v1.ResourceDescriptor 0, // 3: in_toto_attestation.predicates.scai.v0.AttributeReport.attributes:type_name -> in_toto_attestation.predicates.scai.v0.AttributeAssertion 2, // 4: in_toto_attestation.predicates.scai.v0.AttributeReport.producer:type_name -> in_toto_attestation.v1.ResourceDescriptor 5, // [5:5] is the sub-list for method output_type 5, // [5:5] is the sub-list for method input_type 5, // [5:5] is the sub-list for extension type_name 5, // [5:5] is the sub-list for extension extendee 0, // [0:5] is the sub-list for field type_name } func init() { file_in_toto_attestation_predicates_scai_v0_scai_proto_init() } func file_in_toto_attestation_predicates_scai_v0_scai_proto_init() { if File_in_toto_attestation_predicates_scai_v0_scai_proto != nil { return } if !protoimpl.UnsafeEnabled { file_in_toto_attestation_predicates_scai_v0_scai_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AttributeAssertion); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_in_toto_attestation_predicates_scai_v0_scai_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AttributeReport); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_in_toto_attestation_predicates_scai_v0_scai_proto_rawDesc, NumEnums: 0, NumMessages: 2, NumExtensions: 0, NumServices: 0, }, GoTypes: file_in_toto_attestation_predicates_scai_v0_scai_proto_goTypes, DependencyIndexes: file_in_toto_attestation_predicates_scai_v0_scai_proto_depIdxs, MessageInfos: file_in_toto_attestation_predicates_scai_v0_scai_proto_msgTypes, }.Build() File_in_toto_attestation_predicates_scai_v0_scai_proto = out.File file_in_toto_attestation_predicates_scai_v0_scai_proto_rawDesc = nil file_in_toto_attestation_predicates_scai_v0_scai_proto_goTypes = nil file_in_toto_attestation_predicates_scai_v0_scai_proto_depIdxs = nil } golang-github-in-toto-attestation-1.1.0/go/predicates/test_result/000077500000000000000000000000001470602552500252775ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/predicates/test_result/v0/000077500000000000000000000000001470602552500256245ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/predicates/test_result/v0/test_result.pb.go000066400000000000000000000230071470602552500311320ustar00rootroot00000000000000// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.1 // protoc v4.24.4 // source: in_toto_attestation/predicates/test_result/v0/test_result.proto package v0 import ( v1 "github.com/in-toto/attestation/go/v1" 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 TestResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Result string `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` Configuration []*v1.ResourceDescriptor `protobuf:"bytes,2,rep,name=configuration,proto3" json:"configuration,omitempty"` Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` PassedTests []string `protobuf:"bytes,4,rep,name=passed_tests,json=passedTests,proto3" json:"passed_tests,omitempty"` WarnedTests []string `protobuf:"bytes,5,rep,name=warned_tests,json=warnedTests,proto3" json:"warned_tests,omitempty"` FailedTests []string `protobuf:"bytes,6,rep,name=failed_tests,json=failedTests,proto3" json:"failed_tests,omitempty"` } func (x *TestResult) Reset() { *x = TestResult{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_test_result_v0_test_result_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TestResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*TestResult) ProtoMessage() {} func (x *TestResult) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_test_result_v0_test_result_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 TestResult.ProtoReflect.Descriptor instead. func (*TestResult) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_test_result_v0_test_result_proto_rawDescGZIP(), []int{0} } func (x *TestResult) GetResult() string { if x != nil { return x.Result } return "" } func (x *TestResult) GetConfiguration() []*v1.ResourceDescriptor { if x != nil { return x.Configuration } return nil } func (x *TestResult) GetUrl() string { if x != nil { return x.Url } return "" } func (x *TestResult) GetPassedTests() []string { if x != nil { return x.PassedTests } return nil } func (x *TestResult) GetWarnedTests() []string { if x != nil { return x.WarnedTests } return nil } func (x *TestResult) GetFailedTests() []string { if x != nil { return x.FailedTests } return nil } var File_in_toto_attestation_predicates_test_result_v0_test_result_proto protoreflect.FileDescriptor var file_in_toto_attestation_predicates_test_result_v0_test_result_proto_rawDesc = []byte{ 0x0a, 0x3f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2f, 0x76, 0x30, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x2d, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x76, 0x30, 0x1a, 0x30, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf1, 0x01, 0x0a, 0x0a, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x50, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x42, 0x75, 0x0a, 0x36, 0x69, 0x6f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x69, 0x6e, 0x74, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x76, 0x30, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2f, 0x76, 0x30, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_in_toto_attestation_predicates_test_result_v0_test_result_proto_rawDescOnce sync.Once file_in_toto_attestation_predicates_test_result_v0_test_result_proto_rawDescData = file_in_toto_attestation_predicates_test_result_v0_test_result_proto_rawDesc ) func file_in_toto_attestation_predicates_test_result_v0_test_result_proto_rawDescGZIP() []byte { file_in_toto_attestation_predicates_test_result_v0_test_result_proto_rawDescOnce.Do(func() { file_in_toto_attestation_predicates_test_result_v0_test_result_proto_rawDescData = protoimpl.X.CompressGZIP(file_in_toto_attestation_predicates_test_result_v0_test_result_proto_rawDescData) }) return file_in_toto_attestation_predicates_test_result_v0_test_result_proto_rawDescData } var file_in_toto_attestation_predicates_test_result_v0_test_result_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_in_toto_attestation_predicates_test_result_v0_test_result_proto_goTypes = []interface{}{ (*TestResult)(nil), // 0: in_toto_attestation.predicates.test_result.v0.TestResult (*v1.ResourceDescriptor)(nil), // 1: in_toto_attestation.v1.ResourceDescriptor } var file_in_toto_attestation_predicates_test_result_v0_test_result_proto_depIdxs = []int32{ 1, // 0: in_toto_attestation.predicates.test_result.v0.TestResult.configuration:type_name -> in_toto_attestation.v1.ResourceDescriptor 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name 1, // [1:1] is the sub-list for extension extendee 0, // [0:1] is the sub-list for field type_name } func init() { file_in_toto_attestation_predicates_test_result_v0_test_result_proto_init() } func file_in_toto_attestation_predicates_test_result_v0_test_result_proto_init() { if File_in_toto_attestation_predicates_test_result_v0_test_result_proto != nil { return } if !protoimpl.UnsafeEnabled { file_in_toto_attestation_predicates_test_result_v0_test_result_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_in_toto_attestation_predicates_test_result_v0_test_result_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_in_toto_attestation_predicates_test_result_v0_test_result_proto_goTypes, DependencyIndexes: file_in_toto_attestation_predicates_test_result_v0_test_result_proto_depIdxs, MessageInfos: file_in_toto_attestation_predicates_test_result_v0_test_result_proto_msgTypes, }.Build() File_in_toto_attestation_predicates_test_result_v0_test_result_proto = out.File file_in_toto_attestation_predicates_test_result_v0_test_result_proto_rawDesc = nil file_in_toto_attestation_predicates_test_result_v0_test_result_proto_goTypes = nil file_in_toto_attestation_predicates_test_result_v0_test_result_proto_depIdxs = nil } golang-github-in-toto-attestation-1.1.0/go/predicates/vsa/000077500000000000000000000000001470602552500235135ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/predicates/vsa/v0/000077500000000000000000000000001470602552500240405ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/predicates/vsa/v0/vsa.pb.go000066400000000000000000000550101470602552500255610ustar00rootroot00000000000000// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.1 // protoc v4.24.4 // source: in_toto_attestation/predicates/vsa/v0/vsa.proto package v0 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // Proto representation of predicate type https://slsa.dev/verification_summary/v0.2 // Validation of all fields is left to the users of this proto. type VerificationSummary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Verifier *VerificationSummary_Verifier `protobuf:"bytes,1,opt,name=verifier,proto3" json:"verifier,omitempty"` TimeVerified *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=time_verified,proto3" json:"time_verified,omitempty"` ResourceUri string `protobuf:"bytes,3,opt,name=resource_uri,proto3" json:"resource_uri,omitempty"` Policy *VerificationSummary_Policy `protobuf:"bytes,4,opt,name=policy,proto3" json:"policy,omitempty"` InputAttestations []*VerificationSummary_InputAttestation `protobuf:"bytes,5,rep,name=input_attestations,proto3" json:"input_attestations,omitempty"` VerificationResult string `protobuf:"bytes,6,opt,name=verification_result,proto3" json:"verification_result,omitempty"` PolicyLevel string `protobuf:"bytes,7,opt,name=policy_level,proto3" json:"policy_level,omitempty"` DependencyLevels map[string]uint64 `protobuf:"bytes,8,rep,name=dependency_levels,proto3" json:"dependency_levels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *VerificationSummary) Reset() { *x = VerificationSummary{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_vsa_v0_vsa_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VerificationSummary) String() string { return protoimpl.X.MessageStringOf(x) } func (*VerificationSummary) ProtoMessage() {} func (x *VerificationSummary) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_vsa_v0_vsa_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 VerificationSummary.ProtoReflect.Descriptor instead. func (*VerificationSummary) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_vsa_v0_vsa_proto_rawDescGZIP(), []int{0} } func (x *VerificationSummary) GetVerifier() *VerificationSummary_Verifier { if x != nil { return x.Verifier } return nil } func (x *VerificationSummary) GetTimeVerified() *timestamppb.Timestamp { if x != nil { return x.TimeVerified } return nil } func (x *VerificationSummary) GetResourceUri() string { if x != nil { return x.ResourceUri } return "" } func (x *VerificationSummary) GetPolicy() *VerificationSummary_Policy { if x != nil { return x.Policy } return nil } func (x *VerificationSummary) GetInputAttestations() []*VerificationSummary_InputAttestation { if x != nil { return x.InputAttestations } return nil } func (x *VerificationSummary) GetVerificationResult() string { if x != nil { return x.VerificationResult } return "" } func (x *VerificationSummary) GetPolicyLevel() string { if x != nil { return x.PolicyLevel } return "" } func (x *VerificationSummary) GetDependencyLevels() map[string]uint64 { if x != nil { return x.DependencyLevels } return nil } type VerificationSummary_Verifier struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } func (x *VerificationSummary_Verifier) Reset() { *x = VerificationSummary_Verifier{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_vsa_v0_vsa_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VerificationSummary_Verifier) String() string { return protoimpl.X.MessageStringOf(x) } func (*VerificationSummary_Verifier) ProtoMessage() {} func (x *VerificationSummary_Verifier) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_vsa_v0_vsa_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 VerificationSummary_Verifier.ProtoReflect.Descriptor instead. func (*VerificationSummary_Verifier) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_vsa_v0_vsa_proto_rawDescGZIP(), []int{0, 0} } func (x *VerificationSummary_Verifier) GetId() string { if x != nil { return x.Id } return "" } type VerificationSummary_Policy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` Digest map[string]string `protobuf:"bytes,2,rep,name=digest,proto3" json:"digest,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *VerificationSummary_Policy) Reset() { *x = VerificationSummary_Policy{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_vsa_v0_vsa_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VerificationSummary_Policy) String() string { return protoimpl.X.MessageStringOf(x) } func (*VerificationSummary_Policy) ProtoMessage() {} func (x *VerificationSummary_Policy) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_vsa_v0_vsa_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 VerificationSummary_Policy.ProtoReflect.Descriptor instead. func (*VerificationSummary_Policy) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_vsa_v0_vsa_proto_rawDescGZIP(), []int{0, 1} } func (x *VerificationSummary_Policy) GetUri() string { if x != nil { return x.Uri } return "" } func (x *VerificationSummary_Policy) GetDigest() map[string]string { if x != nil { return x.Digest } return nil } type VerificationSummary_InputAttestation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` Digest map[string]string `protobuf:"bytes,2,rep,name=digest,proto3" json:"digest,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *VerificationSummary_InputAttestation) Reset() { *x = VerificationSummary_InputAttestation{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_vsa_v0_vsa_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VerificationSummary_InputAttestation) String() string { return protoimpl.X.MessageStringOf(x) } func (*VerificationSummary_InputAttestation) ProtoMessage() {} func (x *VerificationSummary_InputAttestation) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_vsa_v0_vsa_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 VerificationSummary_InputAttestation.ProtoReflect.Descriptor instead. func (*VerificationSummary_InputAttestation) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_vsa_v0_vsa_proto_rawDescGZIP(), []int{0, 2} } func (x *VerificationSummary_InputAttestation) GetUri() string { if x != nil { return x.Uri } return "" } func (x *VerificationSummary_InputAttestation) GetDigest() map[string]string { if x != nil { return x.Digest } return nil } var File_in_toto_attestation_predicates_vsa_v0_vsa_proto protoreflect.FileDescriptor var file_in_toto_attestation_predicates_vsa_v0_vsa_proto_rawDesc = []byte{ 0x0a, 0x2f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x76, 0x73, 0x61, 0x2f, 0x76, 0x30, 0x2f, 0x76, 0x73, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x25, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x30, 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, 0xfd, 0x08, 0x0a, 0x13, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x5f, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x30, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x02, 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, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x12, 0x59, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x30, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x7b, 0x0a, 0x12, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x30, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x7e, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x30, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x1a, 0x1a, 0x0a, 0x08, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x1a, 0xbc, 0x01, 0x0a, 0x06, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x65, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x30, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xd0, 0x01, 0x0a, 0x10, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x6f, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x57, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x30, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x65, 0x0a, 0x2e, 0x69, 0x6f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x69, 0x6e, 0x74, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x30, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x76, 0x73, 0x61, 0x2f, 0x76, 0x30, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_in_toto_attestation_predicates_vsa_v0_vsa_proto_rawDescOnce sync.Once file_in_toto_attestation_predicates_vsa_v0_vsa_proto_rawDescData = file_in_toto_attestation_predicates_vsa_v0_vsa_proto_rawDesc ) func file_in_toto_attestation_predicates_vsa_v0_vsa_proto_rawDescGZIP() []byte { file_in_toto_attestation_predicates_vsa_v0_vsa_proto_rawDescOnce.Do(func() { file_in_toto_attestation_predicates_vsa_v0_vsa_proto_rawDescData = protoimpl.X.CompressGZIP(file_in_toto_attestation_predicates_vsa_v0_vsa_proto_rawDescData) }) return file_in_toto_attestation_predicates_vsa_v0_vsa_proto_rawDescData } var file_in_toto_attestation_predicates_vsa_v0_vsa_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_in_toto_attestation_predicates_vsa_v0_vsa_proto_goTypes = []interface{}{ (*VerificationSummary)(nil), // 0: in_toto_attestation.predicates.vsa.v0.VerificationSummary (*VerificationSummary_Verifier)(nil), // 1: in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier (*VerificationSummary_Policy)(nil), // 2: in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy (*VerificationSummary_InputAttestation)(nil), // 3: in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation nil, // 4: in_toto_attestation.predicates.vsa.v0.VerificationSummary.DependencyLevelsEntry nil, // 5: in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy.DigestEntry nil, // 6: in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation.DigestEntry (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp } var file_in_toto_attestation_predicates_vsa_v0_vsa_proto_depIdxs = []int32{ 1, // 0: in_toto_attestation.predicates.vsa.v0.VerificationSummary.verifier:type_name -> in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier 7, // 1: in_toto_attestation.predicates.vsa.v0.VerificationSummary.time_verified:type_name -> google.protobuf.Timestamp 2, // 2: in_toto_attestation.predicates.vsa.v0.VerificationSummary.policy:type_name -> in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy 3, // 3: in_toto_attestation.predicates.vsa.v0.VerificationSummary.input_attestations:type_name -> in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation 4, // 4: in_toto_attestation.predicates.vsa.v0.VerificationSummary.dependency_levels:type_name -> in_toto_attestation.predicates.vsa.v0.VerificationSummary.DependencyLevelsEntry 5, // 5: in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy.digest:type_name -> in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy.DigestEntry 6, // 6: in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation.digest:type_name -> in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation.DigestEntry 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_in_toto_attestation_predicates_vsa_v0_vsa_proto_init() } func file_in_toto_attestation_predicates_vsa_v0_vsa_proto_init() { if File_in_toto_attestation_predicates_vsa_v0_vsa_proto != nil { return } if !protoimpl.UnsafeEnabled { file_in_toto_attestation_predicates_vsa_v0_vsa_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VerificationSummary); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_in_toto_attestation_predicates_vsa_v0_vsa_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VerificationSummary_Verifier); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_in_toto_attestation_predicates_vsa_v0_vsa_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VerificationSummary_Policy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_in_toto_attestation_predicates_vsa_v0_vsa_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VerificationSummary_InputAttestation); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_in_toto_attestation_predicates_vsa_v0_vsa_proto_rawDesc, NumEnums: 0, NumMessages: 7, NumExtensions: 0, NumServices: 0, }, GoTypes: file_in_toto_attestation_predicates_vsa_v0_vsa_proto_goTypes, DependencyIndexes: file_in_toto_attestation_predicates_vsa_v0_vsa_proto_depIdxs, MessageInfos: file_in_toto_attestation_predicates_vsa_v0_vsa_proto_msgTypes, }.Build() File_in_toto_attestation_predicates_vsa_v0_vsa_proto = out.File file_in_toto_attestation_predicates_vsa_v0_vsa_proto_rawDesc = nil file_in_toto_attestation_predicates_vsa_v0_vsa_proto_goTypes = nil file_in_toto_attestation_predicates_vsa_v0_vsa_proto_depIdxs = nil } golang-github-in-toto-attestation-1.1.0/go/predicates/vsa/v1/000077500000000000000000000000001470602552500240415ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/predicates/vsa/v1/vsa.pb.go000066400000000000000000000561561470602552500255760ustar00rootroot00000000000000// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.1 // protoc v4.24.4 // source: in_toto_attestation/predicates/vsa/v1/vsa.proto package v1 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // Proto representation of predicate type https://slsa.dev/verification_summary/v1 // Validation of all fields is left to the users of this proto. type VerificationSummary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Verifier *VerificationSummary_Verifier `protobuf:"bytes,1,opt,name=verifier,proto3" json:"verifier,omitempty"` TimeVerified *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=time_verified,json=timeVerified,proto3" json:"time_verified,omitempty"` ResourceUri string `protobuf:"bytes,3,opt,name=resource_uri,json=resourceUri,proto3" json:"resource_uri,omitempty"` Policy *VerificationSummary_Policy `protobuf:"bytes,4,opt,name=policy,proto3" json:"policy,omitempty"` InputAttestations []*VerificationSummary_InputAttestation `protobuf:"bytes,5,rep,name=input_attestations,json=inputAttestations,proto3" json:"input_attestations,omitempty"` VerificationResult string `protobuf:"bytes,6,opt,name=verification_result,json=verificationResult,proto3" json:"verification_result,omitempty"` VerifiedLevels string `protobuf:"bytes,7,opt,name=verified_levels,json=verifiedLevels,proto3" json:"verified_levels,omitempty"` DependencyLevels map[string]uint64 `protobuf:"bytes,8,rep,name=dependency_levels,json=dependencyLevels,proto3" json:"dependency_levels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` SlsaVersion string `protobuf:"bytes,9,opt,name=slsa_version,json=slsaVersion,proto3" json:"slsa_version,omitempty"` } func (x *VerificationSummary) Reset() { *x = VerificationSummary{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_vsa_v1_vsa_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VerificationSummary) String() string { return protoimpl.X.MessageStringOf(x) } func (*VerificationSummary) ProtoMessage() {} func (x *VerificationSummary) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_vsa_v1_vsa_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 VerificationSummary.ProtoReflect.Descriptor instead. func (*VerificationSummary) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_vsa_v1_vsa_proto_rawDescGZIP(), []int{0} } func (x *VerificationSummary) GetVerifier() *VerificationSummary_Verifier { if x != nil { return x.Verifier } return nil } func (x *VerificationSummary) GetTimeVerified() *timestamppb.Timestamp { if x != nil { return x.TimeVerified } return nil } func (x *VerificationSummary) GetResourceUri() string { if x != nil { return x.ResourceUri } return "" } func (x *VerificationSummary) GetPolicy() *VerificationSummary_Policy { if x != nil { return x.Policy } return nil } func (x *VerificationSummary) GetInputAttestations() []*VerificationSummary_InputAttestation { if x != nil { return x.InputAttestations } return nil } func (x *VerificationSummary) GetVerificationResult() string { if x != nil { return x.VerificationResult } return "" } func (x *VerificationSummary) GetVerifiedLevels() string { if x != nil { return x.VerifiedLevels } return "" } func (x *VerificationSummary) GetDependencyLevels() map[string]uint64 { if x != nil { return x.DependencyLevels } return nil } func (x *VerificationSummary) GetSlsaVersion() string { if x != nil { return x.SlsaVersion } return "" } type VerificationSummary_Verifier struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } func (x *VerificationSummary_Verifier) Reset() { *x = VerificationSummary_Verifier{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_vsa_v1_vsa_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VerificationSummary_Verifier) String() string { return protoimpl.X.MessageStringOf(x) } func (*VerificationSummary_Verifier) ProtoMessage() {} func (x *VerificationSummary_Verifier) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_vsa_v1_vsa_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 VerificationSummary_Verifier.ProtoReflect.Descriptor instead. func (*VerificationSummary_Verifier) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_vsa_v1_vsa_proto_rawDescGZIP(), []int{0, 0} } func (x *VerificationSummary_Verifier) GetId() string { if x != nil { return x.Id } return "" } type VerificationSummary_Policy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` Digest map[string]string `protobuf:"bytes,2,rep,name=digest,proto3" json:"digest,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *VerificationSummary_Policy) Reset() { *x = VerificationSummary_Policy{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_vsa_v1_vsa_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VerificationSummary_Policy) String() string { return protoimpl.X.MessageStringOf(x) } func (*VerificationSummary_Policy) ProtoMessage() {} func (x *VerificationSummary_Policy) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_vsa_v1_vsa_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 VerificationSummary_Policy.ProtoReflect.Descriptor instead. func (*VerificationSummary_Policy) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_vsa_v1_vsa_proto_rawDescGZIP(), []int{0, 1} } func (x *VerificationSummary_Policy) GetUri() string { if x != nil { return x.Uri } return "" } func (x *VerificationSummary_Policy) GetDigest() map[string]string { if x != nil { return x.Digest } return nil } type VerificationSummary_InputAttestation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` Digest map[string]string `protobuf:"bytes,2,rep,name=digest,proto3" json:"digest,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *VerificationSummary_InputAttestation) Reset() { *x = VerificationSummary_InputAttestation{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_predicates_vsa_v1_vsa_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VerificationSummary_InputAttestation) String() string { return protoimpl.X.MessageStringOf(x) } func (*VerificationSummary_InputAttestation) ProtoMessage() {} func (x *VerificationSummary_InputAttestation) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_predicates_vsa_v1_vsa_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 VerificationSummary_InputAttestation.ProtoReflect.Descriptor instead. func (*VerificationSummary_InputAttestation) Descriptor() ([]byte, []int) { return file_in_toto_attestation_predicates_vsa_v1_vsa_proto_rawDescGZIP(), []int{0, 2} } func (x *VerificationSummary_InputAttestation) GetUri() string { if x != nil { return x.Uri } return "" } func (x *VerificationSummary_InputAttestation) GetDigest() map[string]string { if x != nil { return x.Digest } return nil } var File_in_toto_attestation_predicates_vsa_v1_vsa_proto protoreflect.FileDescriptor var file_in_toto_attestation_predicates_vsa_v1_vsa_proto_rawDesc = []byte{ 0x0a, 0x2f, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x76, 0x73, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x73, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x25, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x31, 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, 0xa0, 0x09, 0x0a, 0x13, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x5f, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x02, 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, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x72, 0x69, 0x12, 0x59, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x7a, 0x0a, 0x12, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x12, 0x7d, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6c, 0x73, 0x61, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6c, 0x73, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x1a, 0x0a, 0x08, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x1a, 0xbc, 0x01, 0x0a, 0x06, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x65, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xd0, 0x01, 0x0a, 0x10, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x6f, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x57, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x65, 0x0a, 0x2e, 0x69, 0x6f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x69, 0x6e, 0x74, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x76, 0x73, 0x61, 0x2e, 0x76, 0x31, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x76, 0x73, 0x61, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_in_toto_attestation_predicates_vsa_v1_vsa_proto_rawDescOnce sync.Once file_in_toto_attestation_predicates_vsa_v1_vsa_proto_rawDescData = file_in_toto_attestation_predicates_vsa_v1_vsa_proto_rawDesc ) func file_in_toto_attestation_predicates_vsa_v1_vsa_proto_rawDescGZIP() []byte { file_in_toto_attestation_predicates_vsa_v1_vsa_proto_rawDescOnce.Do(func() { file_in_toto_attestation_predicates_vsa_v1_vsa_proto_rawDescData = protoimpl.X.CompressGZIP(file_in_toto_attestation_predicates_vsa_v1_vsa_proto_rawDescData) }) return file_in_toto_attestation_predicates_vsa_v1_vsa_proto_rawDescData } var file_in_toto_attestation_predicates_vsa_v1_vsa_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_in_toto_attestation_predicates_vsa_v1_vsa_proto_goTypes = []interface{}{ (*VerificationSummary)(nil), // 0: in_toto_attestation.predicates.vsa.v1.VerificationSummary (*VerificationSummary_Verifier)(nil), // 1: in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier (*VerificationSummary_Policy)(nil), // 2: in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy (*VerificationSummary_InputAttestation)(nil), // 3: in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation nil, // 4: in_toto_attestation.predicates.vsa.v1.VerificationSummary.DependencyLevelsEntry nil, // 5: in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy.DigestEntry nil, // 6: in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation.DigestEntry (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp } var file_in_toto_attestation_predicates_vsa_v1_vsa_proto_depIdxs = []int32{ 1, // 0: in_toto_attestation.predicates.vsa.v1.VerificationSummary.verifier:type_name -> in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier 7, // 1: in_toto_attestation.predicates.vsa.v1.VerificationSummary.time_verified:type_name -> google.protobuf.Timestamp 2, // 2: in_toto_attestation.predicates.vsa.v1.VerificationSummary.policy:type_name -> in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy 3, // 3: in_toto_attestation.predicates.vsa.v1.VerificationSummary.input_attestations:type_name -> in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation 4, // 4: in_toto_attestation.predicates.vsa.v1.VerificationSummary.dependency_levels:type_name -> in_toto_attestation.predicates.vsa.v1.VerificationSummary.DependencyLevelsEntry 5, // 5: in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy.digest:type_name -> in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy.DigestEntry 6, // 6: in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation.digest:type_name -> in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation.DigestEntry 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_in_toto_attestation_predicates_vsa_v1_vsa_proto_init() } func file_in_toto_attestation_predicates_vsa_v1_vsa_proto_init() { if File_in_toto_attestation_predicates_vsa_v1_vsa_proto != nil { return } if !protoimpl.UnsafeEnabled { file_in_toto_attestation_predicates_vsa_v1_vsa_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VerificationSummary); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_in_toto_attestation_predicates_vsa_v1_vsa_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VerificationSummary_Verifier); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_in_toto_attestation_predicates_vsa_v1_vsa_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VerificationSummary_Policy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_in_toto_attestation_predicates_vsa_v1_vsa_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VerificationSummary_InputAttestation); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_in_toto_attestation_predicates_vsa_v1_vsa_proto_rawDesc, NumEnums: 0, NumMessages: 7, NumExtensions: 0, NumServices: 0, }, GoTypes: file_in_toto_attestation_predicates_vsa_v1_vsa_proto_goTypes, DependencyIndexes: file_in_toto_attestation_predicates_vsa_v1_vsa_proto_depIdxs, MessageInfos: file_in_toto_attestation_predicates_vsa_v1_vsa_proto_msgTypes, }.Build() File_in_toto_attestation_predicates_vsa_v1_vsa_proto = out.File file_in_toto_attestation_predicates_vsa_v1_vsa_proto_rawDesc = nil file_in_toto_attestation_predicates_vsa_v1_vsa_proto_goTypes = nil file_in_toto_attestation_predicates_vsa_v1_vsa_proto_depIdxs = nil } golang-github-in-toto-attestation-1.1.0/go/v1/000077500000000000000000000000001470602552500211255ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/go/v1/resource_descriptor.go000066400000000000000000000041731470602552500255460ustar00rootroot00000000000000/* Wrapper APIs for in-toto attestation ResourceDescriptor protos. */ package v1 import ( "encoding/hex" "errors" "fmt" ) var ( ErrIncorrectDigestLength = errors.New("digest has incorrect length") ErrInvalidDigestEncoding = errors.New("digest is not valid hex-encoded string") ErrRDRequiredField = errors.New("at least one of name, URI, or digest are required") ) // Indicates if a given fixed-size hash algorithm is supported by default and returns the algorithm's // digest size in bytes, if supported. We assume gitCommit and dirHash are aliases for sha1 and sha256, respectively. // // SHA digest sizes from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf // MD5 digest size from https://www.rfc-editor.org/rfc/rfc1321.html#section-1 func isSupportedFixedSizeAlgorithm(alg string) (bool, int) { algos := map[string]int{"md5": 16, "sha1": 20, "sha224": 28, "sha512_224": 28, "sha256": 32, "sha512_256": 32, "sha384": 48, "sha512": 64, "sha3_224": 28, "sha3_256": 32, "sha3_384": 48, "sha3_512": 64, "gitCommit": 20, "dirHash": 32} size, ok := algos[alg] return ok, size } func (d *ResourceDescriptor) Validate() error { // at least one of name, URI or digest are required if d.GetName() == "" && d.GetUri() == "" && len(d.GetDigest()) == 0 { return ErrRDRequiredField } if len(d.GetDigest()) > 0 { for alg, digest := range d.GetDigest() { // Per https://github.com/in-toto/attestation/blob/main/spec/v1/digest_set.md // check encoding and length for supported algorithms; // use of custom, unsupported algorithms is allowed and does not not generate validation errors. supported, size := isSupportedFixedSizeAlgorithm(alg) if supported { // the in-toto spec expects a hex-encoded string in DigestSets for supported algorithms hashBytes, err := hex.DecodeString(digest) if err != nil { return fmt.Errorf("%w (%s: %s)", ErrInvalidDigestEncoding, alg, digest) } // check the length of the digest if len(hashBytes) != size { return fmt.Errorf("%w: got %d bytes, want %d bytes (%s: %s)", ErrIncorrectDigestLength, len(hashBytes), size, alg, digest) } } } } return nil } golang-github-in-toto-attestation-1.1.0/go/v1/resource_descriptor.pb.go000066400000000000000000000244011470602552500261420ustar00rootroot00000000000000// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.1 // protoc v4.24.4 // source: in_toto_attestation/v1/resource_descriptor.proto package v1 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" structpb "google.golang.org/protobuf/types/known/structpb" 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) ) // Proto representation of the in-toto v1 ResourceDescriptor. // https://github.com/in-toto/attestation/blob/main/spec/v1/resource_descriptor.md // Validation of all fields is left to the users of this proto. type ResourceDescriptor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` Digest map[string]string `protobuf:"bytes,3,rep,name=digest,proto3" json:"digest,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Content []byte `protobuf:"bytes,4,opt,name=content,proto3" json:"content,omitempty"` DownloadLocation string `protobuf:"bytes,5,opt,name=download_location,json=downloadLocation,proto3" json:"download_location,omitempty"` MediaType string `protobuf:"bytes,6,opt,name=media_type,json=mediaType,proto3" json:"media_type,omitempty"` // Per the Struct protobuf spec, this type corresponds to // a JSON Object, which is truly a map under the hood. // So, the Struct a) is still consistent with our specification for // the `annotations` field, and b) has native support in some language // bindings making their use easier in implementations. // See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct Annotations *structpb.Struct `protobuf:"bytes,7,opt,name=annotations,proto3" json:"annotations,omitempty"` } func (x *ResourceDescriptor) Reset() { *x = ResourceDescriptor{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_v1_resource_descriptor_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ResourceDescriptor) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResourceDescriptor) ProtoMessage() {} func (x *ResourceDescriptor) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_v1_resource_descriptor_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 ResourceDescriptor.ProtoReflect.Descriptor instead. func (*ResourceDescriptor) Descriptor() ([]byte, []int) { return file_in_toto_attestation_v1_resource_descriptor_proto_rawDescGZIP(), []int{0} } func (x *ResourceDescriptor) GetName() string { if x != nil { return x.Name } return "" } func (x *ResourceDescriptor) GetUri() string { if x != nil { return x.Uri } return "" } func (x *ResourceDescriptor) GetDigest() map[string]string { if x != nil { return x.Digest } return nil } func (x *ResourceDescriptor) GetContent() []byte { if x != nil { return x.Content } return nil } func (x *ResourceDescriptor) GetDownloadLocation() string { if x != nil { return x.DownloadLocation } return "" } func (x *ResourceDescriptor) GetMediaType() string { if x != nil { return x.MediaType } return "" } func (x *ResourceDescriptor) GetAnnotations() *structpb.Struct { if x != nil { return x.Annotations } return nil } var File_in_toto_attestation_v1_resource_descriptor_proto protoreflect.FileDescriptor var file_in_toto_attestation_v1_resource_descriptor_proto_rawDesc = []byte{ 0x0a, 0x30, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe6, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x4e, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x47, 0x0a, 0x1f, 0x69, 0x6f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x69, 0x6e, 0x74, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_in_toto_attestation_v1_resource_descriptor_proto_rawDescOnce sync.Once file_in_toto_attestation_v1_resource_descriptor_proto_rawDescData = file_in_toto_attestation_v1_resource_descriptor_proto_rawDesc ) func file_in_toto_attestation_v1_resource_descriptor_proto_rawDescGZIP() []byte { file_in_toto_attestation_v1_resource_descriptor_proto_rawDescOnce.Do(func() { file_in_toto_attestation_v1_resource_descriptor_proto_rawDescData = protoimpl.X.CompressGZIP(file_in_toto_attestation_v1_resource_descriptor_proto_rawDescData) }) return file_in_toto_attestation_v1_resource_descriptor_proto_rawDescData } var file_in_toto_attestation_v1_resource_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_in_toto_attestation_v1_resource_descriptor_proto_goTypes = []interface{}{ (*ResourceDescriptor)(nil), // 0: in_toto_attestation.v1.ResourceDescriptor nil, // 1: in_toto_attestation.v1.ResourceDescriptor.DigestEntry (*structpb.Struct)(nil), // 2: google.protobuf.Struct } var file_in_toto_attestation_v1_resource_descriptor_proto_depIdxs = []int32{ 1, // 0: in_toto_attestation.v1.ResourceDescriptor.digest:type_name -> in_toto_attestation.v1.ResourceDescriptor.DigestEntry 2, // 1: in_toto_attestation.v1.ResourceDescriptor.annotations:type_name -> google.protobuf.Struct 2, // [2:2] is the sub-list for method output_type 2, // [2:2] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name 2, // [2:2] is the sub-list for extension extendee 0, // [0:2] is the sub-list for field type_name } func init() { file_in_toto_attestation_v1_resource_descriptor_proto_init() } func file_in_toto_attestation_v1_resource_descriptor_proto_init() { if File_in_toto_attestation_v1_resource_descriptor_proto != nil { return } if !protoimpl.UnsafeEnabled { file_in_toto_attestation_v1_resource_descriptor_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResourceDescriptor); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_in_toto_attestation_v1_resource_descriptor_proto_rawDesc, NumEnums: 0, NumMessages: 2, NumExtensions: 0, NumServices: 0, }, GoTypes: file_in_toto_attestation_v1_resource_descriptor_proto_goTypes, DependencyIndexes: file_in_toto_attestation_v1_resource_descriptor_proto_depIdxs, MessageInfos: file_in_toto_attestation_v1_resource_descriptor_proto_msgTypes, }.Build() File_in_toto_attestation_v1_resource_descriptor_proto = out.File file_in_toto_attestation_v1_resource_descriptor_proto_rawDesc = nil file_in_toto_attestation_v1_resource_descriptor_proto_goTypes = nil file_in_toto_attestation_v1_resource_descriptor_proto_depIdxs = nil } golang-github-in-toto-attestation-1.1.0/go/v1/resource_descriptor_test.go000066400000000000000000000067271470602552500266140ustar00rootroot00000000000000/* Tests for in-toto attestation ResourceDescriptor protos. */ package v1 import ( "testing" "github.com/stretchr/testify/assert" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/structpb" ) const wantFullRd = `{"name":"theName","uri":"https://example.com","digest":{"alg1":"abc123"},"content":"Ynl0ZXNjb250ZW50","downloadLocation":"https://example.com/test.zip","mediaType":"theMediaType","annotations":{"a1":{"keyNum": 13,"keyStr":"value1"},"a2":{"keyObj":{"subKey":"subVal"}}}}` const supportedRdDigest = `{"digest":{"sha256":"a1234567b1234567c1234567d1234567e1234567f1234567a1234567b1234567","custom":"myCustomEnvoding","sha1":"a1234567b1234567c1234567d1234567e1234567"}}` const badRd = `{"downloadLocation":"https://example.com/test.zip","mediaType":"theMediaType"}` const badRdDigestEncoding = `{"digest":{"sha256":"badDigest"},"downloadLocation":"https://example.com/test.zip","mediaType":"theMediaType"}` const badRdDigestLength = `{"digest":{"sha256":"abc123"},"downloadLocation":"https://example.com/test.zip","mediaType":"theMediaType"}` func createTestResourceDescriptor() (*ResourceDescriptor, error) { // Create a ResourceDescriptor a, err := structpb.NewStruct(map[string]interface{}{ "a1": map[string]interface{}{ "keyStr": "value1", "keyNum": 13}, "a2": map[string]interface{}{ "keyObj": map[string]interface{}{ "subKey": "subVal"}}, }) if err != nil { return nil, err } return &ResourceDescriptor{ Name: "theName", Uri: "https://example.com", Digest: map[string]string{ "alg1": "abc123", }, Content: []byte("bytescontent"), DownloadLocation: "https://example.com/test.zip", MediaType: "theMediaType", Annotations: a, }, nil } func TestJsonUnmarshalResourceDescriptor(t *testing.T) { got := &ResourceDescriptor{} err := protojson.Unmarshal([]byte(wantFullRd), got) assert.NoError(t, err, "Error during JSON unmarshalling") want, err := createTestResourceDescriptor() assert.NoError(t, err, "Error during test RD creation") assert.True(t, proto.Equal(got, want), "Protos do not match") } func TestSupportedResourceDescriptorDigest(t *testing.T) { got := &ResourceDescriptor{} err := protojson.Unmarshal([]byte(supportedRdDigest), got) assert.NoError(t, err, "Error during JSON unmarshalling") err = got.Validate() assert.NoError(t, err, "Error during validation of valid supported RD digests") } func TestBadResourceDescriptor(t *testing.T) { got := &ResourceDescriptor{} err := protojson.Unmarshal([]byte(badRd), got) assert.NoError(t, err, "Error during JSON unmarshalling") err = got.Validate() assert.ErrorIs(t, err, ErrRDRequiredField, "created malformed ResourceDescriptor") } func TestBadResourceDescriptorDigestEncoding(t *testing.T) { got := &ResourceDescriptor{} err := protojson.Unmarshal([]byte(badRdDigestEncoding), got) assert.NoError(t, err, "Error during JSON unmarshalling") err = got.Validate() assert.ErrorIs(t, err, ErrInvalidDigestEncoding, "did not get expected error when validating ResourceDescriptor with invalid digest encoding") } func TestBadResourceDescriptorDigestLength(t *testing.T) { got := &ResourceDescriptor{} err := protojson.Unmarshal([]byte(badRdDigestLength), got) assert.NoError(t, err, "Error during JSON unmarshalling") err = got.Validate() assert.ErrorIs(t, err, ErrIncorrectDigestLength, "did not get expected error when validating ResourceDescriptor with incorrect digest length") } golang-github-in-toto-attestation-1.1.0/go/v1/statement.go000066400000000000000000000022021470602552500234540ustar00rootroot00000000000000/* Wrapper APIs for in-toto attestation Statement layer protos. */ package v1 import "errors" const StatementTypeUri = "https://in-toto.io/Statement/v1" var ( ErrInvalidStatementType = errors.New("wrong statement type") ErrSubjectRequired = errors.New("at least one subject required") ErrDigestRequired = errors.New("at least one digest required") ErrPredicateTypeRequired = errors.New("predicate type required") ErrPredicateRequired = errors.New("predicate object required") ) func (s *Statement) Validate() error { if s.GetType() != StatementTypeUri { return ErrInvalidStatementType } if s.GetSubject() == nil || len(s.GetSubject()) == 0 { return ErrSubjectRequired } // check all resource descriptors in the subject subject := s.GetSubject() for _, rd := range subject { if err := rd.Validate(); err != nil { return err } // v1 statements require the digest to be set in the subject if len(rd.GetDigest()) == 0 { return ErrDigestRequired } } if s.GetPredicateType() == "" { return ErrPredicateTypeRequired } if s.GetPredicate() == nil { return ErrPredicateRequired } return nil } golang-github-in-toto-attestation-1.1.0/go/v1/statement.pb.go000066400000000000000000000201051470602552500240560ustar00rootroot00000000000000// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.1 // protoc v4.24.4 // source: in_toto_attestation/v1/statement.proto package v1 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" structpb "google.golang.org/protobuf/types/known/structpb" 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) ) // Proto representation of the in-toto v1 Statement. // https://github.com/in-toto/attestation/tree/main/spec/v1 // Validation of all fields is left to the users of this proto. type Statement struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Expected to always be "https://in-toto.io/Statement/v1" Type string `protobuf:"bytes,1,opt,name=type,json=_type,proto3" json:"type,omitempty"` Subject []*ResourceDescriptor `protobuf:"bytes,2,rep,name=subject,proto3" json:"subject,omitempty"` PredicateType string `protobuf:"bytes,3,opt,name=predicate_type,json=predicateType,proto3" json:"predicate_type,omitempty"` Predicate *structpb.Struct `protobuf:"bytes,4,opt,name=predicate,proto3" json:"predicate,omitempty"` } func (x *Statement) Reset() { *x = Statement{} if protoimpl.UnsafeEnabled { mi := &file_in_toto_attestation_v1_statement_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Statement) String() string { return protoimpl.X.MessageStringOf(x) } func (*Statement) ProtoMessage() {} func (x *Statement) ProtoReflect() protoreflect.Message { mi := &file_in_toto_attestation_v1_statement_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 Statement.ProtoReflect.Descriptor instead. func (*Statement) Descriptor() ([]byte, []int) { return file_in_toto_attestation_v1_statement_proto_rawDescGZIP(), []int{0} } func (x *Statement) GetType() string { if x != nil { return x.Type } return "" } func (x *Statement) GetSubject() []*ResourceDescriptor { if x != nil { return x.Subject } return nil } func (x *Statement) GetPredicateType() string { if x != nil { return x.PredicateType } return "" } func (x *Statement) GetPredicate() *structpb.Struct { if x != nil { return x.Predicate } return nil } var File_in_toto_attestation_v1_statement_proto protoreflect.FileDescriptor var file_in_toto_attestation_v1_statement_proto_rawDesc = []byte{ 0x0a, 0x26, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc4, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x13, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x5f, 0x74, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x42, 0x47, 0x0a, 0x1f, 0x69, 0x6f, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x69, 0x6e, 0x74, 0x6f, 0x74, 0x6f, 0x2e, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_in_toto_attestation_v1_statement_proto_rawDescOnce sync.Once file_in_toto_attestation_v1_statement_proto_rawDescData = file_in_toto_attestation_v1_statement_proto_rawDesc ) func file_in_toto_attestation_v1_statement_proto_rawDescGZIP() []byte { file_in_toto_attestation_v1_statement_proto_rawDescOnce.Do(func() { file_in_toto_attestation_v1_statement_proto_rawDescData = protoimpl.X.CompressGZIP(file_in_toto_attestation_v1_statement_proto_rawDescData) }) return file_in_toto_attestation_v1_statement_proto_rawDescData } var file_in_toto_attestation_v1_statement_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_in_toto_attestation_v1_statement_proto_goTypes = []interface{}{ (*Statement)(nil), // 0: in_toto_attestation.v1.Statement (*ResourceDescriptor)(nil), // 1: in_toto_attestation.v1.ResourceDescriptor (*structpb.Struct)(nil), // 2: google.protobuf.Struct } var file_in_toto_attestation_v1_statement_proto_depIdxs = []int32{ 1, // 0: in_toto_attestation.v1.Statement.subject:type_name -> in_toto_attestation.v1.ResourceDescriptor 2, // 1: in_toto_attestation.v1.Statement.predicate:type_name -> google.protobuf.Struct 2, // [2:2] is the sub-list for method output_type 2, // [2:2] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name 2, // [2:2] is the sub-list for extension extendee 0, // [0:2] is the sub-list for field type_name } func init() { file_in_toto_attestation_v1_statement_proto_init() } func file_in_toto_attestation_v1_statement_proto_init() { if File_in_toto_attestation_v1_statement_proto != nil { return } file_in_toto_attestation_v1_resource_descriptor_proto_init() if !protoimpl.UnsafeEnabled { file_in_toto_attestation_v1_statement_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Statement); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_in_toto_attestation_v1_statement_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_in_toto_attestation_v1_statement_proto_goTypes, DependencyIndexes: file_in_toto_attestation_v1_statement_proto_depIdxs, MessageInfos: file_in_toto_attestation_v1_statement_proto_msgTypes, }.Build() File_in_toto_attestation_v1_statement_proto = out.File file_in_toto_attestation_v1_statement_proto_rawDesc = nil file_in_toto_attestation_v1_statement_proto_goTypes = nil file_in_toto_attestation_v1_statement_proto_depIdxs = nil } golang-github-in-toto-attestation-1.1.0/go/v1/statement_test.go000066400000000000000000000105351470602552500245230ustar00rootroot00000000000000/* Tests for in-toto attestation ResourceDescriptor protos. */ package v1 import ( "fmt" "testing" "github.com/stretchr/testify/assert" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/structpb" ) func createTestStatement(t *testing.T) *Statement { // Create a Statement t.Helper() sub := &ResourceDescriptor{ Name: "theSub", Digest: map[string]string{"alg1": "abc123"}, } pred, err := structpb.NewStruct(map[string]interface{}{ "keyObj": map[string]interface{}{ "subKey": "subVal"}}) if err != nil { t.Fatal(err) } return &Statement{ Type: StatementTypeUri, Subject: []*ResourceDescriptor{sub}, PredicateType: "thePredicate", Predicate: pred, } } func TestJsonUnmarshalStatement(t *testing.T) { var wantSt = `{"_type":"https://in-toto.io/Statement/v1","subject":[{"name":"theSub","digest":{"alg1":"abc123"}}],"predicateType":"thePredicate","predicate":{"keyObj":{"subKey":"subVal"}}}` got := &Statement{} err := protojson.Unmarshal([]byte(wantSt), got) assert.NoError(t, err, "error during JSON unmarshalling") want := createTestStatement(t) assert.NoError(t, err, "unexpected error during test Statement creation") assert.True(t, proto.Equal(got, want), "protos do not match") } func TestBadStatementType(t *testing.T) { var badStType = `{"_type":"https://in-toto.io/Statement/v0","subject":[{"name":"theSub","digest":{"alg1":"abc123"}}],"predicateType":"thePredicate","predicate":{"keyObj":{"subKey":"subVal"}}}` got := &Statement{} err := protojson.Unmarshal([]byte(badStType), got) assert.NoError(t, err, "error during JSON unmarshalling") err = got.Validate() assert.ErrorIs(t, err, ErrInvalidStatementType, "created malformed Statement (bad type)") } func TestBadStatementSubject(t *testing.T) { tests := map[string]struct { input string err error noErrMessage string }{ "no subjects": { input: `{"_type":"https://in-toto.io/Statement/v1","subject":[],"predicateType":"thePredicate","predicate":{"keyObj":{"subKey":"subVal"}}}`, err: ErrSubjectRequired, noErrMessage: "created malformed Statement (empty subject)", }, "subject missing RD required field": { input: `{"_type":"https://in-toto.io/Statement/v1","subject":[{"downloadLocation":"https://example.com/test.zip"}],"predicateType":"thePredicate","predicate":{"keyObj":{"subKey":"subVal"}}}`, err: ErrRDRequiredField, noErrMessage: "created malformed Statement (subject missing one of RD required fields, 'name', 'uri', 'digest')", }, "subject missing Statement requirement on digest": { input: `{"_type":"https://in-toto.io/Statement/v1","subject":[{"name": "theSub", "downloadLocation":"https://example.com/test.zip"}],"predicateType":"thePredicate","predicate":{"keyObj":{"subKey":"subVal"}}}`, err: ErrDigestRequired, noErrMessage: "created malformed Statement (subject missing 'digest')", }, } for name, test := range tests { got := &Statement{} err := protojson.Unmarshal([]byte(test.input), got) assert.NoError(t, err, fmt.Sprintf("error during JSON unmarshalling in test '%s'", name)) err = got.Validate() assert.ErrorIs(t, err, test.err, fmt.Sprintf("%s in test '%s'", test.noErrMessage, name)) } } func TestBadStatementPredicate(t *testing.T) { tests := map[string]struct { input string err error noErrMessage string }{ "missing predicate type": { input: `{"_type":"https://in-toto.io/Statement/v1","subject":[{"name":"theSub","digest":{"alg1":"abc123"}}],"predicateType":"","predicate":{"keyObj":{"subKey":"subVal"}}}`, err: ErrPredicateTypeRequired, noErrMessage: "created malformed Statement (missing predicate type)", }, "missing predicate": { input: `{"_type":"https://in-toto.io/Statement/v1","subject":[{"name":"theSub","digest":{"alg1":"abc123"}}],"predicateType":"thePredicate"}`, err: ErrPredicateRequired, noErrMessage: "created malformed Statement (no predicate)", }, } for name, test := range tests { got := &Statement{} err := protojson.Unmarshal([]byte(test.input), got) assert.NoError(t, err, fmt.Sprintf("error during JSON unmarshalling in test '%s'", name)) err = got.Validate() assert.ErrorIs(t, err, test.err, fmt.Sprintf("%s in test '%s'", test.noErrMessage, name)) } } golang-github-in-toto-attestation-1.1.0/images/000077500000000000000000000000001470602552500214375ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/images/Makefile000066400000000000000000000000671470602552500231020ustar00rootroot00000000000000all : provenance.svg %.svg : %.dot dot -Tsvg $< > $@ golang-github-in-toto-attestation-1.1.0/images/attestation_supply_chain.png000066400000000000000000000730141470602552500272670ustar00rootroot00000000000000PNG  IHDR AV]uIDATx չu}dQ DqCWM0nqAT"&pEcp WD *W!J ƕMA_or(gygk뮪BPCZRWk]m@(ֹzXW)6"W󓒒ӯ9sgo_Z!//OM 7Mo,N!(ǟ|ܚw6M`CK^Դ+''MIM2[QM'k9ԴVԭϮ|b/[S7kc@@IKOt}$E<)))@"@0IJI1ꄑ_x[n?8GNZZڶe!Eqђ?-ܓ[tg >| C)}v1n"33nA`ˮSv g@LMKW>I`Kv_I߿q5-^zy'9%y#g@HOOgEwU'##c3g@/Ն0 0 44@!Lo1ycC:newVEq6ݺm~_9%39jaOr FA$=#/q= :r 9Bd kRt#NᑧߌY.@Dn^_4@q J6%SҸ~ɜhױv>nF 4!ev.[Ok00/wM[nt5_ 40 @ACGQ^-[]e|5m6jvԹa`4G!20 ԑaвe%:~ixƜ܂MfMa LE22o]SN;{o(i0 +ve kH21x舝ii0 ^zy&;oηe{m3f^9iشh]ߣO7 gW~ddf}nvG:ad^ UT;v73:amlkf]degyi>5블Zr3x^k:Tܼu5bM z.x _^p Ekyg;l\43w~nY2+{q:u蔴kvΒzwj 0 rZn/a v_P il3^ .-_Y rId( tΑj_Yn'zn}iPպئ_kܿh{;I1SU[LX_݀]#+dh[iV)9̨{_: yqk}gS~qp~_aL~˯!|`:i`pMOO= hVܸIcdg܄f&Oޓ >zO*nsi0~8sY~~@zm|Y0Ė֭E. SǏ};j0Lޞy uetֻHNNvYʾ{Dm3Oݘ7,@]f >|]5 Aawe x-SY&x7˴Zo{3 uk~*i{޷4 !rt5oo*ʶTQ6z2Oil\1 GFzFu7&P/m9k3 ~|$g?ȟ!4づNJJ|2 '/(5)z}?H5髯[)6p: zJ/B{E*}40&}?n"P}F_LP -dh%~l4H`4k1GE=w/v7i䂫s.V7gÇvFw3w2Yٹ_4xue>lww5hL^i8P>@ xMk+iTu2ϽpRL},;Ґ ܪ#'rLͣ :n24LzLe^xŬ^ptڔvt^6*ث`q-sGR8tب L iJWxi|F@Y]2tLP$S S@ݘ=#m9~!+ѸIKx@Y7< il} @0&k^{IoDL8˴5]bkkYnyͧ'vPo~oo2%ed$tD֫ZW 2FT>~G!:Pw  d_h4i{_Y%#O7`(zГuרiPG$%'t@zjq(A}2/гϘuhh  {[4h;v!GL996j|bDїo\uÝBi0 vt} oL8Oݹoa@ң]{kM9cww4@#uzcNiW wwF1 Ď̬ݯX`4r?*1 ĘKyKkyE_ILi1CΘxA`Mf[PILig歾uݎvMH7_!48Ѵy˷q^Wrf̹/F PH=zP&` L#eMUYA{_t8d?9=:,xJgn{ _48ҴYWLS,fŭcnjy `؈Jвu 4@r/ _\#isO!δr]QTFS+>%+~uSݡ9|euGff7(zk*LD!7F37߽~NfVg:^6+h܅I0rJwq z ̬-29ꎤ}UV=㤥}dgw7Iû}3NSjt{#2J&5(!7`[n uNffƧ lQō5z1/W4 =C8 ϨܼܭtS@ҳ+ؓ 0F7j:v[سoŴ¢ rFe5~`ZrTXN+`d&%%}Yܲ_ϻw|jb<o,iä^"9LJIM.E>Yɸt|܏q5QF[ ם|;u-zϓZu߼vgy^&m>ҫo;ߺ-|PaŴ+yy>ᴷyeɶ6"(cW?[Y5@CK72\-wFu 73Zd]w)8ֱP͂]PC*pE4(Ϭq\]ɡХvȡLzp844RSEr0 Y4\ P\ P\ P\ P\ P\ P\ P\ P\ P\ P\ P\ P%%%%%%%%%%%% P\ P\ P\ P\ P\ P\ P\ P\ P\ P\ P\ P\%?NW\epXi`+'Tn\ţh`X*7 nP`20`8CiP),,޻oGwlqfEۚ5o!Jۗy(I7/G⢝5y!JZmSEM o" hզJf,Tӫ;AڶmCYܡs׀\_j/-mw^/)m31t}f6wi)9/,[ֆUE_u^zy1u%ΐ#;99ߵ6g}ゼm5}vr_@MZZڶ7ljCMobP6Y۶k.?po@ս/ >|ެ쬝M Ę/eFs9ZK^Z ==4@(AJZFC۶}̽_ؽaD7tN]:8f8rȞ&MZ(jZ :X]~TI7E]0  ij#p_@ДimKNI"4sohS'KFI̐5A@(nl cGNjbq 6ya < ))#.SRSHJ*4ѹ{NIy_|/?Xs}PylLa$''W_֔e%zlLi`7Àu_6Ĩ ˘~vcE҂; daPھ\P<սWO[4@(A>x_(n:A?:qZm^e~׫]{[]ھDžMosmf-)鰡k3t~gCr Zi57K^Z[6%'w으I8Sqf̹Ϲs2g uZ๷8ϹYΩhU;pki.ӳG_,]d~8N, 9bsĬj6- .\p 3s/pAmgMc<ἳ~Nms4}%iAmPB/{`͚7νЩkO[.nݶәY98љv]1ﻢ̄tz;/fŭW 9%ywm3QQEPRJES*h?bO~IBZ2"p:ձVoUL4piڸ/ddiP0Lܜ\P ͚7o&E ʏbju/9}]&EݵM JPyqaoU?;[e&,[~YrcL u鵲A40dxn{hc8I}$ZYQ#!SE˳_] ȵM"252_e$z]xFQ˓Aa81@8h.nl.}4@!L0  ӠgVV'=WU?t6UشLLwIќ<7 M{ς < iS0kʲ!K_uS ScV(6\; e$`޼/@!TAG;ܓyOۣ,٩q,GG0 0 44@>2Θsߞ0 l;D.v6-^i;OWJI WV@(i`KxZji`d8h0cje".  ڦ2 <%u{0]j2 41"!!Rqe,d񓔥aUքm`pAa`eY[T[ ? p{䌃D`zוu#Mͣ]ci`2i>ra`2dN(7 M40 fy/yqhxP72Ti-OȀ8ʦ44@a` SS۹I8PW8-@AoK1L)&@Ue=Aɼ+jZuPml@<U.nj(B˯,gLWSQM4@Ӏ 44@(HANrr_\vD3 * e!fSn i{MD}N]o,h'jk:ra_RFJ7CuOTUb8Lȍ" _O TGFki+@FP`=AlM^c=AeH ~$'v);A3nV` }N S\R2ebh?e~h=fxGLLiPMU/,Kucruj aTYY9_v要Tva Ӡ~54nyce(8ޚGAfZ2LPljY 82id:BjVC?'ÌpP%fyzn(5ݟ9͊pԝAA`_eFɈ}izOyU/p^|r.AM{f2Wd2FAҶ-?m1³u}E~j,Lbg4JJzܽ%" R !Lx+##͓=mgoCv?3MbûOb`Derg2Y= ޷ g3Z g-h3~su]1ul o(4@(fn a`tiٺa[w3Mӣ# ]j^w=ұ1A0 fגQ`'(@~@C{)AUӠosŔc`  %))w?|{A'V7룝Kg缺nGԟo:yMv%aԯ 4'LLhLui)G9X@#$Pw13*dL``wa kŭa0or';;铜_ӭggWU<½幟uFqл[=!LɄ; =㣽~ /|+zϚqAY[j8#Ӵ9|#~hN=Iqm7].{,ޯ?e t\퇺L][u43Ovzv]W;+iћտn)y߲گsZ;f^Ӆ\1mZ^뾶3bߣt/ o3bxT;B࿧iC˼y~eHl߼Ӏ,J0λњv4%As404hxPs͕ѪksZo_tM|:,ZRkxO"k97\zmگޥ?kмeP{96*kIJZ{9޺g]4MRPƎLڳ(LF}'Z 33ۙ;پ/qWܪv|L>hUv,xmq1 4I9 Sim.ƢL5FvCR `1p VS+05]1MeoIᵟ@Li‡nF44균'ti롮+ ̧kv2SrM7OmpX5~Us$@O]ou_۪3MFyW4~s@1&.sAg+^#` i04q?kRg_hi΍sWzӹ[~|ys#cnjz[Z.ݓ]ӠSxC#rb4PV,4HӀiJGՠ4陚_lQRQld&UOô{~x%f&;#? ֦h(װ55 _T4hx+X?ik^I2i2E͘:V1 EMn;-4co4u_*pϧclHdym mj oL) {UnipI&+kx S=415$'lrr0Ο|:NCbLjX:a1Ow@c*Z P~]x,#4^72;ie 7iO@ۥ ib4\ /1QU5l1 0 ij(`_PC.* NF״0 iZ.54}!4PWW5ojhp25s40GYz\1gc ;\AʟeFbw dfc{,57sAR+eH '4ԿR xNji>(v ij0ZjDe}65/y_?yL!E#eʪLmU5}{fd*(L2uSUԽM@۫l7?h> U궧 @_2cu}r`h_{lin un9ӮcMKOn4>v&O~M3)4иۺxvcnKu鯙gıýy>]p4M\Km`Ŝ<}{_i<]V}ƤjU# yj=U!D5VUߟVN?4OgԘ RaB՗F Y u`i4^mHLw2s_`@أ"e3+.kuin5y :FFEƈoi(IL1 d@_bs@ÇՊQ+//n3S?o,f~Fs\"3],L ";wӀj쩈;,8>@{ Sd `[(|F MFn8"],U\afe\.(ciђ׋:4R2'~"wO'`LM3X2 TTNL]<1a$'QCo?sNip7Cl2*k B4$Q_T/L/LԀ'k'mU?$ Mi6PVB]g&`1CW[[p|iouo2ujjh-ی?2ԍ!iFa s|35N ]R9jj z+߽B"U`MtĿڦpr %L؟ bP:2z4KpM40 }.4J\~5c5 4(Bve ^bn}u} fΫ Z] _51 `d_e]&Ӡ#e(&H pg\2m3+jr&e1TAƀ=6 i8 qba +f?tr3d uM e֭i4-=A)Ɍ*DӠ6i`MS#uW.]MX[RUHu/Rڥ޳iTOwj"Ֆ gL C2xtUPХn*hɐ4iPƦv]KuOޘGy`gC֫žohhW{40g/CWlu4}O|tI8ycRP[)@]L)WQ6 Drt}b*Kbr ֯צϑ`zL5P.Z|fxsQ44oF鐺Ω1cR+%c:=V"SUVW<>VS@h/czGD)RV]>˜a$i`jj{ v-V|v{14uZm{$vpMLަG6ji+[6lj}]cA6]pݠfiױ?nt9rg`\7= " z CM5t"iY`k?LM3hwɮiI/` C۫_3ܢ|{]{ XbCAOJZ fhLHŮuLGOq*(sd 1~2ƪeonul5M񰻽Ni4^sxhͶ(mU-ߤb iP"g,. F 2jL0 j要R%#A '4{h{j SypR:?0W!+@7t[m2'ZY fm=wa 20dv;R[c]m!L4IIIʏgS&݇L0 j要qU`*iiꚚ '2쾦4Л"o;1 dNl)K5_4B%i fsϫ ϟ:ә1羸\v57Ϋt^pӽgWBa` Lx"L點f{ZBcG 7G4U`2*:#\/e. cn92d>P=F6;!Lj4(HIIݲ๷+ y|ӹ[g'V0s2:7QfD&E{ZӠnTU_SaԾiOuדxz^djuejsd֧!_aȚvF-u4 A:6wiBd4f4+n;f\OТUIΘxӵgB>JmMTolec^}IP0 4o3J)0w[ @OZ5 TQ*%B5q_@ј1 t=C LwwGE0rӴpE1 4@Mx`i L6)l7Au4\%+~u-\fVnSu3FZOnxRcH5ոwj^*U5R`4cqi@FKkPc` L FPq>J7U>i` !kbH kޚj{LMj-7ktIкuO2u{CWп2Azu ұ 2$̶^{9 Hcc iP]bTn^6cNV  0=wg9]ƅ^Bu )PR+=2մ0UN#{keq#0 (5044@A5 ;axE_z(fh_]CC42u}L ;h7Slo?i?~2T/_G@%-[pPFkH(DU#;:]f(F>=l zL0 JD zI[0ї~k ZyMp71Ӡn'$4~ڑ^0`?!5e Io4F>oiyGYj ՈcР#-; Lӵ= %d<[B%iYor;0PCNn z2 [e\ј2L:G.jެm) Jy WO@L6]Ow-/S;Z_@"x44@A4 4@2 wOWVHe+XihMS_lJQݮh}[?߽bwUfV4o䝌O>Bwp^pu_tum.u5Bc]SWWU(!LT7ڰ=//{fտgqvh[;k_]Eiiێ;igW~SW8%|zFVv T[uL7F-iڮ~ͬ0 Tk汇ጄ V4@^u~o7T]ۿS8}jj >[vW*v*sj?7Ԕ-4\Pm0 P< k__,z跟j~fM%Wk}! ))Դoʙs~զ^)RҮ'))_T\H%III{Uਸ਼v#kEMS40aT@h:U ==@,jەE?C!ZXiV9Vy_rg7k[lw5~u\=UӞ1/] }%dgff po^1eGG9o%m[|BMk{JII[;:wɤ_LB Y}6 @ӯmιpS-?0 ~Lz\~vl0F"0]$ dpˌ p7-w}agܿhsa֩SGs'W22Ҷ$6_0t/o hi`}v_] HMMj9NΞxasBR箝ٖd~䥅@}И *hJ 1ZED'|AikNu)6499{1QFpF(.͏?4bP|߻%))I)E 'HyHt$y{7H'ZMG=|؀/5ZAvvƻaw58Tm¢7)zQm~*T|}!µWwу7/ܦB^nκy? (%;ӳҏ,KlR\^:{ҸXٕOmi^:8j!W =la>]j_LѓO?#'=5QKX~qyljxA/TFML9rw֊`W.# RaT u=գ%m7뾐wώ{}+uNc}:VuGs+P 8 ՏBv}Ci˺ڿowi^_BV{~_w}zuޑKE?nբ򂂜[# tQǏؖ:DӀصGKp?fTUGYZZڦP [vӳb` t,y­y9߻8nkOiۖnj5&MROnԨŷ{ 3f\-kg{qajWrgg/vw>]TBm7辐/ή}_8|HڵIݷׇ8+8(Ct7_7z׆Xjx:SjL+K ˺6,ӳ+ʺzءeo}50+S^gwmRҖK{piݡ]:wd|X6|ݰpU 5cK}U0uśJJ~ASi⾐~ R^]}WN5^<z|u)S-;## ,fPA6^57 Wpw4==c @c~JZ7zZZڶܛ7nC;V^0 G?WI\R}!99c ++'k;!Ԕ7.1!N}̐HZz& !)9 vW*Lw+ ,Z6h1 +Ct*7]:r(@ewM`?TC`Q=;<)QT}~;8(rB ut* Py>2 @*M$@`1u 9l@YvC4CWp7Bt'ab08$T^ǠC0 "1DQD"áXj,![8 q ِxPǠv4@1u jL *PZ8@%,Q 1X7Z(8\u jLJj6*cКCQ`TPyJ<1;0 *!%D:|]6s(LHXuB㦮4ZPybEiPO1EF 9u @ Z#x_ˡs0 @01H0 [r u  LHZj("a4:G]^ hŮWK9 @5b*c@͈(a)1Hl0 bWc9 1:@59qK܈j1i"4ZP$<Qpd*"E 4!1Q0lCA4Ѯ^0DMPy2E43 Y ʝ0LZ*CH0 gTu @P jcP?4&0PǮrXr_ `D,Wc\-PBi%2 uuKDl!`DIQE0"9Pf2 &p( 5`hA b1`Ԑ}PǠ~i ߤ-͋5 sW_#]ۅiiʇ RSSh#l~<6mˍ{-;:5+jpe ~Xڱt)9/,[ֆUE_u^zy1u%!|M^^!=RR7:V;LχҶ-~;@bڔ1QZB#j${jii0 0 @ #;'FtNNnwӀa` L1|Kbq r? i?4(wq;W좘6n<B qMNnΧKb>Ynj;V-mhݪ(PB[k欭ιi\Ɣ\/-XI}:i4TO QOi}7jz>`&EM\3zEo@SN>tn1 |4y/]d/3u%gq&w'fnզseky 3i;of'֣ILy3gZܵSǏu&Mw.]+e܇i0 0 @HNI][멳g>|}ұ^6 Mھ Tֿ4nybvzpF0Vv4Xkߴ_V=Sk⥅ji0 0 @|FШUA g( g342iЩkG]@wI YsuyC" )oh())i/(V_MF{.4jhLzL&kIpY ʇ1Tz=qp5rrb{L'rn,!i s26T3L{zbgq'O9yo+M6W0]1d+]shy+]߼w9զP96 snQEd?4 {oӠ) ý+U}=c52L}cƒ>yͣnipuS= \u1Po2k?4]L3Fh]v-u@ӲԅC+=;C-ZؾiZIeoԒ@g,ئrX>,'_ydDZn2 _] iPixD_e$84"132@yc0D[Y-LDiAF=57ORkկ_ pH /jQ'']{2`]&vBzb&K i cAʖRvBF mce#!8xZ֩诺``` LLiuf_O@RMP XOˆJ CUGi`BTA5Tk؛Le 9N**hw{бe 9{YΠ4@Ӏa@ ,+wUW]=%דpc( Vz`0) ͧBVc4ɼQp*G Uxp-GSF…f/i46`jأ?;i!Y;Ӏa` LuV=5W Y{>2*uL? z_,(wNz4q}pdV؟!rŒ00.6٣%Ȍ<2&#$h*3"ꖠco;Ba@a a` LLL0 444@(a LL0 \44@!L0 a` LLi 4xo+׼Hii0 0 '`˝/qN>cs pٸ:e賭ڴqνpR̖'sCқc` LLiS8YYNI^?c\S׎^@"2 [6/IOOw_4a` L4$e{;}f&4@JsӠn˰\69>xg /]7Mm@O0W^nqςg҇e n0 i|&1ۣ$oyۣiSAfE+GG1 n2!Oq[Ϯ2Zːymk,˯$${{;> }[kYzm#]怎C&m`3h].w 4w ;##ma~13ۻ_L4IO+Vl- Mn2 4ϒ`Y4evͬif;W z_^+_A ]Y8mMe=mO 㠮Q߯+<33_444i̜ޝ럏izgc``Ե+(i@Y zuMM-W((7U-یn7 }@!(}iWB]-46 2 eQ;Tupb2 0 0 mDM40 0 0 jQzj/@ (cHf+@hCH e ؙh9=zxBmײ5*j쉱2 ԧ9 IqJn 4p_{,v[|IcykYmv~'~qۍuU^J4K=.U@j5֡uE[2YLͻIߟSEhF2 ;7+n UZG {| ,mFhuic跭߸vРLS0ֆUz&`>@ *vKd05#Q  2TT11P]L8X3:@BL2d'{B%`! [P@Rq9TF+-UHE(rBS؃C]Ђ N_22!|̛{3s0~wQD8׈tt3?޻FW+qB.Ϭ8<G]yvx=1gf7/X/\u)rTҍcx @?z:qZDںh׭XXpF[mZ8kǵpOWO Du̦&[~Q+Bc.8K4=sqEȁO8\œoI%/ אh@!V# ?Ux51y5۩pu+jQ@4y B4@>pmh ) E_x׊m'EhhX! K~ۦXYT{8&pHһp@dUuddΐ'VFؐAC:;\e:?W=&‚D1@|kJ45!FUg1Vk}\/qjdA ECQ#uoJzw#}AHt0ܛ8挢4wn]k(B!$EqQ7_8(hSj( G,42RX͇؀TK6w BB" ("ĽM4 y/ٶQ ]#vB0yeW )H D8xըq0 pmp۔h Pf\fQgחy99Xםo;n%>vG D_莝KMv8E TMDW@ "9x 1$J4c{C_ !zGV_j;<đ_ٟuXnlCڨBS'6&#/5:h/^l/-/.H@4B[w =ؠCѠD8> GN@o'% |׋a/8O!Ħ S XAAv{BiU!D8\- !S D57#`ؐ ohgsחh Yꈰ"!BZh@ Ok 8c='!j3t8(VVrϧh +mU@ 0Xyh2R_4P/GX]d=[(2fDtD}>"1Ij k)"[M 竻MNQh@!P4SKh?Q`AVse5yNH;Ӂ @Hkʵџz6OUwO⌡?ܷToL4PK#7(h Ƈ)ƺ?\ccKR \\[ݵC"dOpQwJOVB !BрF EqJ,wlVt y!1~EXm8ʃ57<Ϻa'0C@;bT^98W'pmCcqB+皖pODD9tۑ hnk 3Xc|~ol[m8Sƕ'ٺm:<\=Urp}EgJ rg[9D6mڜ2z.D%s!22=#B(4\Ԙ1kzH;m3iG[HR4=р>毣:N/4h@ Ϲ!Ag^[m'8U/:f^b2Ƹxcѓ~W8pgϿ [֚}-S޿!(esFрEEB!P4hA/3z+^Q{Z#"20K8շ)(ٗ7p3;f u|jD<}EE4Bh{pB3{wx*0V5 -! p-E4 h !BѠ [!<Lj*XhYgz#lEHM7}hjS' `w)P4s('j?C.(}.P)JbSl[$0#xv9y!AcprZ=:@[8I(8\߈L8[*RA" 0QTRhG=`GDh@р|ؚ!iEA^cVz,-BTTG쎤ĄY^>>3 u>B! B\4@DYYA&G4h,=AtCMi^(6z z h-퀢r!!iOyܲ;aϏ/}tF⢁^hc5_P4h@h@рFрB! 1VVU!H#aaW4tzU!Dgh@рFр!B(a⌣Р@N^‰[4hqRfszaE h ((B!cw؏# '6(p[46xnxPwK icxR-Іj{>hƋk1?~#oCW_9c3ۭk7] uJ;tؕ>{+KKu}Nрs'̅I/:(s{i>}.|̌ͅnH!Vڶm{Z/ p[ P`'Y.1ɧhƒ%<E +@4clu ЦWwB/n[ҟ_:>h@k̾k;:=1j^Zh:711Q0pp㝎qyF[}w1u_*S4ι0Eѭ{guL ;0̹@!w׫͘5-pK˺" B |lb<A#1@uQ۠?1.::2|7F"B=5a~nh@hys%QPa~Cpڵ<#=NǁqۛAͅvnE?ccGE;G\ BH󓘔ay!BsaڐwUCz(R,BTVEѠo2vX3DzGs2ky*oJ+o-'7L ˜ ~\H۟ڙ~!B?SyzE8&߻ZE4R#zkqu'!)}RS7n+s[ v)0~S`.tp%}䤄8!jĸ  Uz8CGf^ @MyU4} h @Ѡq;y]wzncK=9'qOOu=qJɯWe. }2a?#7;c!B‰Y);+ڸuPO=q)OAR4hRgٸIFnNM^Nƛ)soPs)гөv3;|WVqa B w"cbc]qe?SMZڦQtӚE ~pc84W%Edu@5 :EV5:w3̌oV\=sB!ؘC81lWO?zƯ{1 7~Wo2cﮗ&zsѯgN0{u=팳JL;RTii驮_RZUȈím.\HJp-.ճGɺ9!B4e{ h͗V1jȣv{>[}kܴ uGMWկOxB!:q2*{}r4,66xDdIgs_FV/6z͡Y3&V2yܐ+&4nX彰u] \*UU rm\%I̅USչ0D>yC99!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B!t:V$IENDB`golang-github-in-toto-attestation-1.1.0/images/envelope_relationships.excalidraw000066400000000000000000000617331470602552500302770ustar00rootroot00000000000000{ "type": "excalidraw", "version": 2, "source": "https://marketplace.visualstudio.com/items?itemName=pomdtr.excalidraw-editor", "elements": [ { "type": "rectangle", "version": 410, "versionNonce": 1432406344, "isDeleted": false, "id": "RqOWG3LKLriAFr4klJuOC", "fillStyle": "hachure", "strokeWidth": 2, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 762, "y": 207, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 1097, "height": 601, "seed": 265441864, "groupIds": [], "roundness": { "type": 3 }, "boundElements": [], "updated": 1679582486153, "link": null, "locked": false }, { "type": "text", "version": 536, "versionNonce": 1436067549, "isDeleted": false, "id": "NEU_BBsqAc0wAYVmbIEHL", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 778, "y": 218.4, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 119, "height": 32, "seed": 1134960813, "groupIds": [], "roundness": null, "boundElements": [], "updated": 1679628400212, "link": null, "locked": false, "fontSize": 28, "fontFamily": 2, "text": "Envelope", "baseline": 25, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": "Envelope" }, { "type": "text", "version": 749, "versionNonce": 1791983987, "isDeleted": false, "id": "tq0uQU0ssaEzlhfB_ZPpZ", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 1738, "y": 223, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 100, "height": 23, "seed": 1507329731, "groupIds": [], "roundness": null, "boundElements": [], "updated": 1679628400215, "link": null, "locked": false, "fontSize": 20, "fontFamily": 2, "text": "DSSE v1.0", "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": "DSSE v1.0" }, { "type": "rectangle", "version": 724, "versionNonce": 852421192, "isDeleted": false, "id": "73rV24_-UrJMPOqe1ueHo", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 939, "y": 384, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 892.0000000000002, "height": 389.99999999999994, "seed": 1120883075, "groupIds": [], "roundness": { "type": 3 }, "boundElements": [], "updated": 1679582384018, "link": null, "locked": false }, { "type": "text", "version": 165, "versionNonce": 217695037, "isDeleted": false, "id": "ycoDkavKM8XMQpWZeZtfd", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 959, "y": 340, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 330, "height": 24, "seed": 169554019, "groupIds": [], "roundness": null, "boundElements": [], "updated": 1679628400219, "link": null, "locked": false, "fontSize": 20, "fontFamily": 3, "text": "application/vnd.in-toto+json", "baseline": 19, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": "application/vnd.in-toto+json" }, { "type": "text", "version": 110, "versionNonce": 719641363, "isDeleted": false, "id": "643WeC4Caxyxikx5HCwnn", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 844, "y": 383, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 78, "height": 23, "seed": 1841511299, "groupIds": [], "roundness": null, "boundElements": [], "updated": 1679628400221, "link": null, "locked": false, "fontSize": 20, "fontFamily": 2, "text": "payload:", "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": "payload:" }, { "type": "text", "version": 134, "versionNonce": 112743325, "isDeleted": false, "id": "UKczEEVCDrrm2uBbrfzvn", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 797, "y": 341, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 121, "height": 23, "seed": 754474403, "groupIds": [], "roundness": null, "boundElements": [], "updated": 1679628400222, "link": null, "locked": false, "fontSize": 20, "fontFamily": 2, "text": "payloadType:", "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": "payloadType:" }, { "type": "text", "version": 202, "versionNonce": 509477043, "isDeleted": false, "id": "FnxigYuAdFtcnBcFmmrZw", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 956, "y": 394.4, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 130, "height": 32, "seed": 1337485955, "groupIds": [], "roundness": null, "boundElements": [], "updated": 1679628400223, "link": null, "locked": false, "fontSize": 28, "fontFamily": 2, "text": "Statement", "baseline": 25, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": "Statement" }, { "type": "text", "version": 456, "versionNonce": 2131089405, "isDeleted": false, "id": "5NocFxQgEorZb2XAjoKdi", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 1594, "y": 399, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 208, "height": 23, "seed": 1799142211, "groupIds": [], "roundness": null, "boundElements": [], "updated": 1679628400225, "link": null, "locked": false, "fontSize": 20, "fontFamily": 2, "text": "Base64Encoded JSON", "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": "Base64Encoded JSON" }, { "type": "text", "version": 239, "versionNonce": 1054962259, "isDeleted": false, "id": "k7SdBbNHceiBVFDzEEC3n", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 968, "y": 438, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 540, "height": 288, "seed": 2121995299, "groupIds": [], "roundness": null, "boundElements": [], "updated": 1679628400231, "link": null, "locked": false, "fontSize": 20, "fontFamily": 3, "text": "{\n \"_type\": \"https://in-toto.io/Statement/v1\",\n \"subject\": [\n {\n \"name\": \"\",\n \"digest\": {\"\": \"\"}\n },\n ...\n ],\n \"predicateType\": \"\",\n \"predicate\": { ... }\n}", "baseline": 283, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": "{\n \"_type\": \"https://in-toto.io/Statement/v1\",\n \"subject\": [\n {\n \"name\": \"\",\n \"digest\": {\"\": \"\"}\n },\n ...\n ],\n \"predicateType\": \"\",\n \"predicate\": { ... }\n}" }, { "type": "rectangle", "version": 301, "versionNonce": 1976748344, "isDeleted": false, "id": "VmDnbIpoDFOutwik6JsWM", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 1007, "y": 507, "strokeColor": "#c92a2a", "backgroundColor": "transparent", "width": 509, "height": 106.00000000000004, "seed": 371806051, "groupIds": [], "roundness": { "type": 3 }, "boundElements": [ { "id": "NonyP8qmM2Z-AlSyIZsX7", "type": "arrow" } ], "updated": 1679582384019, "link": null, "locked": false }, { "type": "rectangle", "version": 94, "versionNonce": 478381640, "isDeleted": false, "id": "3w7_TfRzbYt6fvwYn4MmF", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 991, "y": 647, "strokeColor": "#364fc7", "backgroundColor": "transparent", "width": 475, "height": 65, "seed": 1833704845, "groupIds": [], "roundness": { "type": 3 }, "boundElements": [ { "id": "H2D61HeYhDsZRRdJE7FRc", "type": "arrow" } ], "updated": 1679582384019, "link": null, "locked": false }, { "type": "arrow", "version": 1507, "versionNonce": 1349443400, "isDeleted": false, "id": "NonyP8qmM2Z-AlSyIZsX7", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 0, "opacity": 100, "angle": 0, "x": 1517.5563048823324, "y": 598.6885078037064, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 82.99534220159558, "height": 254.9183673469389, "seed": 1164992568, "groupIds": [], "roundness": null, "boundElements": [], "updated": 1679582441781, "link": null, "locked": false, "startBinding": { "elementId": "VmDnbIpoDFOutwik6JsWM", "focus": 0.7408729712240844, "gap": 1.5563048823323697 }, "endBinding": { "elementId": "w30P0P4C-dn8prdwZ-ayp", "focus": -0.34903386749614573, "gap": 14.081632653061092 }, "lastCommittedPoint": null, "startArrowhead": null, "endArrowhead": "arrow", "points": [ [ 0, 0 ], [ 80.44369511766763, -0.6885078037064432 ], [ 82.99534220159558, 254.22985954323246 ] ] }, { "type": "arrow", "version": 679, "versionNonce": 742786872, "isDeleted": false, "id": "H2D61HeYhDsZRRdJE7FRc", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 0, "opacity": 100, "angle": 0, "x": 1007.5818787128072, "y": 714.1206896551724, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 2.1043501706380994, "height": 146.12931034482756, "seed": 1417449800, "groupIds": [], "roundness": { "type": 2 }, "boundElements": [], "updated": 1679582434934, "link": null, "locked": false, "startBinding": { "elementId": "3w7_TfRzbYt6fvwYn4MmF", "focus": 0.9262570779848291, "gap": 2.1206896551724412 }, "endBinding": { "elementId": "CrbY5DB6gjeBSpoxg162E", "focus": -0.04057793055727653, "gap": 5.75 }, "lastCommittedPoint": null, "startArrowhead": null, "endArrowhead": "arrow", "points": [ [ 0, 0 ], [ -2.1043501706380994, 146.12931034482756 ] ] }, { "type": "rectangle", "version": 645, "versionNonce": 346807096, "isDeleted": false, "id": "JteKDVc_Xv35nz9lgZSRP", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 720, "y": 901, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 569.0000000000001, "height": 203.99999999999994, "seed": 1689005475, "groupIds": [], "roundness": { "type": 3 }, "boundElements": [], "updated": 1679582384019, "link": null, "locked": false }, { "type": "text", "version": 318, "versionNonce": 803459165, "isDeleted": false, "id": "Z3R9_ktvp9tsnBVvIiqP2", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 725, "y": 934.5, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 552, "height": 144, "seed": 1160150467, "groupIds": [], "roundness": null, "boundElements": [ { "id": "H2D61HeYhDsZRRdJE7FRc", "type": "arrow" } ], "updated": 1679628400233, "link": null, "locked": false, "fontSize": 20, "fontFamily": 3, "text": " \"predicateType\": \"https://spdx.dev/Document\",\n \"predicate\": {\n \"SPDXID\" : \"SPDXRef-DOCUMENT\",\n \"spdxVersion\" : \"SPDX-2.2\",\n ...\n }", "baseline": 139, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": " \"predicateType\": \"https://spdx.dev/Document\",\n \"predicate\": {\n \"SPDXID\" : \"SPDXRef-DOCUMENT\",\n \"spdxVersion\" : \"SPDX-2.2\",\n ...\n }" }, { "type": "text", "version": 435, "versionNonce": 222670835, "isDeleted": false, "id": "CrbY5DB6gjeBSpoxg162E", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 865, "y": 866, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 294, "height": 23, "seed": 76153389, "groupIds": [], "roundness": null, "boundElements": [ { "id": "H2D61HeYhDsZRRdJE7FRc", "type": "arrow" } ], "updated": 1679628400234, "link": null, "locked": false, "fontSize": 20, "fontFamily": 2, "text": "Example SPDX SBOM Predicate", "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": "Example SPDX SBOM Predicate" }, { "type": "rectangle", "version": 255, "versionNonce": 737332040, "isDeleted": false, "id": "7kH9geRi6esU22QvlyYhE", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 1348, "y": 899, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 580.9999999999999, "height": 209.00000000000006, "seed": 1926615725, "groupIds": [], "roundness": { "type": 3 }, "boundElements": [ { "id": "NonyP8qmM2Z-AlSyIZsX7", "type": "arrow" } ], "updated": 1679582384019, "link": null, "locked": false }, { "type": "text", "version": 409, "versionNonce": 388218045, "isDeleted": false, "id": "flXsJqsKroTtAVbHiPdXm", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 1362, "y": 941, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 552, "height": 144, "seed": 148326147, "groupIds": [], "roundness": null, "boundElements": [], "updated": 1679628400236, "link": null, "locked": false, "fontSize": 20, "fontFamily": 3, "text": " {\n \"name\": \"us.gcr.io/dasith-wijes/demo123\",\n \"digest\": {\n \"sha256\": \"124e1fdee94fe5c5f902bc9...\"\n }\n }", "baseline": 139, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": " {\n \"name\": \"us.gcr.io/dasith-wijes/demo123\",\n \"digest\": {\n \"sha256\": \"124e1fdee94fe5c5f902bc9...\"\n }\n }" }, { "type": "rectangle", "version": 257, "versionNonce": 1762271816, "isDeleted": false, "id": "lshAlXutMLt73CpEhKjsU", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 944, "y": 930, "strokeColor": "#364fc7", "backgroundColor": "transparent", "width": 322, "height": 37, "seed": 143970317, "groupIds": [], "roundness": { "type": 3 }, "boundElements": [], "updated": 1679582384019, "link": null, "locked": false }, { "type": "rectangle", "version": 358, "versionNonce": 500565560, "isDeleted": false, "id": "F3eOX-i63lrQC_B9ds8rt", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 765, "y": 978, "strokeColor": "#364fc7", "backgroundColor": "transparent", "width": 366.99999999999994, "height": 79.99999999999999, "seed": 2103292141, "groupIds": [], "roundness": { "type": 3 }, "boundElements": [], "updated": 1679582384019, "link": null, "locked": false }, { "type": "rectangle", "version": 112, "versionNonce": 1552149832, "isDeleted": false, "id": "aGAXUUxd2R7txkg8vrvzK", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 1456, "y": 1011, "strokeColor": "#c92a2a", "backgroundColor": "transparent", "width": 95, "height": 30.000000000000007, "seed": 127386349, "groupIds": [], "roundness": { "type": 3 }, "boundElements": [], "updated": 1679582390669, "link": null, "locked": false }, { "type": "rectangle", "version": 157, "versionNonce": 581467960, "isDeleted": false, "id": "vqqwAhUQhEsiS_GpwUXyF", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 1566, "y": 1009, "strokeColor": "#c92a2a", "backgroundColor": "transparent", "width": 335.99999999999994, "height": 33.00000000000001, "seed": 1721816845, "groupIds": [], "roundness": { "type": 3 }, "boundElements": [], "updated": 1679582384020, "link": null, "locked": false }, { "type": "rectangle", "version": 145, "versionNonce": 428617800, "isDeleted": false, "id": "4eH5NNKyDNk4n-CC4ozA4", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 1525, "y": 958, "strokeColor": "#c92a2a", "backgroundColor": "transparent", "width": 380.99999999999994, "height": 38, "seed": 211838669, "groupIds": [], "roundness": { "type": 3 }, "boundElements": [], "updated": 1679582384020, "link": null, "locked": false }, { "type": "text", "version": 352, "versionNonce": 730937747, "isDeleted": false, "id": "w30P0P4C-dn8prdwZ-ayp", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 1552, "y": 867, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 152, "height": 23, "seed": 1299145805, "groupIds": [], "roundness": null, "boundElements": [ { "id": "NonyP8qmM2Z-AlSyIZsX7", "type": "arrow" } ], "updated": 1679628400237, "link": null, "locked": false, "fontSize": 20, "fontFamily": 2, "text": "Example Subject", "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": "Example Subject" }, { "type": "rectangle", "version": 169, "versionNonce": 137291592, "isDeleted": false, "id": "ZPn3ZA2AClGR4p-PLuxm2", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 946, "y": 327, "strokeColor": "#2b8a3e", "backgroundColor": "transparent", "width": 351.99999999999994, "height": 48, "seed": 74231107, "groupIds": [], "roundness": { "type": 3 }, "boundElements": [], "updated": 1679582384020, "link": null, "locked": false }, { "type": "text", "version": 212, "versionNonce": 501818579, "isDeleted": false, "id": "reLh8uZzJo79CKS_R0nNP", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 1146.6666666666667, "y": 102, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 325, "height": 35, "seed": 295133763, "groupIds": [], "roundness": null, "boundElements": [], "updated": 1679628452682, "link": null, "locked": false, "fontSize": 28, "fontFamily": 1, "text": "in-toto specification 1.0", "baseline": 25, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": "in-toto specification 1.0" }, { "type": "text", "version": 140, "versionNonce": 1980804061, "isDeleted": false, "id": "baMZV28Z7YxHSta6pgqi7", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 1031.3333333333333, "y": 147.33333333333348, "strokeColor": "#000000", "backgroundColor": "transparent", "width": 563, "height": 25, "seed": 1574104493, "groupIds": [], "roundness": null, "boundElements": [], "updated": 1679628454524, "link": null, "locked": false, "fontSize": 20, "fontFamily": 1, "text": "https://github.com/in-toto/attestation/releases/tag/v1.0", "baseline": 18, "textAlign": "left", "verticalAlign": "top", "containerId": null, "originalText": "https://github.com/in-toto/attestation/releases/tag/v1.0" }, { "type": "rectangle", "version": 47, "versionNonce": 199567928, "isDeleted": false, "id": "fiJpZ7JLtMWPYnHBPTaMJ", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 1733, "y": 215, "strokeColor": "#e67700", "backgroundColor": "transparent", "width": 109, "height": 37, "seed": 1157446829, "groupIds": [], "roundness": { "type": 3 }, "boundElements": [], "updated": 1679582384020, "link": null, "locked": false }, { "type": "rectangle", "version": 82, "versionNonce": 1879291208, "isDeleted": false, "id": "7pV1TO5IUTr6VjoFumVN0", "fillStyle": "hachure", "strokeWidth": 1, "strokeStyle": "solid", "roughness": 1, "opacity": 100, "angle": 0, "x": 1587, "y": 390, "strokeColor": "#e67700", "backgroundColor": "transparent", "width": 228, "height": 43, "seed": 621588483, "groupIds": [], "roundness": { "type": 3 }, "boundElements": [], "updated": 1679582384020, "link": null, "locked": false } ], "appState": { "gridSize": null, "viewBackgroundColor": "#ffffff" }, "files": {} }golang-github-in-toto-attestation-1.1.0/images/envelope_relationships.png000066400000000000000000005700471470602552500267430ustar00rootroot00000000000000PNG  IHDRsRGB IDATx^]Eه $JGzf "қiR"HW@PzQ)" ( "EzGj v3wrswoٻgvϙ3̜sv H@$  H@$  H@A$  H@$  H@P4sFH@$  H@$  HSB$  H@$  H@f H@$  H@$  tM@3D$  H@$  H@%͜$  H@$  H@P4sH@$  H@$  Hk:͜!$  H@$  H@(!h攐$  H@$  H@s@$  H@$  H@]i $  H@$  H@@ E3$  H@&LO=T;1|8pLn$  H@P4sH@$ H_w9Ԋ_?~ӟ +---3e^_  H@WpY H@I?qp 4kySO=5n;]g4`3-=P~kı-r$ M@Ѭ$  H`&x'cGy$YdtM_Wu]1sGxLu^x!~c66(;C 6 bk$  Hg( Wk$ ~L୷ފ}{1sI'> 1y83/_~] NAd5Lte2,Ǐ???T!.=ܳ gӟc38#^{3$"R>.,qYgꫯn(o-=V$P%E*Ay$  HZ=s-jv>(9;$?vVs׿[viADikkK"wݘ8qb|<{SNYg@6Y͏?x.q^YKycmIj{~8Aw]ר=+ H@o H@}/W_}u:KϴC>Q(GbFq:$pG4eX~N;MDtsoB:g}мfڦhFX%\s=wmhxw\sM׿uR) ,@0O "o zW!l$;&GV$  H@#h8$ H@3{{GUVY%.™X~ߦd3E3?ϛZXQ\fuOF>* Dp,,H҂pv饗L7D37n\ajڰܷ~ Uf3W>8CV AV>XnX2,487M7ݤ۬;$ 2͜$' X%7r,3Eь+SO;}ᇩ=#GL"g>󙆶(jov<ꫯk 4(-iWv4VA駟vء#̎Y$ D3*Uw\ +F3nm67qD1{xg:o|#vu,o bU4:|>v$D}7.${< H@͜$g ])LO<ĴB s0# k7Pg .o~j}),o+)T@w^{-9IϜ+8p=3 q駧GDO}-&LH!$WR-! wUnaC̸az뭷K-ܡ8oL,ubgE$ P4k Gk$ &"3#E(kgG koV8ޝw9I%QsGr}puF"00\v<\J38s8p.1\suK謷}0!:(02˔uַK-T &=Q :=k+%a]oy⓰Z N#X/:j=8:+,YJy]OmXbC:#c-3 x-DG/D BW+ OEBvu^4g-!yb-8ؕɏnni\tWPN3B`q~we46^$ (Uɣ$  HȂ!XTrn'!8VT.8H 34(^}/9UYQ(rrSC#$f E`WnQyE-GK.d3B !yQ:r{!ukfS6!(g9(p{7SSChe][U$ƿȗOOvii>"W^+h_ja}.>!Q \9;ʅG_\|I#/bbeQx,^q+Ɓg"_^7rf5j'{k1=$  H@%hX& H@3@^C-KûJŁãu*JGUh_k¡CN9S;BTv_e |S+;v6[ '{S9ʅ7v%t q0G\Y "v8Λ6cGҼCQxgdƥ!rla/mqD;]3#wp1kWtba"tZoC&' c(L)KfV4͊d0gVNͻ}7N:餲J$  tM@" H@}@1Uvz. DM74F \Bp57dȐS}E;v Y~C2#FL)an+oBP+WXsmD?AX{B ٴwuW:!. m,rp#PT`D16z@TYp۹3 +?R("E-!dƥn&:ʅC}~DaS 3Ɇ᫳u:8Xro#8̹ qϱa4])N̨uΖ_I4C,d!~ӟpRcCƥ5v{$  H@P4sFH@@"PtdwK^vƔN6lXt" /P1[TQ&28F8p:@hE/RdP+9{T1D;c(SO=vCC`οS9Lp0!dWW3g[y#xZO Ai5*A!7#<d᬴jrֈ03 \!@HHgwDbxv1L<_4_i/$( <=@X$  H@9f=֚%  H`&ȋd儓e' }J9gVn&"9"A=xR0 KKQ)2γbY~+<ʥ9.pp0 . PaQ#>S>wĭÇ~8]YJE4jQĈ C"oY΅*)^{ixa~*s\B |B*Dbx s06,9|,\1.e>77B4qgvD|4NӅZӼ_8jzN_'9HrGDtCys g^ÍZƒmI@$0-E3g$  H  ^S9GUE[Sr m#!~Wu! pm\A) lW^y%HP0Arbn/& 61 |)L.goN a$ɱC'ξr1 7Ќ7fT qn[ a(1^{s6jS".B\|E)NܭEW\uOYab%u= H@&h $  D'xXuUXzNxB[k:FqcDC[nR 70}!@seXM*ՁC (~pcL{ĥGvL8 >3K3><BzM %  H@@W͜$  *ͲE{r!,BE Q $  H@End H@f4bzf%ԏWcǎMNE]4 $  H@@efy$  H@MD$x`wy)_rΦH@$  f}e$$  H GaD H@$  4YZ$  H@=Nٞ{;sy3|$  H@f H@j%pwlC:V^yZx H@$  tI@ " H@@#0zaoC=4=#<2no-\?y|gb=QFřgs9gyf#0y4rJ{6{l|>Ydۛ+(yv H@P4gI@S㏏#8"oƯ~6lt}>v'*y䑸kbM7=q~o}3{\iѱ;$qSO/PFpi"'+5K@@(5H@@\ptUXs5?as11`/4>}S*jovlv1a„ 7W{jc;ګG]O#cwVAL cUVZ}C<S zo9Y4~9ꨣbfkDu p 袋6VYgϨf'y}(\Մw}Iⳟl kҳs< gm^ HP4#g%  ~/~ /pUuf59ohPΒWu8駟>?oyYGOǕ6_L RryM` qu? ֏>hl$_byU )/O~8/OW\qņ7qYPbj\#xӒ~lQ-KDQwބ2VzV0/^; iܰb$ 'h󌽂$r"bv$E33os=?ȨʢZk_MS/Џ?xe'ׄ$>eT{\cmMɯf9WZ^ O>9oxꩧR81`?!6ҝ裏?Lǰ@C1b L=Nf؊K _B0pĈ[w:_kv- e\kȑ>ݱQ}ԡZi*JLN<Ĵk/Bx˵{spѡy{Ѭ!ƦrT_wXqF;._}ڈ?(X\욙Co=h$6guDQYoi;+H?I_wqGV,9# F ϙ7|sXLCLbӌZCka½NN . >ϥbtv6 1}O\F7_^wf8'%kg?Ɣ{9EnIȥӌw"o\dtwٵ=(# HP4#h% nxWS^-'VpuY'G-X :4b򕯤O wiXmՒHC~z ";?cq/ 7}BbB~O8.rerNU2)A$ym?Y[Fc\p bᄸq-7JQ o~,L4q!0DD& ڰr-i7JLɢ9nB #͌#boroAb^L¤b=m*wE8 q}k_8W_}u _G}Ոfɒ8a0SԈ9/9䐎Bݢ b$piB8Ў;ؑ˧7aNdNӟtr0Ђ }*c+\"b-R9a9Ɵ\?9$(&nEƢxE?żAc60v:k,Ӆ`ƒySoi#3p#/oB*ayWXApV\> _"Ӆm#B"oW\<rJ~_!䬿iRwm_0#dyUWM8~86sX\eiԖZCu>=jy':?`^Y_p ʹqKKR89"C=eJ,6,,%Av1\k-/ H@P4GI@}@P b˜@[,H[0XgI2rtu&4RɃY ߴQ.&mCBW,99u,h7u *PXP*&gcE'OvuXp /{}8'x BH\x~ !/M{M5 -x㍓P‚w 8ʸW86,vYdguVj u2ϿX`fq{{g+ƘB`PxվyOsp\r7o|AJW5G> 4}Ky$ P4?ϖz9,a@trD뭷^EѬXg"/ ),J4X,ZΞa"qX9឵y2%@DQvCeWDZ0ȋʼn'*pM,l YدɅQ3RIՏk9,, p?!6*,};'&!N,dA rGL^xp3?fwM$a~4n3<[xqAaNŖZBݵ*=jwp#"񾦿Y?eY}Ź7 ]掸ɳ#E;)yVr{Mf$  4#Ef$ 0^[*;TX\%O>B\pfTܝ0 Iop,bpi ]HDiai,Y(aGXjIqQB]8ZG(/qp.:,B㊡|/h߉'B p/>,ϘCEGTxѰ&7!8)sf唝$8 TUii+s{&9Le9ø3+rGXx"L CBw]G?QVGqJ}yYE<+eIJb@ q=ɽLVg)&[~v {sF*Ύ`QQx3eys{Wٟyx! nV3Iq'ᙟyCNBƒgsA ! `ca *S[ERG~,=[h x2^#EZW=Iɂ! /-,nj!9[ b]p%˜E{^P+<E8sa<;B LK4GTdvv},UbJ}agntUr}$'gIN|AxL3IGY7kn\ܻ+92YDFCb!,Y|jL2_=o[UAbݧR<7M4}ԉs*H\kx0y.!4VӖ=ĽX3ws\NJDC|8X=ۚ%#qD3p>P)>`x7zrV H@(O@̙! kT?hzE1xlv +U<6 a??BO .  T7oh3l#bQԕ#)eV:x;Ivvˡ\&Uq縼(FU,0JeaCB $C&n" Np\k"N=LX!Bw B NR6>ᚈ"2"#DUۖJ!r"ީ#rWw*'+]y706/rz&q^V{^x>m# H@ (Uf$nOb!s.+< ' gPN^mYlqSm=8 B2gǮjYi]m=W J}dߕkE5nLB}PMkyUS_cjaR5ʝיםktN8-ZN-x?+ZY|(ғm3jF̓Uw=9>- H@3c%  $3B4Q ]@7B -@1E61"]JobYZjB&">`8rtpn/D2(7tiԖ+$ O@Ѭ=z9t0*sB8(Hwyc҄OSW}oL$ E@lF::!p뭷yg*JGbnm}IâvJ@@&w$03 (L^[@D zcJ G+w9C8#ɱ% IDATSa<W}~$ #hchX@uȉChg /](g{n|k_% H@|_^B@$h.I@O>dLwWĩ{1p7X4W}zx$ !h#XT$  H@$  H7P4ͣg%  H@$  H@zY`R H@$  H@$ L@Ѭ7m$  H@$  H@f=J%  H@$  H@z3E}_f c=>`w}q H@$  H@$HkfkjdMfzks9qmuc9bVO|k^8Fs5W7%  H@$  H@ F/B<_s=Jː!Cb׎6,oĈ#^ۇ~/NyEYgO>dف\b%b6 70Pk܆K@$  H@$0 7 >1`2pWkkL^>;<@ %\뮻LnY߿|͞}ٔ\޲m6)#n%  H@$  H@U@:phhl}n5~v&;~{єG._{:k~^zL[\ &y)bh<>>i|IBZˀk>9Zg+biE7upБ2xh =Zg1hw{Sz6---}/N8d/Dz+[nxWCyރZ$  H@$\&p|pcҫ-E,sFEqц6ha"]uࠈց:(ZZNZ"b:(9'~Cj" J--:-S*hVD)noir߷{=Z5|\;!mICh6ĴhhmhLTζIS'{-&GS8~J'DMIe)%n\ZZE;.$e(7`pGK :1db|K<1N>8CyJ4xB4[guR2Z(^yDqԨQq5Ċ+x( H@$  H@h28>xӢעub<%Sok:dx }$$qlho ^g Zxޣ{)>y1`؂2]?^F?Ym{ms@2 BQ}h0pjx\>ceޔOJZLF-m'ƤM'X fYlmoE׮z=^{+\@ؚSNaÆСC_qu㣇.Oޘ:4pEc!+\U7&Mh8,%ЧE+2bDlE_|1]v׿X& H@$  H@hbc.4&17/hϦ}_FVyv%ri ܰӧOf8ƌ9sģ>i$  H@$  _/޹h01.>~xϙ޵ǠEV{UU?6l~j%^0Ϫ.Џ곢ٯ~w}7 W_b~-$  H@$ B"޿1뒛n~N|}jm6˧TƍeY&^xᅔwG͊Ԫ;ϊfK,D<g83Q$  H@$ >B`;\#b(4?721vW?O[c?d"t@nh:1"^z%`| H@$  H@e9ohQ^12&~* ovJIFkkkUzPh/})ӟ4;$  H@$  H@gC珹wvx{y~.qqqǥvmWX@͞|>z\f}Qxqy7)ϝws1Gʱ[f}#|c9眔wމ_>]wݴ'}tq_Wc3fL%W|~_Nj׏;,[o.A1lllUS_^|~-X<5}X4{7W.+_Jchfxf͓$  H@$  4)q)rRK-ɓ'ߟDQF_9KYsOVZi|ǟ{B uzd'pB*F~m=7xc:`dѬ}6lXk64lLy)$fzhb_B&.lMٜcmoP c/4jsL4v؀>}i N2dH:=o⤓NYfXn.,?m7n\TӬ=%D-y'V_}fr&#<2Amdy]{TS͓$  H@$  yR1򈷦Q:|g}y}3IkQ\f_|qZšoNo~qwS6|8㠃vpƵzhOvUjcO`H{YO"C9$GuÄN.5Pg#'Z隔[o5 ) :\I.2zJOf{Z}<J",2̓f„ I&4גnN\{衇ҹ` x~ߏ]wuOxx¯ƈ= ,[s~_{O~K}h+ eMj0h6|nIZb%6<@|IBE_`R3ϱ)ШƈT~B]v%9ո&/by gb t&-x`䀐؉'w?яmSpoX}$׿ur!!!\ӧjc$  H@$  E}Z1Qc^5Q\YӲ1bDhƿʅ% k ژ)ь5ji!KX/Ric5F'Z]w]G{y=Xl喁ᅵnp̝|1jE32nm|_N[ѨGJ#&I䙥>}J4#~[oRj9\,@Q0Ī9sj8Q ]dnLkk(|ϊ?>Qa<ި(4C{u;`EiRy emvq~b()""32v c%LwOJ@$  H@K޿xcޝ[Ry2,:.a-\IyúpuXvƼ6V3^XͬsX'cBMՊfM$f#~J /c.$/1Dnt<S@͖^zV(-=%]s5馛N,_ZqjlDJw]}J4[x_N1nQo鉜f.l}Bp+:rRO?= PLYB'ıB.B9YWm,n9AR=3_\ 7%PlUnja$  H@Y+&xfdhs95&}):yuf8cNh)}GOfz7;](-$ч;wXEK/Mİ;Z:rx4@,nq$  H@7O^,b1%删믿>?v$F"0D#:o)W6Q4R4 7q!0 銑cŶYMN3R&ל31%c-g?C9$m4HJ(K}hF{/X9-&|^(93?4BZovjmFiWZ4cnI@$  H@k^?n0`֘/%=:mGɻgOJΘ݄=5lvyoHьkz)ꫯNir|CxggV, ׾Օ뮴{&ǽzXk̽ob嶯k:^q_z)ьɎRDtl-E\Z*l'bB{nria#}Ő\'[bcӬàRZKN_\N3vH9F2a„8Ӭ}e5jT']w5Ç0LD!ֱ'pB;a;NKήuY'>ϧ]7ٙh%֚ qeiZj.4rUWes+ 7j;BDcΆ5qِ巏968 FRwfe(mf^{nwVֈL.p\neۅ3MD,T;.=7_W#$a0?Y#|6l0qĸ;G?Qi /0=r)fG,\6p 2) SUA$  H@ ~h:2z IDATE_f[y啓,`))Dwy'an$_fepa ҮoBBH"l6*7L ֣uEBG4|ggNJ?#Fg&Cj3lPqюrҼrY4x㍓m|v~6)S{)nm"Z!.Ij-ITֈV@Xr?"O95'Yf):@p G,CSKڧH$GWZ-^''jhhOڏ-#ЯAwo-ҏh*Dߓ&IbB ;loװ9hfh-$  H@$ ~M}SD$!M"%1jO#Mɯ?#>U;͹MIo?^dk+ mS,%ȥy9~*\: Z貛.oZ ]ʚ(5fZ$  H@$  H@@SP4k0(5H@$  H@$ h֘aP4k Gk$  H@$  H@MA@Ѭ1àh" H@$  H@YcAѬ1E$  H@$  4E Yc8Z$  H@$  H@h fEp H@$  H@$3 fh-$  H@$  H)(5fZ$  H@$  H@@SP4k0(5H@$  H@$ h֘aP4k Gk$  H@$  H@MA@Ѭ1àh" H@$  H@YcAѬ1E$  H@$  4E Yc8Z$  H@$  H@h fEp H@$  H@$3 fh-$  H@$  H)(5fZ$  H@$  H@@SP4k0(5H@$  H@$ h֘aP4k Gk$  H@$  H@MA@Ѭ1àh" H@$  H@YcAѬ1E$  H@$  4E Yc8Z$  H@$  H@h fEp H@$  H@$3 fh-$  H@$  H)(5fZ$  H@$  H@@SP4k0(5H@$  H@$ h֘aP4k Gk$  H@$  H@MA@Ѭ1àh" H@$  H@YcAѬ1E$  H@$  4E Yc8Z$  H@$  H@h fEp H@$  H@$3 fh-$  H@$  H)(5fZ$  H@$  H@@SP4k0(5H@$  H@$ h֘aP4k Gk$  H@$  H@MA@Ѭ1àh" H@$  H@YcAѬ1E$  H@$  4E Yc8Z$  H@$  H@h fEp H@$  H@$3 fh-$  H@$  H)(5fZ$  H@$  H@@SP4k0(5H@$  H@$ h֘aP4k Gk$  H@$  H@MA@Ѭ1àh" H@$  H@YcAѬ1E$  H@$  4E Yc8Z$  H@$  H@h fEp H@$  H@$3 fh-$  H@$  H)(5fZ$  H@$  H@@SP4k0(5H@$  H@$ h֘aP4k Gk$  H@$  H@MA@Ѭ1àh" H@$  H@YcAѬ1E$  H@$  4E Yc8Z$  H@$  H@h fEp H@$  H@$3 fh-$  H@$  H)(5fZ$  H@$  H@@SP4k0{'Eu;sP$bΊ0+Ϝ}*`@T f&Pr;3Tw6fwv9lwUtuB$@$@$@$@$@$@$@YAfhf# @Vhf(H+$@$@$@$@$@$@$@$(ifv8 dfvB$@$@$@$@$@$@$@YAfhf# @Vhf(H+$@$@$@$@$@$@$@$(ifv8 dfvB$@$@$@$@$@$@$@YAfhf# @Vhf(H+$@$@$@$@$@$@$@$(ifv8 dfvB$@$@$@$@$@$@$@YAfhf# @Vhf(H+$@$@$@$@$@$@$@$(ifv8 d G|&&n\ɕ<>$?7Or9'y<͕\s%=s|}'9|a_Sgx~#=is_|"Sg#e9.QaÇa 1gVVB!>w9U{EBmŅ_}!73>~'|*Ks<"8q[v$/)YfîQf`Y*QHuKќ#̼u׼ h7_o=Mfmj@(_ݿ> JP 9Px0(!q>6h7yUq͆Ҧ^kٵQ[ٲkE$XF   HHYBDI%h&&"%Ϻ%__?N+@.)k6դ@8 H;j0a` >Lw`-ONaa,,U+) B!G 30چs z_0`Q+u+h#,9vubSPgS' ڎ[s8[m'zv垡ŤuKJHa%(WqmG)g aJwu%mP3\aa ԨkMwUNU!:}±>;y!%@X֗A|C8/|w9@)^K#Gu*u7UH%mz^5u] _Knh(Q#qEBAױ!\o_G4[RB\wv>%\Gq§+cC:f:YaT˫^ lزYؽH٣id$@$@$@$E3;]BeN`ҼO3ǥ?b˺售G񝏰^n (P$Eb),vExHt:-8G w^wV 'S#\o*+g My Sm~a8Owju5A;eU{E:%tZzi!G ZP H+ׅ KDԺ)iȴSBuS00>$xi^iػ(edx9BaTB{CAK%t:9TrEds_؃~r8'Gnf dkUG>}鋪?>`sBt}%:~>xk:}-?-E6Cy:-\'TվϓeUYP>sLCw2u׾\yRZ44   (?찧hf#@xk4yꋱҦ~kW "L٧P3r<"uZQBzܩ^cӿ ieZ`q@x8D!ݜΧoq<>siJri+j)4]U1/MyD<"R}Zt!=uL4"ZF *,A\| 8w|S5c=[t"6   P(i.fv8 (Gn|e㉅HHH*fvB%h@kd4/' (IGȴ_?F4$@$@$@$P!P4Lp(/#G.wAppF̙3cÇ-"999;֘xQڏʬ $'   (i&fv8f>LOe+r^ZN;4M7$ƍO?=KAAAR+k*gz9z׮O-[/~DퟡPHz-ՇJg}* b5juЮ](mꫯ'ʤId*r{ 6_~˲rJۤqrWHKm#`g}&wbz奯_cHHHH`{ fv8fl;K裏̊dڴif9餓JdZ?^qY싿U.zv2#ylݺUN3g&AEӧKy 6l j֬t_O^nv%e?)"OTRnʄhfɊ_^E)m1=f7|tE^}Uu]"یܜeW䓋Έ}%   (!JǬ>믿ydmYΒg>* ?9mx Y^gɊy=|>ŵNapr 7(g>}c0(/GyD|M۷of b%5k&?8+MkٲeţtcY0ΓC=TdW䓋iV}y E3fv8ffY4)'S^Z=Jg`?^TrGӟ)z0unݺ)Kۉ3!.c:*h=< 29=3e#  (AAǘV0==##F_]M9Tl-[4Lz'O>xHԫWOy 6LyFO8pc.,,kV൅A4[d<䓪<{3, S)G)gVSZn-.L:uT/V^@oڏ:bz9i,{zk~:]{L=//O>hUfo2MqDy7.z'L_TT񩢖'py''F,(f~ERo$A$@$@$@@p+ASn* ?%{y2dw ^iy IDATѣGˊ+^=z xM{ 6ğ?|; 6bJ}J{G|P6l(TCXU#JUVs25h@^z%iTOugVAPkѢ:?P1q'S}W' B#>JÔ8#Pr@D_dرr^0a?VlҤI̾tRu /HӦMi'9@{us A1EtʂzOBeF߂4 Dk+oSd/d=/>NDq=3fƸ/Xn:AŠ+B"dE3sa7h|rX "ʂ~Q?z`HkQ믕l.`;kժn,\\_2%kl{,L  lBӋ%xmzea%NxX!zy%f ׻Nոp+"=k`E3O, ?#`s{4n+}/3rw1bWx2k׮%;j=8lH?2kC_^Ɉfx9(LWT潖 zӋRvA(;%HП>P|{y$g   (w4E3;cZO xt9"$x@jkӃ:w(BTBKL SIu0` GPjItZ 㟎J4PNr>8i$]oz AT7oLǴ`b_\hOEܤѷ!@L}R瑬hkM4u1>sU;,0 q"aAAAT(𺄈j J_4!n@ukN4.U^GyCnp@̃Ƚ;oFj(D@C=4@oTm k;gR:?єTAc+%,>S鏘~*ofqx!Tj4Ѷxu?s=e׾dRxa{MG~l:g•Ϻ%2ɞt$@$@$@$P(OǘVtLh^؇zs`%/\PM^)6LO--})zj&+A$´3؋z.eI0ߔ7M43sMfᆱʤ&a 3O4Ҋf7ٺB 8_'yq[?t wG~1V,N:7(r-耶CL%"C0ea zJvlAo: >*!~Xe%+L1& O4$qu(雈9p顖JYM$pEJL&ĥRt9ɊfN:.%&[Vӹѯ ;0kS۩ݜ?hmLOŃ(I*&3=SqڢAC+ļ[EP{,^gBTo c;>7ox}bG4˦~a,ZÃ]܀Xt;=3YIdžmGteb   (/쐧hfc\ +zW(o ҌQz%C/R 0 h֬Y<鬞y뭷*A q $`5x)i!;ƀF4\)^jtWԕIUQbЍ5RV::"DTX3e,y~xٹ~+{ )A Bзz1eUoz` Fc ̊ZKpi^`h[A{LyqڐSO=UB`Ï  ?5Dfs5tʢW]O],L_Xѻ]N[lŨXcu\5պ]~+#~x>X~縷w1jVX'ckA3`/V]/‘J3!u~`Ѳ<#vG$@$@$@eJpiE4Ȁ  bb7(B !` Aꫯ HM:U-`nD3' p`+KCu:8(sO5jkOŀ P/slyfGXz&yKʽuxT=1@F}:z0/;x`bo,r]AÖ*~ 1H@APE*\?DW^yJ(6$ʍiUyt~qmBNJ 6S{t\@)|z\'M{M, -qOQw%K"`gl ;ɮpz:eO}u[4dy%+DlxF?}1mnz>g0Fw#mI랃s.qӎǰ ʦm?JZD<28vN].{ܩKe9\:Oe yesˁ"判.pY4ubN[\ 1P#G5hʎhgO {8>^0O=4Z=>t9C+6!A)qP}wTɭ*4=wmjYԲ, EgS4ÑVH z@ x`:gǔPscb ҭe4˰׍LYĀz/ Ox(Fڣ'M |:j^Uٸucx:୧H7D?,/ee֢S$>%i Tdq!,xZFRS*1'    D֢hf# @Vhf(H+$@$@$@$@$@$@$@$(ifv8 dfvB$@YIՂX%y?|呬dy2[vԪUKq YDZ-bDы9$/Z:1ْ^D"IaÆ$Rfwq{2.g4˖-MӘ+w]˗:7Y?V6?J.]J5Z~,m}W`HH!@NOhf# X {qqqߊ+ȁy`/s`租~vŵ˯5%چ c IDATo0nZ~W$ӃLs0{?QhrssG}k֬ l7& n*UV-SQN=8޿!իW/\7mvҹLZ4eGMOQQ˦O2<}Xf.)aP9--ZOU]Hw2%=TDKku<js1}u~zSN{G05Ѹ86}O eu^W7-D_" VT6 =@ۊ? =;`ocs⥏v߽o4xvEEG&c'zz{5wGvN!~ʷ+ G7^{h7~o6m$k.V8/OH6'G,en:dۼG'{/cIvhf#@ ?S_ +WҥKƍh^mwуvx5j͛à Pg>=$xxXeիW|P5G{@NVp2@v|hm~hOii۶m17Czv0hco6xFH&Mi! _l6͖oժU%D7dɤ1۰4y~wҵkWe,e.m}+HI=bK… յ[#&[ٳg+A%sl%+M4 {⚬X"[Dxg~! ^^@c絁z|+Dߏ~'YUIn"~:W6aM_-**Pu>Uajs!džusң~ n]'u}V"@>;T_|Q9䐬=E3;AGZf{J(8/vo/<-A$@$@$@$@F TU3WK`J C[`MGҢD%bG*T+X$@k4EWbTBT稿C!W1EUjJh3$G`*j#{ QB+JB!<'=R:#DӣJCT:oɴyn %D![Np=U|e->J-RB;SECݑ/Jo +z+aK $uJ_}tPHSg崫k$ «rcNgeOow_5j8; ϓ*""%4beXtK~^ NC "rEXUjINR96v`|vp9ٲQ4pV {GF!ԬYS;8%δl2\o`u'xB>_^zҷo_6l6'|j|pʵ^+5Jϟ5ْ%K'T=[,Dի&#G,e.N:h7xn7PQ?^9眬i6qD51&L{.HHHH*7K޻E64U|^( X[!-RJhPQIUr J(d1GpD2 K%\,+7-J[2o(|GwGq!9 ;"FW2o jJ '(NʋLwtJ2+!]D-~B|Wߖ"t*#VSŎ! ; 7VQ^>usL ߢslVPN>-kDjhI`RWky6~W3uwSep,8k#-$o n\"_SuTSix N Xt ZXH,nA|fv8VJ+ ^թSGvm7%?JX>kN+5"1Wu֕YF-+VP9Cm&W_}ƍ K&zrI')?N4͡C nl߾}Q9 A֮z9S裏UܹsU 0Ke,X gqZeZ-q߿x!->EAAAɓN;OO?څ @'PKYY+9uvj{)UzsU~! ƥqmLW Yc|5vI']Y7Z쐧hfc j9b! -ܢ&|.ZH8*2\]w O.xp͘1CQz~׽{w%gn޼Yb\ǎթ̈j*%~5nXyʙKO:Uy+@ v2~xv0΅G3K4ò+়{TʾJ $Pxy`mAũ5^kޝH2H`'ɦUx /F5 30vfFF}fv8VJ+ Ks:Bd/k[zo¢I4H8M큶a5W4Gy?Y"YFeӢUW]ʆիvSF!BʫQZj)oI&)o?n$@$@$@$@;v^6&yrǨ4kIY@`ûWȶ_J&,%\20 c(!OJiE44뗨#]x[  +9.\PM駟*qҢ_|f"xgyEW_}Uyz7j>nモ_˴2-W /=vQ I$@$@$@$Plw$XEJ,I`&NRWi|WOK30&l>\Q4 D(LDjհMdhv+Q ^d7 /a7oԚ9s{JMػK^^̛g" |wUR0A.]dرc Gh&͙3G-^Q򫯾:TJ D'jZn*EL$@eL`/e+ÍmX c6mȗ_~(yFS4JCJ]0+xtI\f͚z歷ު54bV\Vʙ#GTrᆕ?!aJ)6x=ʣΌVia;\Y3/    , ӇeI˾ʂ$P eO%IuС*&7fdwqIc+E3;$)X)@B1Lk͛%gƍ*9|p%:{ "<ʊ}ʳ jr99/5STf8xp'"aZ?ʴb \ve/2;zhiٲL˗+ oX16mڤ<ᴧ>:w}墋.R^i6gϖ &0Lx 8PkӋ@$S 4m4՗~b3f+mRX>$@$@$PQ lx,; ,7 TX z ZݛT0XW^o&uD쐤hfcc [6l(C QS1X_ok֬QeU*!`au;LqК6mZ7RSNU [4 DZ#<"'OXN>d5 zaHBCe{ @OA}3z衪x+h2;az,X W\qExAXC@C[ /Pn6.^wO=\s52hР nl;F$@$@;5P;RYWJ+(⚡pxFY(AMJi%B* O-x>5J֭klx`HhzK19#?dĉPUO!r)%joBT`xe{Rt nĊu!  L`SxT$ >@}y8j 0:묤+mBf%OJi%ӢٲeLB+Df͚%~;蠃*^lZn-P6ir9c A5W`f7q$    L8Z KbGXŚc1}̘1j f < B"f|*,LeT߉qv3N;dN F)B  f( 3J*Q{.<㘽[{.B aGb-rREd"9yR>^ħFFFifv8VJ+ *%$*7&MR_nzE_|1B ^3gT&΃gifr$    Lciu1k/-Z!9O5ÙdԳ"/e0^",s1E3/oZjR2O[D3LCDli.f?P N:%8XܵkW9ScǎvZ5+s:ޤIZ4C,k8 `ah-lVJ 6ub_)L"1E$ %Yv$#3@q [Ix`*nWVoOL_\Sx#b8&[7urv(Xb;#yx'bAC0[.]l& o8?Do +beUH#f6oaf SY+b!_-ސC= ͚.ZKM?<HHH ;l%Yy,~37Ns7 ʅ a.$6oެs㣮 g qgRG6=2T mR/E{;V- -3^Ҧg?PO1j 0`;D?_(!64becF޲(١LGZ!k Z!@$<]ѹk[:Eq1oHp2 ~D qp1Ւ7Oq+lcz*`UX,aTZ2! @3tffohp2ml2 @vDYέ1 O4Iz-DLu^h/&Z{=c/c{]Z`A\ X3)o=3=(׋%xEa3g"3//Ѧb .(!<&^BhÚh́"">/Twpf(f͒m(H+$`V)=*fe 4-Sbdl& 8w\3x ><'!@9jeǛ oT^pX( `\M;жCm6 ujՒG >apoܸZE[n VvQoǼo)eoYqD8~DmL2 @ë3ɝb6h 71{VpBc ^JƇWbV{E%U|PoFxyÆ Se6D3؁]9S/ZgϞi+̛O$Pr`4xVlٲee_7//O>he6"-1BL <O4K.ȏ?^M7o._tIbi Z0V-ȡA|ol 67+ +“<_Ztwm~|I(Ҕd˕\ DU)  9iMĠy*^Й |BbP!t Û1y:s^0Y //!|@XB &:ԳgOG|3e5 xQ!x9"1BwmU4$$x7Ij۶v–W436<*ZZSТVy嗷^dUfx! 7ܰ(ޚ_if^.[ÝMxK&6 m dM->Oܲ6f⭞ *YYfaxC3Y{Wx땰+#VCСJ/< ^ wm7դt\5 N`^ŖӢf\A@ IDAT931tV< i&C?ŚN8l҃/!~¥[(_› azI09lZ4K 8u8gLۍz&cvwc+Pp5_`[3Z};%T#Q?;־p-.|m>UE3;)H+$`ޮ`!ܤmoq8\Rnn5h3^MA$ZX3ІjA6=+i^/1m\0!C4Ѭe3^wuO?u7hHHH01Z=BBX3 <ծ]Q @`T"( ly$S?yE*< ߵBWlDxgb.J?(޴wipE,grhxa·~3KϮZY)hCx7/^f2`miX }03PtE3]fhTXL6mfƝ E+J% nD[3e Nhf(E3;iC\vr7ܰoS 6+|`s&,+n_|ÏZ* +q&yNjf-[Ed[HHHrX3p b:%_Ǭ`fʃz3cK S$!t`zLKVxDQ2m ϔX`O'O&x]8G{r,xUVJ҂C",h ,҅gf,؅b0R3뫧"v-mVVSHܻwT8cQxYrf{!hcĈ?wzpY,O3AtgO4;IV" W^*4gݤl((% *A2fv8 X!]vEpA#QWS!x ?Jx `3ME43Ne%l0E)%LG$@$@G:KnvRcV0B/"KW~t[\BHD.SBH xA"MvMd:{B4&lf`sq șr͢\ %#;vB%uwZ[GA4S"7~XzCDb$!"-\P#^~luLylS4KřHH*w5j]OYDNDOl!D/LSD-=3yRa xbA?+묳RS1/ZYo1ϏD3,ӧO۰fYihO3[Y<X?:pfC}xBԛC  fDtQLS'R ;=S}xvX}$~4ϴn4 i9-#ID,IP Q4ÑVH [oU-17{F?pX&o永@-VܱxDsKLTD3D1b-SYiF,Qoq   XvKm9%1$sE$aC2B@P~i`F3V7W7 ~Rf2CL+=K#z-l/`+ң `G 8`L fԵl*ϪUԂK.-hҙ2AX.2Q4CBV`Z$R?HqbO4!Іtx`-UxXnTD3V!X,Lf-Ed[HHH`&s)rrڢpA10! N-mό<Lo L @^\/r3(⭝zq&⭞+h&;=)QG%xN┙^TXπΊUM#ŴJѣGiذa(D` [4h 'OLJ$@$@$@$Pl|VҮ< Uv*f[R〫Ҫڞ{)M4)Su~*'Q4KV4ÑVH E3+8iHHH*<#OߖFW-zm*|XFV=?o;*tU5kF,-zsE\I *ûKB$@$@$@$@$ +~5"=ϕK_# r ecνsҲe2qYTDfv8 X!н{wi޼V @'>R}KdOIJb HlWVRv;ʹK{H֭)MOhV̙# $9-Zh>B$@$@$@$&=ms?)>Hʈhl{怴smdwh6?Y3g$@nԛI& lv}{|yRmߋIH  L63\$܆)J[m۶e3KT)H+$`CÛok 4B$@$@$@$u6ϺG6~x2k:UueeH"(^>O6ͺW Dw9X % V"5ER5E3;h@`]vم]F$@$@$@@ٲimX7z _N~'+BA`7俯FIѲ>IplE{עg^ǎ)dYٱfN$@Nԛ_=aZ&    q f7/ɶސ`6 mz;vK DχCjS?%#_!uҪiBܶQy9‰L`OE>ڶ-cGCH-ϯUGr:ߝ̐_Sw3 O<q7Zm UA\a"x8>_BEŗW] I>l;Hprj̪z+_NC>6oɭ朣Ntv/$ͫHXmgND˩h됨 :=_5KN|O ˶&I}$V(#]US4K]AѬ3c؞VS<^R$@$@$@$@Tm ?߽,[ :O%b{|!)ԹH I !#ڄE*-IcWE ! APnaCUs=Gÿ A9&"#"%#h-"8]1F vPH("H:Ju Z\Cq/s,~ZD-N9rj4uc~W;JK_O%f \uVP \sO[6#2AH>Tp"cp۹sUVC"㶍R[Wz#WՊрxܸB5+{NsEdZėWMu%RۨcraZj%]I˂dͲX+L8PHHHHH"^DtP+Ni6q%Jm9,Ϲ"VXsG<.30SЋ&ޑhBǚYiufXc vڲ$@$@$@$@$@$hڴtޝYjrfXOS3KѬ5kH$@$@$@$@$chԨS&OsL;)H+$`*ݺuW^yŊ=!      4ޛYv4GRh&&"!3;~ɐ uʾKѬLhɄBVmVR4FHHHHHH kԪUK2eJvS4ÑVH ]vEg7n{4B$@$@$@$@$@$jԨ!{Sf@ hf#mڴQ/{1yf[ !r'9S<HHHHHvXrR4@=Yj,inyf۶mnA|0#G_5$     ϗ:HO%Mbfv8 X!кuk9^b/]# .SN9ErsseұctM<      ү_?1cFyP4BVlRy(o>So,{nHHHHHH# N }{/=#)E,XqR4ÑVH -ZرcKEt<     ؞@aaT^]#3g8"fvS4ÑVH ͛Ke̘1VkYx lOիWOz%~aQ4BV4kL9G<7fIy T66lw.}QƫGbfv8 X!ФI8psʷ~+֭ӧO!ffS43ÑVH㫊*͌      3gΔ ;w>Q43B `QCx&<͘1N %p-6l4lPL"]}E)rd-ܶ IDAT9z7Nra#p%i֬^Z&M$ rbc.Ws6  {idĈdp냦hf1E33iy$MTm  ~']3FjժcǤN:j̙S_Jȩ6G7@Lg7פ@q_z|wE9,J 'Xϟ>x9vhf0E33ix`#4h BрU4C8لM w?’~E[ Uh8}vٲeKEd]b 7\;&nhf#cFo Y ǦE2YF]NYĺh(ϲ'OR430B@~3fRJeٗwn7`T0>2/ |IFY=<C0""BƎ^Dnl1{'M h^Dy_$S^H%? 5ńppLӒ#G50dB<'\{fxu>.ЂhA'P\(!/SӦMeժUJ(R jO?=zĉyKվ} S B~ZyXD^zIUNEȢ/O3l0. !^ VF5޽p2pFsU3\`.y=9qҥHk_ZhrYcӉ|m \7䆂%K_x`bF 9֭[B]_~eI}yY;≏s8G/gԜ `[_7S؟C{x60N@?/Tsxy}^:鋯ꊘu:`8-?|I:kd߿_5kQ Cj8>eȐAyb#2>?ʗ//_ɓ'c"us1[F_ko9tڐa@r$hŊSoܸQ i"_*D}B`W4CnƍJ;iɇ 6, k֭zOaC-/ pǗhuU.\5637r{gW6m-ir[]dotwjhQ q\#nLȩ\^7Cs;G͞ T?3 hb!d1]ty={o4y=D>]f{2u]]^=%_,= DOy{|޻Yğ#(Cǐ@ 8q'\E3]9QWD7&vo،ސbC?؀7MU8?С}Q?C7:lp|Ae~˖-[c5j ^cبB̀ǖD$6a#h hpg#{7U5; ƓV!k_EAUs7B؁7}K+xk )Ƽq񾼋ٶnMq hApxg_~EUh-QDd{1Ah sqGU"}-?SJHA9sA&:;-z/x1'}UW x|ʓS c3u Pfܸq:u{gcPʺϘ˖- K-XXËq„ %<^Ë {8Q]X?;xr?ȡ{k醪֗0:4o`9O,ysHHw1|/hkd+ݶF Uff8 8&pa/Zj ?[`Mt֬Y#7WzS7oLWm;BWl5kLyXEB xT&۶m[n􎢙ppLOHV]re@D3XHȑO {u2_f; @:Mo^| ld{ZlfV k)F2u0x+66"GU >#AA5YkrOu_H9sfeoP)Zs9@ tEXPO?T ƻ(D3-`\ 'd[ gt!+Zy" ‹F* Qz刂 @!6}DEo_L)qppLϪt_ @P!pIiР f˖-T~I?>OyaqKE! rcsgx> @lWTh1B5efhf.E33iK/Fx͞=gﭡP K*/x h ݘ?'D3O!O<_ a^)Ua7 Qg{bhZ?G9BDb~ `> @(xhxpQ43CB L aDȣ$l \zU_@D1OUfCM4scI$@1IWE$@Bs @-'E33D)H+$NW*A`3O@5GN7B8BbkoEfnPM {^.լYS ,y&O^ cߛ={v6lF ]ff8 8&@2gfq j, C$@$ Ҽy* =OLhf&E33i@aTC~#Bb#     ͚5S9L!1B+(K GZ!VX!/^\ƍ &MH"EdСO%\E33x)H+$*5R )*9 _J,s3fJ$}}@u-1f1:Ux1    !PvmX4ر<3ppL`Μ9j̕+L<ٱP4`I'Ylu"J<:?E3'x. @\%[o/D38KXS~G/LD,ZD<bw.YfSEc*%lݺud.-_իW~M6l[@.4ܹsgێ;T'Bul2k,۷:o~Zh!a/]v6m /1/l2ʕ+'|J?~(vp<8bYt8p@U[*41cFYmp/  g?<>h43A6HHHHf6Hfhf.E33iwY޽%SL2m4Bрt87֭[?(q ! ̙3rHiӦUg +U\Y  J!d9rtۻw|'rY_7nhKK4N ulb7nTzԢ͛7+)S *tB<+SrέYFΟ?|E4i?km̯@D34UTFsQ4 '}"   p@j 5nXqQ43CB 2D%K=˗/ ĉŋڵk?1;wNׯ/C5jҲz~#S \E0Btzפ_~^~n*o`TݲeƎ1>"xxt*UJҥKҫW/ټyլa ᙸ8Cõ$HD7?v)ԩʱuS(1 DG/ѬAK/EwS4s/dff8 8&0HtV4,X|Mh_\gΜQdTaZ_ؗA oꫯF9=誕BJ၆j54]h/8YLP5HHHHB@*Uhf/+vppL`ܸqJ8I&̘1ñnڵk'ȭVxq_B)[$I$rf+W'J#a:i>B%=5_9m֬fm6C1jSHQfq}v$@$@$@$@J*IUtҵ F ]ff8 8&!SFl<ϟY eD7`D3/C/KMX%K Z4uʘD3 CB=zi͎9"oʳӚG_fZCY3ri[t @"0}͐ ylХhf#cCɓٳ G>3UcZ08W!H?ԬY3Z +u&ݻwW9Ɛ{̞KL3%۷O[&0Ql_(пXbj#BV`8zh)\BƑ =L>Sw~q E33d)H+$ H$@$@$@$@q#N Z:u\E33x)H+$.$?C%@$CD!|ȑ# sdP iPU8ѐK yʾKQ K1$tc= 8Kӧ0~pƽܰa=ڵk+Q n@C6hѢ~x uiӦr xa@D>4=F)O9`&'^;wnӧd̘13wCF!   ck׮J4C u:ffR43ÑVH1#G*!'QD2w\h=k֬Q\jՔSʽe-]Vya!$3ڿ/K#R\y}Yq;0\r)[/ÁkwOm$& [7oJ oزڍk)c'%I"ETwlO^ =Yl\ױzͮ^zM2mumHݹ^Yo#ڟG=uz뵾cmW_~;_1>ʽt-v$͖MVk}3)`> }򳕝Q>k |QWkfԩTP f$ xTD3D4lUHhf#cpӝ8q3|E^$̛'-WK f8/e3J)՗l#ΟWbS"Y7wyv٣D.E+wnɓ;$ |\;vLdz{8baՃ%YΜ׵%I̷E;"SEҢo-{ZFѶn!%J0fِ7N$3lBUij rzDl!(kOo˜Mx1 Z bl}x`C_׺qC£e#~*"zNwXlZYݹ#,9&I,YxH$zbdݔ97|ij 7[3ŏ9(,"'Z| vj9um׿j_Heg=Nۃ"HX^Hyh9fmx;h1߲F{'Vk~N@E]ZyZgZpwT~""D&=;zZ-boz\z1AO;OcMxq#߱9v*/yaU{4SuD\^"W?iRhQPzѻ: o߾J4CҪ(K GZ!jʍVrl1pQ9rrDI9\?|XU(T? x9sFؽ{<2 ͺE$4O!  8O/,Y"W6'k%[ƒT8?FHL(] 8P+P4mԄY6(K GZ! &SNTSD|6:T.QBo 6Lo};HHH F Srrdo$ΔIhT2THH  $sС\y>.R43B `>}ܸq4o;'{?DAat$G۶* HHH \;tHt*g/drI>}$C~ ŋWF9rH˖-]E33x)H+$!Cd̙r5Ypc{lƉII#r~*:9™'F$@$@nwnF)4.o m @lJ4˒%i&XS~G/LD,ZD<berYhQ\4^zml?Kƍ7ވ#aIHH"p!$߀9Z {@…eܸqJ8K>kU&hf#c sʥKdŎ텫=|" &7KW_Lj5T0?~!/_,oԯ_?\p\$@$@$g[Bv6m*˔3fGIH)B ɤId̘1*U*Oy>E33x)H+$*̟?_.\ c{hԩrj$I+J㣏&[?Sݻw Hሄc"  8Gڵ^=Tl>& `biӔh,Y2gqQ43CB 0@8w,Yıp3ql~E]'L8ݻwK5$a„*&>HHHBP>ԩCs @YfO?$ $?܅gppL*ٳg)yy_?~ℜ[Rv.J|ŊO(ϲoFa#  =[kԐ Ȝ99H ȗ/̛7OƎ+ҩS'WjppL_~*,ӲtReSOI_%w׮^G,Yrc{`VD+VL%M*֮kH,&D$@$@!E`m/%}!/vHLe֭J4ۼy 8Дiv(K GZ!z},[LFQ43s3)H+$@ݕ`l͚5텃F}呙3%I,~ iRF ɑ# >\F$@$@$v5m*NG&N 펲w$@$$4iҨo3f̐ŋȑ#iQ͢#ߓ@ ꫯdΝeYgZ]åM~ʕ+ҪU+#J*RlY)S+Wo<HHH f nZ+O j$@$CRN-G3gʼyd̘1^ppL[n[αp0C9R|ٲ78ڵwVwY:t L$@$@$svm+Wv3fEy% ARǏˬYٸq\:E33x)H+$_~uׯ_jBU,$@$$H 7nܐŋK^vuhf#c:tgҥK?tl/ m^.Yg&˝;1 x` %[n)Ѭ[no7E33t)H+$g}Cbܲec{``O۶raק(R$ֆZKZT>ZL_xǎRzuɜ9O}vy'^P?O%s/OݻOI,YB p^%qđXJT۽׺uku1cTкt"4P]z0- 7}Wnݸ!F&$ ;i! N(L#ff8 8&駟ʥKT֭[ [+{HO>eڐY"EiӦ2}tV %\]`9r䈼Cѣ%mڴ16Tbʗ//F,Yqek׮JLK"͛W Yfdb+>}(q 8 y0RNo*UyAwcPI$@$ޓ[׮I1cȈHŽ,~MCZ7E33t)H+$@#_텃͛%[ƒbmHvѬDJYjL0A~X 7+׷3]iӦ/,yhA|ե}fΝ+3㏣x|=W~5/ేDGڵkKeРAE3Ϝ9#'NT9suLpt>6 ~}|Y K $@$v %IDn޼)+VvکlХhf#c|\~]Ν+۶msl/ jTn=+jז+ڐ2vX%-Z4Ex@yER1fRyDvܺ~]2T&V5$3U!/9r*r9R4"WuU]dA44x"= @u-N8p#?sUbE%>|Xz\LmԩSDwyGԩ Y.\X! U6mZj;9$@$>o=+&Lpb @H~]A<Lff8 8&]3f;Ȏ *),6ď)S-/ظqk|) Aۮ]U9&™͞}YO}P 2%KFɳs{=5 F&MU8 Jf:=?~xy.C05|p7< XƏ??V͚5S!o5)U 1>V!UZE3gĈ*wšC^uU=4' ve7nΝ[]ۆD*77NjǏ CDa B !Ag#x-+W.-Ƅ]8I!xzC 쩧RXEݻWy[!|t޼ݬ"R^Փh_{i3U4W"˗O&OXzyZ!WӞ[VCܹ ˄>gif*w:g&>*rӢ@dwwyW+ү_?I4CU[10yi޽$N. oWfg£!I&zB| a.|w !E r6-|ő /ׯ_c- IDATҚ媛ppL91{n͒$t*ĺ<–>ϛhQ9~GYr 9D4}T6\o#.[L%3ܕ. <7:B׵kWZiEUf֬Yaf=6z0øq+N$lUK<).[goIHː  6lPAF ]ff8 8&кuk啄p={8Wahw*7?[ r mk@BB7=B^8U&%BýԩȬD/|Akb"(yK4ӹ43=?ik"D::; B^_$@$`'m[c9pHH @,˔) rpS Co8vXhrŘ2Y^@U@(ݡBrd][>c1a  9~ʥR\9 0աH<hk DTfE @@C"ͯ+*Q/{ #kivIYAg &rN2E?XO3_7!6ri!96H$cG9z?6 hj~n6ffR43ÑVH1x /ѰaÔx&^=7"Bԩ#i˗' "b ʤ1 ^H"sg9b[5J$pYΜ9ٳuVgn6ffR43ÑVH1xdΜY "tl/ l=ud~]Is0$]`ʕ2qDɟ?7;I$w M.Y"E.`IH esVX/U gn6ffR43ÑVH1NZ-Z$֭sl/ h@".^I!q $'VH;vwqb$ @8س?_K& @,˛7>}Zmۦ*F ]ff8 8&иqcۯ_?AD6ˍӧ%[Ӧ橧H  D6 ,(}$O<ː ܫ#Ϝ)ŗ.Wp$@aL*m߾]^}Uqfhf.E33ihԨJȎ #G 5HU%k0${ f+ Sċ/N$+&Nw 0˗/ǎb;$@$v ҩSd׮]RJqfhf.E33ihР(P@z)Ǐwl/ m^.Y#c   N!k֐ xalRR%qfhf.E33i_<#W_ɉ' >\u.㏒4wpnݺ%7o~Ag̘Q=ٳg޲K$@$ZƏ/#FDIʕN:"E;ylH9ҷb 'PBrIٳgF ]ff8 8&{I"Ek׮j1e9е3o?^<@FZj1O>}sM>|XB:t蠒O`ݺu7*F=3e͚ $@$ `]v(5k%KN#t& @*?37E33t)H+$+ŋΝ;+]6zɩɓْ(cXCriժ OMp4=`{ 1wqW^jjm#;#sfbŔ0q17x?>Cfti 6tϞ=?]F3=s挴kN<(~H֭Z%O>F7Jt\+Gʣ%iҤAf=;Vo…RBuM]t M4޽{>TfGQC=DiՕ`^Cۺu`3 ,AQlĄh/@cVAJ־?^v&6o<HBU4ۿlХhf#c،MouF㸁#CåU>-E'a{ 2#Vl yo5c!$a3 Ms._¥jgNp@B?p`j#lBO4x>"Qne˖U ᑁnܸ6ۚ Mrp-ag@T {Wmw ,q+O ryqP"anĢE; C?Fܛ=0VxٽBI4TQrYE3 u1 8X[wO?E3n2BD3 q kDiVﺘ9s,r>!!O:b!/6@(Hkc(fzބPOo0 !(nyo4hu?K8! 8E= {537E33t)H+$6V Zjq'F|#7l\xQ Cn |a"kH>S6Qm~.PCҥK+.[lQe f\B @Bx 6ccQ=hZA.ϮZ ᙰG5{ [lc1~D`ksO߭x#,y⣧J}#L{`@Љ9} `%|=æ=I[/oMWec+ ?xyI4ڶV8DJf3<H XE3 +37E33t)H+$V# a|t9R+֭862lD|mM{h!BAfz<(f]7g_O!z 5Ϗ*ʍ/< (jk׮U29vRi0Z^0aO~h!W-{bpmйXh6ǣԉ:T*AƳ?3X1ʹBY!E`Ol)Q B<&&{Il-|stTO (?tu"f[8Y׮;0Gǫ1wV٥ͼUQwP{!]4 -1YFOi\ Kg 4fx1 o|1gn6ffR43ÑVH1x`0ln@͒k  _-)oiaag hmHF,oIor!`9/:[Dޞzs\4 al"_N  yqok!b5V/@ AX6:_p-E3JHGgZ70~$C ]DUVݕCWL_ s/asjxk)6N,`w-[ϗdLg4+|N“)k=7F !TrOXՋ[̈ zy0 $Ӝ">GzC3aoO۶rz<)Bqe`?I ̒%K*L|(Ey<B 2 䱁 ȱaa!̟{JJQDƀ0$F5fNWb/DL3Qn]%7٢sid D4@B=v“DɓGNގkH0b6juoVO3X~BLҹ̐˄{(r(͇;t.G?U(k~JWD<E/Ҕąm|"si/J š$YG/^X:4jHyE>/O鉱cW_zHH V@h(1S43ÑVH1xl+b&rt9Rb8Cg"^1_ßLcM8<IGRL.0|" S4~jb# ?Uzfxc)/x;- O7Y E kN(Z&,^Xy^!yD3k..ņgQ Bme C #dQl%k֬h,!-!D!}ŵp߽,YD D4'XBlt.A|?'D;_=ZLMHǢrW/)ys @f($Sgn6ffR43ÑVH17|SU@aBl"G I~8t56lȑ1B6bVϴFk֭*GzGzM-t+B ƣ" lbu?L87 ~92>k&6ߨCV cڦ5Wt%Kȇ~/]n D:+v{< o ^ȏ"3qX>Tk +&A2=ǭ܍BSo"B7G+m s^Rڳ :‹p !gm^ږP@D3Z P31\%_~3< #wtY[+FGȧ[]  V Q F ]ff8 8&1W_UeEM)SeqǶm۔W*Yp;>A'l<'t 6Dؼi !iݻ|J@sx$pf֞ }&P@䳂ssYC7AA{%=]`jTc:;oi/xh/뱺. !q7P2fM→u:aZ+6lüaȑ#Uftw^-gΜQ 5qщD8rYz tz=Z}"%I{zh-=o+B saLXVޞqm[v[ w }WE3zjAzmcųkuT<2ecLM l0ٱp߾RzƘ2C$@1F{B >lХhf#c ;FMP>ϬYRlɒ8wԐ[ q|zckּcH:uJAO IDAT9a^/-[?控"[cc?sJnh" ytPqظy 2B+yO*+ӂA$@$@$@Gܼ)FN$@$hvUsev,E33x)H+$@ŊE*>$Lб͸n`w˖re.) muBH) UI\%` &MsQ43CB *\u%Jf\7cG9xX޽[e噢x *o! R#Fj?xq pǥx:ujǙppL^6m( I!)0@ l;z9sff~S$@$@$6>$!yN$@.f_2eJF ]ff8 8&`P~8qĎmu&NC}Hq$i~ _x s^&X * O "(`CĮ ޥ-=l>7I>M2sLr9"K~! YrrDGG3_6ffR43ÑVH1oQF"Nf0GAę/E33t)H+$@vG[oU;&Eul3 RR-%HpPyk޼yJDCU36   #wT9Ru ){ =" +*̗ppL٘1cTE4S6o֮cDCE}ҨQǍHHH >}$Aݸq8^IH>,͚5ghQ˗ppLncǪH#Gl"=gR򪫲EB"$@$@$7OU[+5U.]RB7:B$@xf!!!J4ãE33d)H+$DG}Tff08kD)ն3&!Q47   !pt|9j4̚5K;/X@/_. 2$Mҽ{wuz*  $>,ڶ"uH!CT6p7 g!-HC[4ê|(!K GZ!hֹsgh6)ǝe}RWɓ'駟eC1cd[LA W_efMhT[q09or/  (} ۱C"˖p$H@o߾XF$?Μ9#+Wgh%J}Q4C' A@fG>@6lX8nhO}.EjՒ;M7I6mdV^^hHHH@jb\DbUNmP"KV +}T1@e*?. 8{Z dɒg%1 Yff8 8&E]*TplH:rD|3G"V0IصKԮ-Ś7&M$A<4*xIHH{%n&9n]JN󏔼 QCR/H뮓'Ѽ hyN 8P~Ds #qqqR|yxVT)ٽ{|(!K GZ!hGWiRHWJ;u_e!J+5URNcҥ%xq T1ؐ{cZYz;QyB%4?26$DȊ%$$Dă%re˺5kx'l&>Bse`n .Po؞Neb_}u}mc'9"˟}tLt^S$<&nb.W:fK$;m5mnV_!"Kɓ^u.cVV 7unkqLطO+N p?wNBO꒕:v Q[c$]Eɐa>_y26ljs.jUFz_H9uJwl~ T^ǹ~\jNfsՇ># Zzo$K8]`y>/J#뿝~s;ELf}=?G~z_xlo۶p{rI<>+Ks+9QD)nBἁ]v987qFoV%g#ΝS .]Z}N!Q43CB iF&L ݻwUVQ4sL4;A=hS$%6VMCRR&^ { }o+;Gi"3Lf4ɳON&A'$0!@Zp?oRo&`҉דw&\Z,LfFm XOk,kʫg%,:ڳomIv\JI[\lDd@I'xN-ն㏈f6F)A e~'ʦxbyWhdU熝iFSfbRfm4+xHMHQjhD&%;z+ M|1 6LMW(X^b.ۯYcgH]G~='Bgs 䦇] _w\'wq=Jw\yBM`AkVdjh dE.-[Lڪ dG`2g9zhv} |$"QQQLf[lQgj\i,E33iТY>}? l    '0i$:u>|8@ !ʕ+'7ohY$X8p <w,YDUV8Q !0eyif&Y!!!r(sk|@hѬo߾P46nE$@$@$@$&sɳ>+ǎ# ?#" 1NP4 cEO@vG~.իWP駟֭[K^$<<<]ǿL>]  _ 9>SeСҢEq @˂%Ǐ܅HT!g|Iڬmffy 䙀//5jwL#=\r%'Hݺu=o:uJ~0cǎJҥ=o۶Mu&+VQFɓU.6   G'(p>!!A Q4 SY+znF%@YhԬY3G?:ĉUgݐSߗ\ƍ',%۹sA>s}4{!   <6mʑ{<]H|I 22RΞ=nS4%i)Ik$g;  hz6 "%Ogd E9V4 iȑ2p@知VZA>bHHHH$w}WaĜH`ˉ'H"d E:Xt5 tM2|pڵk9:    uРArviH9hU#͜/ 4!lhlZc:uȌHHHHrL`٪"8& bŊɡC$&&Fʖ-+[lQj|̖7ƍ{qHTpzq4H$@$@$@O`޼yҧO r$`/.g˶n*eʔ((AK GZ!nf'C oV֭& ݣGAp6 "PdIٳg(Q,h@7; f6L.\( st$@$@$@$@F ,X@.7jH(U޽[ !lRti3H33h)H+$P ?xׯ& |tY Ϡ9RvY4h8NJ9[nEU;1bDPf}8qD0aB]HHH|Oq#611 \@L$`;w |if,E33iԩ<Amiڴi9"+Wft @ XhoߞY Dʗ//7ngvE,6E8Htp[UѣG_|! 6 3f2is IDATA}98   |$_/III+" +ڵkB J,ro^aY^E33iۤ_~*>+±M6@̟}#  DjJ}LAMrjMJT1]IWhf,E33i1c01M    G`ŊҲeKfs@J*(ij%JȾ}x>󜢙ppL#cǎh& @#f袋$%% #&?'pȲeˤjժJ,;p+Vg^S43B tEz%>(E34iHHH 4+|ǜ#իW%KHjՔXv!(AK GZ!ѣ;KpLHHHHpغu2 Y,^XjԨIJ#GHttϜhf-E33i뮻k׮2~xfi >vڵkS4+|#lRV-%;vL-3)AK GZ!np6afi >H,_4+|Ǟ#u֕^ԩIJ'NH"E|8E33h)H+$̰D`n}S&NB6    g>,*Uh #&_,\PիIJ'OJTTOQffR43ÑVH1nݺ *h>Ӥ   (|?.e˖Uhذg)gΜ$E34@rKBCB``뷰mľz?m;kmݏm?>m۷6>1'Dp5qZبa9e`O~fb+4ߴTWXF3ǘM|w_>-Iɩ;~0sBHHglϦHbajHh"jmzEʦ2ݕMʤ{e+w?'/7?o}ox3{W/Ϙ5GTqHa#Ez|( ӧD 4nX>3iԨDDDȹs$<z6&X=Ot[MӶso{&m'%$*"Ԛ{֓=Ɛv:%wn,IuiVNm>(E8EOjYuLܫks[vY-&m듲n<}6=ۣtm9"EǶUobǟ/t{n겾_XR;\*ana24sqCbKf ְCT(>jv!~QhĝKINFRXT%jEMK3K !!A-b#zVx 4mT̙#M4Qb>aaa>B Zff8 8&^:tPW_}9͆_(WHRRVU9, *e#%h$9/6nsҤqc)7'G ɘt3(*Q^t"Z->KcݯiacC .:H/ۻ#unV䣍mgaս[DJ`u ~Hk(B-fce~ʦdwuYz//=gotkm%>Qm%ZeoRK"CW@ֳ|IY8(kDˬk5 q_F% <-ZȬYynj`̐hf#c}mɓe*԰tslTW$֕dYV\bDG[8l$@$@$PrFƿMNN)K% 9\h\IXF$?.b9s@keʔ)A)!wR%HY9Kٷib&LȔߒ%KUV(e> @=b'#Ք+t3? `Ç\r-"Ȇ^*ӧOWYTTehf.E33i۷\s53h6uCrH*6{C(3 @a&pptRJjȍP)CFc cǎI2eH\~o(,&&F}E33x)H+$@+{.DmއJkC/,#FŋK֭s/7&  `$0s>Y鴬pZ>~B\!*1DJŊD#BF>!6XYD I?(E33x)H+$e˖h6|&Y|;) 1SN~M-[[c4@$@$@N !1UX.Ws2!Y={HժUH\}j qqq>ppLK.D^x믃cr뀕`jҫKǜhHHH@乷vJR_O6J#f۷oZj @*@4+_={֧Q43B 4H~饗d…R^=6۳s.p> @Xᴼ.iX'FT*83 m޼9h~KB+$P:U Yʕ>uppLf͚u$jP>R^cF4@$@$@$F:k6g m< ڵkq΍ 1mڴ &EժU'O!ffR43ÑVH1zH5j$jЈf.\u2ylH @nJd͉fZF$?n;vͰ|ĉ>uppL`Ȑ!*>qIv,hw{^'_ϼHʖ\+&M{LAbOrdGȑ#+(CIH׿?kO^D#Pe˖9 h߾\zjw1:G ^ff8 8&0l0u7H_?O~{E.]e=zp0 d'hѢ;wNU牊bŊɒ%ҪUlm丳sΟGSϥgϞϛQpϤ]ŕ( ab>&chmog9yv**URMyx^l3'&@ QbO&// rp9'4nf]ΙqK:tC* ˧>n)K GZ!0YQL6MmٷvʒNW\|h֭[7d>51h2C1$$!@\ģ`nXB}QSN_% 4Pn_~,Rnڰf}>zfx㍂\/bE4={h#B[jJVsɈ#ҟx&9>:E3ADUnxBr;`%E49g%|re311Q͛'M49dyصk/*T͎=gs#ǹ #HBb̛"{eWLn@F3WFN z"Ͱ|zNMf?E33x)H+$QbŊjbf=QS TȲ&َ@O,G-2DT4C_-otRRR<Ӈ}-σv!}Q~biBhhhT\"˰/l4pARt7"##U`ȏBJCs7"Zl){#hf#c<3cƌ !!2mR#!Xڥg6ֹPK}Y;wqwe5kTϽ*a"%dwpn& 7u;r̜9S} Q5{OʗO_}`,m۶ptN;|UTmo֬Yj)?KLLL%$$(њضL2ji rG {ilNG{'gϞUw}Ο @bSNjlXB]L<?7Dq P0&D-8fv.g'ay|n ]Vak>`(ս{wi֬<rq&6H\Kf>s~hP˔"; IH`߼pss|(K GZ!P~dɒj,foىfzƀcOzn ZHNęFH` [e\7/c|ܤ6 !pw]wݥD믿^vS(K GZ! @(:u8YA"BdD+LWqDD 9sFR%!">CXxǕmCٰa K @A37Xx'8q !Ҹ#k;行4$9UD#L}U–wVFLf9 }eԩ*%D4=f%ؓCOH/aIOF>dk|Q@C'D U\S+; ? yKDx$wDPa̖8|Z3;r*فa%H!"L:~C:tHSٰ {= Vb^K? D:oy삑}M Ӽ>~$c4v~8@Q D3EvqL/ģ^>=Dxǣ#!|jɪn8cƌȥUiUh뮻S2#/:DADm_: KE^3 fToGͥBŒcwVָF$?4cǎJ4-[|E33x)H+$p,ٽJc sG@ZfϞa.Tѳ Z4Cf\nA3Dz3]/7CF"GFfv/+nWbC2v,=D2Uv"bI$ fCf~f'ڳG\^X.fb[m Gy'͇h󫯾R !Bͻ"dNJ?Iq Y+ƌa]t47>pHRag-7ffEqWK' %^!֟GזKT@t>G&! @b ^܄ܸqOhf/E33i9\ LhgZ)S*B^7 PE -e&AHJ!,ED}0 b"r @ BєhD4ÒSr˖-@TŻ"cV"\fYfROE0!B "P ,21/gHCdeh%0>c^f ObJ$P~8#JH`%q (TDD@D"w~1=ΜfZ|'TmDyGAW2pOD!o 8B`ذa*ZiGKBNmra8Q9~ZJu f8WU&j%->>^U>0>pM ̸6s)lqBd̠Z%s%K)Sk0 4hm4ehf.E33iIE42pԩ^T4of !K &a$oB*G^RoF-E464L!0`nli m۶J!.zV'}|!駟~RD+ /*ݳ>| \`(} ȰDvڥ|A}[Gd>S !D?$?4!a*Ř!*h~hx'*Z <8C5\ }z/:7"D9)Q>O0I`Snw0^&g4m(rz| CJ:uhS(K GZ!0۳gZ,ٵݖHwk+>r+6FaRZ"B,_9#z_9IgH a7Ix2:w7 AS~Dlٲ#l$@C+'! !7|g,E3: rBgƍU>Β@n ҬNh9(O M@ TOLHG D3@^_6ffR43ÑVH1T\DoV]@Q1$?f\}Ii9f  ]QE;;_^ @ IU)" 29ڇ7D 8P`#(&P~shf#cćJxhv,6IJnmWA O`MR|&OErү_?F$?{1.LE#X—ppL`ƌ|r駟B4۳?^Y/-'C B$@$@$7KRX ߷'τ%͜9Sehf.E33ixU_U-Z$5kvUN/oTx' #G>P$AF0l zj)SrJhhh0 c G"aa"ukH߻ H;_~4H)Sr饗G}$}Ohf/E33iULgmX4u4kPL &M&?ꫯ>o;_Q+J6'N< \ڵ7W}Ϲsdႜhŋ~[u @x-rl\ܸw7oRuFrmkߎ;(dU!wܹs}JppL`ٲpB?r{i.eqJ*j(Zd?ҥg2=zf'K;EqB8()VUV}ҳg_%7xiFE"V\A,YcI (<69v"QnhUV:.(A{T6 !/ʁK. lХhf#c|JhHߏ9Sҳ"]&L SػvpN4KNNVBKj!!!>NDAȚ8qbnyf` ~)Rdw9?hJąx Fe˖SO @nLzml'*m*]mS~뭷t &TܵkpS+|(K GZ!XrJTci,Ѭs rϭ+H3L޳ (RD_y .'r9۶mZY\9fx oW1k%J w &S+UF$?^uټy͐shf#cXֆ>"u֮]+*Tpl |;wѡt%h#EtʌcKIf:lŊ EhG4ӃDH  -넼<ԫ %4h@-Gev6 !oyD3M̱hf#cX K.K,Hjf];U;;X9VLU uD' Zj2n8yg=2Q GTNtaH$nɓ' ({~}̘1Cm۶FBۆ/4Dzݻ3G _~[\UsƞO-|/$F,4wȐ!V]H֩S'4hZE"PS " N]_N*})`$/-_rX>~T(Nh54jH.2UEH~;_|jePS43s)H+$_&o_̹U9-fT4>͛79s(kϞ=M˖-JC[JӦMU.s 6T 蘘25< U Ta;T'OHHPs)SFaTRQb]xj𥘙hA@D jTD~> {֭Sj*v 9zh<>O֧~ZBKIIZx'-ZG/{']^6-@̩hfرc~`? o.?Mq"(ExO*`^D .AN`e'KTdh ФI]l$@Cџ@4۸qQ43CB |7o( ҥK;Y~Yz\CZ]RF\U!)gΜR%2؅mP!@ >|lذAnf%w^%խ[W|IO X>}Tbtmo /PF5kT"\hW [ZvZ(L4C䙪^L:UFDc=f1a/O?U"]wݥ0|."aK ԁ!ZWl-EC"""ؗgU QYE{D޵n<N!"cy4q|񙀘F$^{o]xH=7JYf {6 !0k,5袋dΝ+9ffR43ÑVH1TP8)1%Ktl ,[uR]]U:gilǎJ`R 3Z\/ϤK.j8x~!%NAd޽ Ip{;+?%̰S7{y !J}/4- fOrEbt~Ppؾ+eXc" FH|_(ƽM.?!\VQpn\F$?oUfSU}(K GZ!d -[.umqVĺ a[nQ> ͲE3}`fvQY /Ը ?'_&֟/޾BV&l$@C+h0OhT,XqF ]ff8 8&VXQ^=%a[h(U4\NYY_y<3@Ty<]vMhʔ),XU9P4wvI|K` Ⓑnێh=`"QdH@Mrns_6ffR43ÑVH1" UV "DZ4cV>^f͚E`IUD"<9r ׶geVq6T8nN *qehf.E33iXfZ#"1p4o\Bf͂,(1jY-~eTȡ`<^O-4߸ sOM!6OߤhfpXh׮Jl$@C@~*EQ1_6ffR43ÑVH1B~*TC`hl{e޴-h Gc  iPGw#pn 9 Ѕ !/RQ43CB @,馛r;>搼4s,rp> @7zDRuЁ<:t "Al$@C@~kҤ\ҧO:G ^ff8 8&sNAwC;q2I:ܻB@t0 c   "p}+]r2_ 9tE;2$j*UݽqұcG޽OIQ43B ٳG*ug0..α=1pߨu_n/.  WvK^PTЌqFo\b3CܛH(u=ܣD;CnQ43B ߿_.R̙3װ52zҮUYq~ @ף2ivYYˀ `@.]+V\i(- 8&i&ܹ4jHzehf.E33i@^A8vYy'eRLk5Rqps[䯕[I=4G$@$@AI5R4*Lf<$(AWP` HrX#`Æ \ K}(K GZ!,~rɓ'˭uÇӧ]/.ot-2ܾrtdc_+ڈM!  J`S ҼQŠ΀aڵkɇHڵKh6tPUΗppL 66Vj֬)!!!r jr?,{Zy)Yd^y;"=CGe䀚rWJm F)).߿Rj>Qfj={TK3ׯ_O4$@~D`޽rWJ dرҶm[zG ^ff8 8&U}xĞL\,EBlt#˖-Ob#.H.4inڧQ43B KRԲ#G8cYfr匊f2m,DIr õ%<<ĉܗHH)o씈05*z\W,Y򚱑 G"Փ_|QEQ43CB $%%ILL>؞յkWf2oSg%*2Tv틗(-W]RJ./d~/B(LIIMuI~t.I).IIb;"XsoI=:(eKG=eTO([.%ϦH"amAj빲^S}?rI%!G VCۦ%1_OKŝKQ cNu \ٳ]4\m6ugcbhӞǮ޳m\ qm >)!L_we~yxEy#ϱ{C>|Œph]DĞJv|b ĞJR 5NjI IDAT&Z: #hZ]+0T~foՏ&`X‚[,q}{}ˆGB]X瀝فÉRRƑ*i٫>=nuHT*_0Q7{Ri"IkW[}].9z"IʔPb0p%c;u oKw n9E=jݺ)] ۩몺YvS[膨-&Ֆ؛'²ڞ٨kf5պ[bbfᠵebf^eʺZYX˪Zjl]X?Zk ϭIJӟe%Z"uQׂP]^1]Rd9z#p'kΜ9  2d̟?_vN3(hѢj_ Q43CBFDGGJ{1b/Fe޼y2zhefV9EDDRq?   #Fq{cMtXaRfM_xF ]ff8 !ʙ(P?re֣G2͏?XUy)X^PFr @5j̞=/V. 4:JD+Ve˖IժU}+E33x)H+$`ָ#wXAg!A4;pra#   Țرce֬Y#ljH|XYTX1YneF ]ff8 !P\9uݵk{y5OB<6    L0Af̘QyH' TT߱c* F ]ff8 !h*}(jG۶mnݺ D>HY+%_HHHH&9rH@2e$!!A:%|(K GZ!#T*l߾݈9͢ \4CYJJ`& @z)yW)D!?$ 9sDFFCffR43ÑVHjժgAf+W]Jwޑ%K_n,3e' @L"/=z4 @@kFP|(K GZ!#p /B*iÇe|ryWdȐ!>gw`<ӋFHHH ^xA ;vC$"Pzu%%%%qffS43ÑVHuĐHğɓҿOP5tP3f+p| c   @#/ˤI:%'PN%| hf#Wƍ˭D9}*Fj'X > @N*܂H _ `"Xuhf0E33ihԨ֭[g^AL܍hG 7|SȏIy~@|pc4E33g E33ihҤ֬Yc^ٴi e dO`ƌ2rH9uTs  |%дiSUfnhf#͚5SPMT~5Y $@$@$@$3*䄔l$@Ey檲-Q43CBF" lŊFT+%999ЇBIHHH _|2h Ar6 "pwc hf#by&"6?C|)L$@$@$@$ >c`@AEK/UmwqQ43BF\r%J4ᅪ t#- z dO`޼yҧO~cnA$Zl)'N-[_ffS43ÑVH.L-? t#}vmC$@$@$@$/K{ܹs;!9+BUݸqcwk7ff8 !;4[t{ndҵkW    ,6;!Ue۵kn}5Jg#   Ȟ!_$%%e1 W]w*ұl2K bFH+$`5\#4x 7nK#$Er IE QE HFQ(F$ ?`#(A HR@@DD"9]6nCLlOuسtW_TzHHH a½ qqq~=E3{8 Bk!-[{nd2d9uTw __^j׮M/ xFY||_6~hٵqV=il!5͖.]jP72b9r䓲xbٽ{-|iHHH TFfB / ӧOKf!H+$` uJDH+$`|-ZT=|?~I|K`Oʟ)˗mc"9JotM{v<|BW^ &ӧ}b?y睂e˖HHHJf  @pС̝;WΟ?(ك=il#" UfP4tmI,YdѢE>}&   @tۥ\ri \K뮓z=)ÑVHVŋԩSmj'O駟BuK$@$@$@#lRrI#0o<ܹ 6Lw4LB8p ŋ 5cuԑ믿^̙j_   fׯo9`>a nZfϞ-  E3{0S4#񫯾* v[Qw3g ' vc{ /t"-[nݺҬY31cpP45E3{8 N;L6-7^1}t +XYbzPg!,N:ҥKO?M̞NB>!d8qOѪUJ*Udʔ)*#   !)S&ްaà񉎐@$@'xB,_ܯ(ك=i|B`رsϩ&b_4J$@$@$@H s̲`;ñ{ 8ʙK. xMH+$3~ڵK>6p AgHHHDsJӦM7:DB2WD :u߻MH+$Sak׮i;flٲjYHHHHȒ%vk Jo߾jmdY߅=)ÑVH/Qԯ__}FJɓ'xꋆHHHH잉 |Ak' m맞N>- ,=)ÑVH/^Bk׮--\r@7-[hW> lٲɓUV!3%p ХK9xDGGK͚5eE3{S4#_O*dB!"¹/^\ڷo/F no$@$@$@$`+ٳ_|!ڵ. ?gϞ*sўy@qQ4?E3{8 UEr1'T 59sqƩG xNDǎ孷R{iC<:E3{8 >#y敺uK/$5 /h>z@|T /马O$@$@$@K9OG,v2JD͙3Gf̘!:tO*>Sirҧym'S4+E3{8  ӧO7|#SL5k(ԩSRdIۥAr7KJTdZ0뮻NEa& :.^C%{k ޶Q޶h]|>b4]v]3-_m{r3]74i"ɢev}ԳU0f\fpJ'OKʕ+eɒ%sN'>\D3<# c39&] .f:ljRrZw8dƺx\c]Ɨ)8SߎBvQ{pe'mSW}i&S10A݃Fv-Sa}.t1Yb?uoys~I'Wٵ r]<36Gٳg}:N7뇯ρ`?8>TXQoߞw˗%66Vs}{"zrw/7 D5g~U]>2e䑏lϡ .b?Sg16pLz%yvq{PB0zWV-x f|6E3{(S4#@JD;x8qB%'/3!q@frvL7~*3{Wmus^sk5uoPOH;1ئ m|3f7"=l7^] xi<]kvmc}ݎqW6qL7}p w<_}#'ckx!뵐 $@$@>% 2Z<0 5bW169{ݱ=ù(1>3cjWxOc_뚝ǛoOG8ևaw#ka|ڞ(x099uKƱ>O8ž$Ȟ=' a\UTf&)OH+$@> Y>#W[ lPאT77*#}c;;l$Eؿlkvo_퀽c]D"rW@;2~☣0{)QDzڶ;(t IDATvZ]v=1d|5+udw_wm٦~YmX3P7;f;יޜg-[h"2=\!YfLMM~yb.*RH2N?Sԩko l=ilkhaɑ#. @lϗ_~)m۶ }O*ܝw^%q~xkyڅx^`A9Qq̶7vTTRNw=mOh˧{sE8}5+u⠱;5F85#~3?vءr9իWKkw{몽ƍKӦMU^3#gѾ :'"V@e@XfĎvyg L:UZhH76 <=S2xΒ G 9]ލYC$>oԨwDx @Ȓ%*& 5XNصkW:tXH  CjOnVN4I}Q, !ĜA;հ X#!;u$oXH  6L  }Ç]աͰnѢE2rHyWŐ v)DhÆ }͒ @?;9HD~g'H-J+ѬM6K޽&quoʕjW     knFiݺ= E$v_U`WxyJ4֭L8Q7m4L m׭['իW  \>Pp> "N:$zl4&J4òW_}U!#$ mݺU*VdHHHHVJ{WƏo]# Ǐ ohzjW"qa)\wTx @P]vI2e:A$@$@$@@cK>Pp> L૯Ν;K͚5 h r+WnB$ a/aeHyGH|B~S[$_z'iHHH•@ʕUngnW"Ç˔)#X5kVⱑ@DfW\nMɖ-,YD/ /1cU?>xg$@$@$@$7nR\/A]"_-=X+VfK "D3 ;~ L{Q XHrp<+   RM69C4 @@ttݻ QĈf`ra{J tHH`ܹҺukA( uw}G  !p ԩOi*WlذAg> Dh8C<PBʝwD ̘1C}Q5KB$@$@$@$`@ɓ:2$'6mѣG|[V@?T8  =2n8uݢ1/4k,T%&"1k׮rҥ;C$@$@$@&x} ʕ+wޑٳg >tiժL<}?"E3u&iT5\ T'w CHHHٳG֯_^5 #/ʂ ͛'GPݺueт,!Ƽ{nyeʔ)oFqbpҥs D(K~ٳJ&   kNv!7n" [~G?,\i5jԐC}(9 ry7dڴi.LQreZ`I7߬ 7"| ӧO`&HHHH r<òyfٲeKt=% %p18k׮g *}Aڻwk]6.]*K,Q?YHHHHHHHHJ(^vm9,%@"G/^,[nU70ĵSNբIV#      y/_/իWW"Y…#DhuYh]/zKC஻5kp#( ]t"+WTyXHH'@{v<H^{58q>|؇4 ݻT3șB$@$=f޳$@>$ЧOL$@xGdƍuV ,   P|rȑ%n =(ÑVHl&о}{ٶmlڴf4G$@$@$@M`РAѣGû E3y jJm~z ,   PC1c#M$@hfGZ!@5ٳ=f4G$@$@$~m5j8q";  P4!\&@ɓzjL   @̆R,$@$@h=;I$C͚5/ʕ+} M @=zr{D$@~$@̏ u7D_Ě$@$@$@$@O3gHHH (eO%;Cbbbdɒ%kIHHH K޽Θ WuW:w,8x8 Dfwa  49r… CazI$@$@$@>&0dywܹs.[O套^r[2/͓ ,f!{8 7uJeܹQHHH< )S&믥CNg .\dIiذL4XH"Eȹ) ڵkK"Ed!7%   _@4~BBYi3V"Ҏ;& ;wJr|2m @h@xQ*UJf̘eHHHHf֭͒[+Yok׮r%uw.͓Cy: @dhYכ%!PZ5XL:5d|$@$@$@$s疻[Onw}'=K QfڵS;m h;H ( ͛W:ٻwoPGHHHH P:v(8pԅ3g?,/_6=aATŋ%{% '@,/$",OCY:u/tYHHH"ÇhѢNa#%,r)6mݻwG 2H"@+l<H[HߢE 裏\@B;C&L^Fv.<   9eʔQ˯~R㭸8~!矗A\0 E3f[$@ҳgO̐*6kL>C2g,~tܙtIHHH bjrerJ||ּysILLV( xKx WN:%;vH(Y<.6L.ϟD$@$@$@L SL2x`߿n/ҴiSSѬf͚g &@ьw @kРLc9{p 裏ȑ#Ml߾]*U$k֬[o5 G$@$@$@$YTt5׮]+ջulԣGHH =f#HB ;֬`À]СCMc%KѣG?%   ` 7o^3i+tY~Ԯ] ;c bŊ`p> @h@xXTPA0CjV ,(< 8x}$ &$<`&v"בf?}'rԩ& h lH @̙_W?ƒ+W.=zt-Ŋ&MA! @ ,Ĥ#W;vL *$ի'| q x@XH~X={vϙ3|ᇂtٴi?޲ e˖ gΜhvIcǎR|y" E3`* &M$]tt!M8Q~|A5 @zʐ9rP& /^,/q xHXH~F)zJ3-[6\Ea7͛˷~K^$@$@^h4B$`?5kѱ3& D˗KݺugϞ2e9} " L>"?::ZM> xGwx V^-ח$e966V֮]+5jԐ Jvdر6Js$@$@$@$~n6YbT\Yn~dHHO( 4!pO ҵkWfLLlܸQ?.M4I[a    lsΕ_z-߿d`IH (eO%@ǎլ}rSOɓ'ioF$@$@$@$@$@$@hƻH hܹSm@~PƍnݺtHHHHHH P4 k@H(R_>^I/'|R~m IDATcŊK+GI۶mӉf |@[EO>Dn4 2p@6l:J qO>2w\VZ.ٳGz)V&MHڵU}چ~~ (>.ZH֬YKwܯ/p ~[ʕ+Jocƌ+(n뷮*iٲef\;[odcp}ysfH$@$@Kzw\|Y^xU}ђ-[6b1'1VZj_YH(5[2D,M4IR|!ApxH?\*UN/{.Mт7C"w7o޴H3gmݺu3Ϩk)W\/R/0Awߕ}sp?5{UvwUINN~I jl{뭷"\E=!ӕ{Şz)կ6cٲe6't5G>ҹsgɝ;,Y͛kh6}f"vHH r p^̛ _w_0fdG$?ǚ-Q4uy;}jY^gN>-]v|YC)P:NxK Ut0;R^EĤdez ~e˖NnKfX5D[*fݫC,QE[fJڂLrQFq4G6z=z4âٵE3_}  @2 j;&|1`*O#H!@ьw_ x:8wNFB5/^<|BEf}@.,DV0BdچPs>̄5+͙H{*'{H.]T#ӜW3ƍ'XXbZ`NZ 9 =!iӦN#:!ÇU6po߾ ffr)S=ܣ<2`>Vr~ܴiZΊ' rFժUufZ*\F i׮CE(.ƜpIII|޿2e2m˯~lHH $ Xd8 _|Q Fd= x'7,CO6a1`j9 At' _XʕG׌b> ĉ*P,q`zy&d˗F ȝkL%nBPq4(o }$(E '&S5.xEzH ӌA!rY%9sF6@WٲeUuDT`O ?:a;=FOO?t:K|):fPBrx$gG-> WE o j7nvtL4g[`@tx,:`t'8͒ﻻw ?NgՎA0Zm8f%1pׯ_: Dq^~tBqo4Hյ!z7UOAٳݯB QtU练x u}_{5 B#ޗj 6ރ0|y:S篃/:!ܲ ;V@F;5̈́7#0vDcaQ_}x͸SwK`B&[[d6ǎ$=ƪqIOYADy`5* DAtIҢ`/4DdϞ]t钊Q,t"(p︳"IfQN}YCMTԝdTX0+g h;V#]?q=K.UtAd4]ie_oE3gV EPD!j {JD4s{ђtcDlիW/Ќ84}ŮXƩ 1 :+fkH4'yMlFwn=YHH p7e#O&\Nz#aɔν9>`,XAbi' 1GYDOv w{GIYh^ڪbA=k5R/s/W|a$΁@q3F:rYN-ԭ[WE(-/lWT& E3ѨQt]ezBʭD.aWG,%ŗ:Djob%v X#^7WfPgSgz.ȳkH;XW` wv# `/f?^Cd…=IKKg:uz)7o.X#-矶f<˅-S;2: ʫ`<Z 2+ΖB4@vEo܀r^p uԙf`93cu9-zN4Ӄ1춪DaH31f1Q- 4ːu<?"~l\?7z@$`W^FhAA4aՓ cWㄯgل](!% ~ƝͼGƘ؅gחI T P4 +~{;Тmݦ"n:f:!\\za43"ݪUH啎,C;3|0&M7Xֆ%7\7-x =zi+vDBt3Cy# "*XH׺ʹ؇|uzvd;76@n:D$mnZ ZbRJL42 D7<̖:Ear`@=5oad8ʖ-&m캧ijX /_.7tl߾=M;cJ!N͛7,Yf*"J]-*a7=[:G]"DP!MY]g //B _g]]xDa/qDa!jGo/m##L`/̼9rDEba1 -wMg};.&DDd]to9]ĝ=pA|3+0c9ׯ_+! Ζ-5f^†1/k B!o,ŽeY˙hv0`EQW'oѢH#-'DPxqRo 11 f!C`K$@$@$@aOfN99<@ oX!Rl5[H H駟2c%ql,+ "bo8QV&`׮]jb "h,$@AYh\'z(EK$@$@$@$@8vMYFjժe{}t p^jQQQV'YdŖш]yꘕv\"Yf?o<]s3Ӿ}tҦL2b`?nCoT{9fwM =ӧOˆ dǎÇ˩Sŋb 02eʤd"ُHbS>صI{P2m|t|w _!uݮCyF!x 6-OfzV\Yϙ6t4w9?\wu״Ξq\ݏ;wJŊӽ"5g]h{Q½bV8uVR5:yř]}}|hѢ>c:g6t;؅ $[l3X?Y]P6aXV9{:Gʮ']}O8tV>z:;f>w|8.ފ?Ccr}1~V9Ff_Wbk88ԍCHԝaF0Jχ?Dw;c=gvp;w.ۊJu6l(+VHE4g=yޜߗ>ѬڬYn̞]]m@ݾ}{:Q胙iZsl?#XmJGUB~9[su`{J33{M9|uhN0g\qu7W}.la̙3;ѱ=w* <}ݒ3g΀ .={Vm&{pA4zV,Ҩg_763~7m}Iɗ/_Aـkfo` oYp"G^{-ysh6|9r,[L xQj׮-wu`\QBDC?+WT}D >MiJo<͈HHKiߓ6Iہhv)  gQdzzf⊫s L 8uvm{bɱ!:259z߄DnڴI֮]+Xzjq{={} ] 1n{w;abpڥK e!s( KF!@رcrN_f~j`{L0C:_$x4|(iwm#n]퓫ݵ니FoOė@dK$hvԩS$G h,#[oɨQ@ܪU+ׯZB$@$@$@B 6LBtIK3 eă8fJ'FIHH r "xĉ*) ,viF.z\!gVyɐǬI&Y$@$@$@$֭[' [Xټys_dҧO簂U]ωHHHB//6C*;m֏>*?v7,$@$@$@$0=Z~iA Qfr杅HHHB(中_,Z(ݰE4{wUU*HHHMfHۡCD,+VXT "&   i6l:uRM2%C}ɰh7 JkժU$SLr' ]{9q*uKz;wV?ƌ#۷'     zSD3$ѣDGG ,YkGx" @Z$))IN5pbI!<4lP~b!   "/ݻwˍ7U߼/իWW;TaKrlB$@$@$@F_6mH…gݺu 6]w%֭SE   7XYX12қh1:YcǎmC$@$@$@~!#G-[Hrn6dر4h@|HHH‘… 3f}qͦM&?uߒ3gN $@$@$@$/ORJ rxaWAe._\9򽱐 @.\;vxED5kJ̙ e^    @ُ?(HOIX4v#Gˮ]S5d!   P#7ȷ~vYHHHJr^xAbbb)RJ6mdΜ9r15B$@$@$@B`ƍRn]Yl (J,}w2p@iԨ7Ίm!   $вeKX^]C*UrtXHHH d˖MoXe sB$@$@$@J* EBILLL2Iǎ嫯.$@$@$@$@jդ@  D*(4-fH]-Z$zkreIB@RR$$&Kbb$%$&Ĕ_(11Q%"}M6DC8,;)Iպx1IeI,QQKJrRJJ,PUCM G?5u v9Ciyj'ͦ%^KL4ڍh4-JIuC1Lcx=:ZgZO$k|Ii߾ 6,$O>ӧO{r @Xȑ#=Zz_DS0ʙ3[@$&$իw5I%>>I&+rJ\K3JlՄdK$I,W&դd"NᵄĤQ*Ao؇8,8R1K)1Y,QNxU*(R @n/Uh2WN$GAZ3YS^JΔe짶dQ\3-Ft*xO>RE8ݗ(Mz %=KaU $U>CLsRypSQU6R[*bVxzuxqPMoi.JٍRbiJQP}SJ}9 9( TzD6SWSk &\KTQOՇ~ETA8ENy]WiJEcOA%QB6TjiJ ;Ulcibjd)ASc> q¤A {w{N$@$&cӥ喪3nM2e$K,`2ڨQ#~ҥ}!   u%KD3 8~Rl,hkJ~?m\5g >aȾCh,2>]w%qqq|r&~P4 B_HHHNS]ZmۖD3 0 xbYH^GI6ЗʝkHH Z7N'rQYvO H,Y8 L ǎmۖD JlvkH%0{q>oY5iHB̅Geáb{ܺukٽ{lܸvfIofH`0HHHZh6\nv-flɾpBYH^CxN~P^ôF$@!@k6lF^}]fΜ)b O Ká:/+HJ*/_)4ܯ%G$@$@$=N:[#D5kJ"Edܹn 0mժz㏃ЛN<t,X O>d4!\tIE eʕ%ܕ@۝o;>YΜ*s&ּ5S1cKy#AEUBBZΓ9sfhٳ"<.ċY bw DzuVaVN;vB `6CҴiӴ@>DҨQ#9 hO>1TbŴ>I_,ٳGO>C9shML(P@B$@$@$@JI&j%DիKbdΜ9aj)UT"B R "?cTT߻|M܎5i y<]~Nٱ2Q4Ãffˍ}4~ވffQkŇ#GM4;8돟-ti5Q5K&&1 &" " ta?ޙͼ73ý~vf-[={ʔ)SdĈBt0KE)<!9Ь(F]w%>$鼝+R,vM .T{;u$L 毼ʢОlVʆfh2#?Ӥ叿ͽo[nŸLhl4{[n8qbppppppph.s9oܹs#Ic뭷6r#)He:U@l_3-7 TL5sYnv)Y21 ʸ%9ЬH1FguV=0LKyBs '4eh͆|Яܛg}_3LK=uXEʁ?߸==hۮ@3̟8ЪT{mLnVyꩧ<8cY s$,00<#SNCw7-7s=t ?tf}+`VHA;k8{o!/fX]tEP46|;sW_5'.cO}%~r`=}ѦoЦ⧭iFyfgjj x ٳ>u`K94[tӧOns駟.?~~ȾGmh"בqi)h< 9syWu~:Ahԃ?G}d^B'%h j*ak[cb~heo  ;gqF(o| ?שjxdS-}Lf74&ԩ@0IQn:ALw"ghRg{U݅Ve5C⛒3K<,J8 GXÎ;hHz A#7,X`s~z# O ;9a sou >`2YBAXAEx̸ lI4i)>uRf kF Y?}Q!HJ}Rځ[HAӟd̢Eg&|D|NCYYY9Ʒ <,DE# pTCx `@Nq]-4Mwmu6n lp>B@S0X}$:EQΘy2]T7nl`Cv:6`: 4eoMܭ3v>]vŜk9g4g.x\rppppp(~\z Vbff ͑4FCO0% yq`ϋ ha2ĵsEu5!QVhf.٦˙g_8{A0~'ʰútzFgΞ=ۼ9'c- IDAT\w4ucNاmFi:Rc^.`]Y_ >26\n1@R  4Cn9aǘ>C(A9mv_tCPhh|xI08ҁfЩ0* *5s\LElTZuQ*ࡩ5Nrlj0ϴ(&͕~e2fMΙ{U_FѢtcpHRCfeCsі ʚQ"Ưڇ@5 n&X}> nT  t [,6TrBT0mʨ;`T:a;lL )hU * G`4~0|\4T,вhjj,egthZmɁf軾;8888 G#*pR(o( )8bJT@3ߠ` 1WTo1EMfapu0#M@TuJ9A ﯔ_8[&L!> 8->ƥفfq998888'pi 4CQ8~~94S3l*)y:L?„ֆj٦Z4,lZ&!bfWQb\M3gMŝ'q4ͨK}L3<83gNhy4ԜMB#fJ!Gc8}\Ei9#4Dce;Q gRўN,|f?A֪L)NE 2Z{٦tfafJ9&> wjڍt;>-M1SL0ߑA >ecfςh6Qnb{9``lireN#tPϗ Yw\,|1pYcp88888P8@  47 L!bb.T4l58*k̍m&^ ·y饗rBs0zT}Ԉg/"i$Cr]?t0.hfG3$f-xI; ilm;[VЎs&ש!&N_)iL4lpAtfٰ =K;zv Tco^d DnݺmɜIEU@n6=S4\o_u"&!A{5-@MJ%sGe:XGt?Uhe } S4ImgXkWJFվf_)':Rp sA14c HtEՉـfqL yy5˾{41ƯfŚX?(>B|cL=wtQw7F>;8888l,[ͅ6@T!l8P@3 S.LLU0DA( Z-Ǒ?`1aD@ &AxB$aƁ`H0V_Q_YЅ`M/ymE k ЌFf#%SZ ԩ2iOn)25<0?8h 1btIIJ!iF/Cx%qBPG:v[#4-_L45|hM3S#B)c16OFQA>2 ZTam^5[ϟ[$=1_{fEKQN+6q[l1?Թ,FSd sPϘG q.}[5k9L74LS2:F=YD֌U)J/󎹌!6/Gu ٠Ygt 04{hao!:1D2Oul`0D Pbɓ; کS1|Gfԝ{kSdf챬>ڼΝ+>z^+ hFqL7OFK~qb>%z;MQ '{-sqcL0q*or}vpppp(V03zXgXkBX }]v|O,؞(ԿFm2=xq \C9Ā39mLr&e`q>Jh[TOHB3B!4D R~l>)GxNR?A}4j֠u #vQ^>,gMȀAgƌ&z.N쏺#Ɖ&Lf#|DN8sksLA3`?\L@nڻ%[,>v6Qnl%X MƘ႒u{rc"#EXa1Y($,0ys@5<pAm?NP (|ٯe??Y?_3[6rAoT\1ԡ| q^}ryȵl-G ̀\ IpA6t&^4ĉ p|k+-3Ϲiۘ88888q'lp1bfh$|NQvG[zpG`ԨQB4W[S.Yݏ})oE1M4CDt=C=0ق ^P1W@sf,_hf_Tz~2rI uu֨qz5'5M:jީhoXGq9H$;;$.k-u.WJ)]ǁ&Q']Th*@|N4ɜ6T%ۣO@W7R1f|Zv˜yX"A|ae$āk3?%lâfK3$8B.񳥣M0S1Q4M|߁f6"=ITW|v^`U:4os"ɣusd9mZԩmMgh{Vu|HHgSUnzbJ&~C<Ӻ]yNj2^+R~_xAXUfiiyOȉE .⸬\?-=\^3ȁfy=<x[omL)#hv y薝3a>pYQqY>XGS>p?"#ooqJ_T~ 36& T )0a lGA>)>֐=Jg~}1P0f[! ,/7}Gb:CViVva4}R, h]nYq9p}佩+G<88мseG_.ݺu3改ЖDO*s S70Ə//n m;0%+O ߋ\~~{\h`KJZ6µ4`bߒ!Heʕa TI?Ɗj u\Thv,i kk )HEgm"N#P$$,)e>NpmlÊ PfT0Ҹ)NY0O>v;JKXi\~v_9fHmܵ888//.qKڷ+)ESLCșGiT.68[o'|"oy>פxod}C9Ipeρ=$ K)[WJ:888/ڙ3eqE#]3 h~zر  '?X;`888c||i?ܦ"O=5ǵ{#G:ߧZF"5PWCZ*u,]Tqs/K9ÛLnk<]o6N#qqq80u*d X4r~hO8ߪXFķɓiKb|'0H\L?Z\L9vqqqq8뮓V}<(} +ϣR$hFNTcݥs෿\wu&~z p6QWC$&vg?d_] Y)2}4ӫ9׆@s-͓B^}gk۾LCxLk?XMz,>ᄇ54Z;bǁǧ.N\jsbоʨ $p9hРf4S >\.h(o5B";تU+dMr`YѴ0Ef~囿7[.Wnʖ=r:2ǁ|9k-OX'[ޚ\zoZF+d3?O9?_*|eԩꫯʸqdm9Qbx7z q^xAFa̘ڨ9lgN:)7ٲed뭷6NR9h5GA3sooƜRhVUUe2Ntahd5 hƭ71qҺuVzm|!/Tvں5x3c@ĩLM%q <{z?jubJ:9c~USNc`RR ߐ65omZk𦢪ZZ{䜰)|,}t1YWre|^Ou` `E&Qt;y_$:{W4}^>{d ' SH y==c0@[UUj ?`<(hJL& iP.R**]:JMm~];o}WnG-cƌ]E鮻 ՝w޹z躳1p`)Hڵg6>:88l`c9^x1bDn@ZvuW{ds$TP@T*DRL50qYқKeFPܩlڱFXТsiI3҄Ѻ3Z7hØg&R)+ѻGd奞OH9Z4hӔHyWSԫ6~WO<¸2qq8}Z-L`4|񅋿n]ZH򠉸vC¬ꪄTUט2U Z [U%̹%{,\hW&Gipxi0K<ΤSGEetjBڴ)34nU*ݺmj#IڶɭYhNƧO޸^{ h\s$3fЈ784 sS$O?]s4 Ѵڵk'8 ;T>} PE>n;6\n`SNfOJϤI 9Ŀ)3իW1Y?}&zh:On/'iоc0T]]-w}p n 8ٳ)4?ڿꪫr2Ν+_i@s壎:ʜ5q)Ќ3.9Y{EI/F3AÐP|HY`:rd.]di\#W,(Q VSfȹoL5doNC;(/]*˱kCe͔)2`ԆVU<8(TVVFipH -[ʚ5k~Wl-)c|gC)@&G[f^zŋ͉[h7 pSO5ɮ[tahvz-93 ֲy@a*M3Ȧ{5yyc1c 1~iQj^͚5-Pڵh€} |OS7)S_~91`xeNv88884;VZ%ݻw7gދŚ8şAls)w-8qӝrGAդΊqq7:@;eٿ%{pstߖ =g xsݷoߴLL U_r R*`-Alʘ;GdLk{9c 4c~1>mYnX_ǂ ,;<#jkD}{K/5vlߑ W~FQc|믛 Ӝfs̑˞{)?|4i~ ͛gס @ Ν;|g]+ BdOj64&'/ghXiG5)0SSp¤21L%8X?pLR`0 DPfb6M&Ĥ:MRLVCKρu֙ Ślر#A T]m~wA4 @… 3ۮ; <-3FL`6'-Qn m)>#qF6l\|uq`(8uYIw?aT*N,Al=z4Κ3XjaEOfX]yN@3xf֨ZɭX€a'X֑"/_^p9[e_"{M}λiT4#GwI0m#G&n~ĥ"'X;f1!Gs:Tqo.znh/;V ϲIKc[X:?Sq /}WUHzҔrx텛$u3 4{׌6'@/>9|*Zh F|ZUnjfD믗ƍ]5:ƍgpf$Qd R͢5imj ɨ[1h$:j¤o4hn;hqAœVW@rC!=ޏQFI'݃:!չ@5gbzdSfK{dĉf$MI[M\`3dȐXʁfM36 ?ύ5Y;h>Qf֟mV uh~SO$kݺu6 ;[>cx))SR&*4#_PYPZUq]XPL8[<3 ͍gq$/Ԧ1 !D|@?nsZ]e"r17}QsK`(n.2ɞ(ok܏ ~"c=s>3xz7̻48Y((sCAR,mJ|d@Lv lRhjR< ˯Z{;^3yGu}zE2p4)i2) EJWy$h6m4䝗2礃{w&&@T4lMtuET{iXaC f.9" .aAٵkPL^ԋ&|}FgDI5+@֘Ly86Vpˍ<_x@Er@fN_K0%qA H |ƙ5$4L'9q DBs86A2}UJ&஻dٳ&dBKB1DԳ6n5b|&} /FG PV px2F `Ѓg8GAঢ়>@qKnN*W?~hݾ ]Ot|D a%tp>f˚ K6A3.x̚4&u ~O!@ւxs _1|e'1 lEbmt!ɆϬd`.>4T&c_cc֖=_!hDAל_620 N;d7˜OH YKقfz1ڳy -9x@w]wߕ9/? ө[cT͈T mR;NjȊέ j8_( 6!*uD`읙0Dd( Stxa^d&KJ397S_e z)jrg2cLb\cn.e-&[ix+Jdwv:9餟[j,ZX辅޲{)&%RbM$DDjHߒEd¯垻/͍扆^<Wm^)KI9d38<)(%KvgiZks^4Om&[y;ocL ﳈPZ|5I7/% S>SQ~$w?wh2ࣣX7e8[pDBX<1O- {K8K-p™khZ77.3ZhN9?΃ #HG>SζkehQ! bW_-M]_yT -fYW&Лr:Yd_" #p=-=<#Pk/3gnM0aV5& 41xS8jo1É8OX 10:hɆJ:J/SfA:96ZK1]oGGCR+*\:KL$ՌcLF7{פI//zh(`P@}qcbMǞuϚde~ՐD߳=zGOG%=`aH{̻kL#}9͸@5IH )mn-H/f$^L@?Rz>r/v9H.k |\,]*VǕ&mz/q&U˷˾oN***&K׮RUY--^{KV zZ XKRb^m۶3`Dڀ_ 6_*%I{NyޢE$je {6m莩Q@ /7 ӷҲI{٤}{)D*Yj]V6^Ey ر<@H<'YJ! (Q*TIe0Z|嗲d5(?I| NJ ^>Ow"+V|'h)鳥g)+-KK*)H>fYR6TdchVXK#P@IB~f-zZφiբ\8{<3(V(8, !>[MI^S-ڕ42=| @J 0[fzu1!EA]:g;Q0k[k;s笿Z8 pA>yoL~)x~}kSX4T_o0eA0ϒ6:<09 ERٴClykۻFztk%7)5]&ǁ@۶me77Ś0Bp`A˥ဂQU(Ajՠ! hA3׸XenQf0|ˇəgJʕτlA3].SЁ-s k 6@돳&ZIMls[\x l} `(Ra 3&2()5N|L7Fa}Al@cf} C?h`)D](||r O2ݓtP* B9w޹Rpݥ < yyєTdW YKIԾ޸h*- X"gdb54Ϳ6YsЪ ЬKx3f ll2=lЗIWk~k/BI (T.ڗ&mˤE9gTR l0g)"b# , ̡8#G7< Q ^d4jKGV+`r0^;<У6yufR:|vu+j;|_̱4|GiJ>2}A4t[= /Y>2Z,Ym3Ibk mZ])FUMVB13vC٭zZHmէ) }iղ,}V$-"|V@-)SGO+vWkd<zkH&9& A4}MJ%_B%}VeAEk&S[2~7 %>=_ YRVk*R6d;];v}=%ǁ|&KhaaS &\. c)֮}RJuEn9 CG>XvxS_GؙG-z4r@S'Olª ^H#-.AqQУ jAqL@@W EՂZ>S>R.9YDG>3g1D LR5%N|.Y{'hk!aj&|UET&q$h]3+(l>L@H"~}TU'd;ʑm&^t |37mp~,puwcɦ-WqX9WO3VH\:lڹupWvҮ-.90O!4bM@ЌPLN\jd~yq(@'Y:Nʌ/ܞ6ht:@w-W)hF/q68 !iAtET,Sz7h:6-1ӵme;4 PЌ~)dcV"0L3iEcfIhġ9Z@hhhh"mfRM8sq@3[0]t!Q71~OpN} R.A\IhefS򻽿|*u3/?,8Qw_\"艫 xot)4Lcq//@ڷ\{AE!888PXZu Rpy֝sGODzhᮘA3f8?vy8 hD.C`8C=6l# I#-SЌ6Gԡ6DK"RAT[|·"}w&Œy1Ц>6CkB@4hcK_ 3,`ZGdK4mHdCƜ@;sɨ{6u5rH۷04NdƠނ t#Te:0Sm>ЯGOLRsKS6+~ŸȦI4iHj\ g6s 3(k{ Xk^0DŽRF2>9 6=@x4w(PE&1Ќz%TW4裏&Ph\\P[?,5K>ϒcԞ9# |$hFQ6Xl -g(w^Cupp(ZP#\tj_&[-WlW}uo[Ś*pЏ~#swq80u}1H_HE/6>\*b̙kf\9j{u\6E"Xgi.hW-mFvxdgI 70. 8*W\qJ[Ϻj,X^^xxO)//%]] g_]2CmFN? ٿKkt2gL(4#:fܔ@q`GHen+4ҋYꑹSTL1QѦC[2:LQ MKKa73gΔ_~h):˂?ǎ<0BJK4qPsq.Ef$ꭅ>r򻫶jhupp_|+5 C; ЌʘM R!_D_'>G!hu(x[z]w]dH߂@V8F~׮љr|Ś:  8Ph~!ҢK : _:8[Whm 08P 4J84k*d1Xr;P_=+~e9hz T)@qlSf*dXQG‡=5NSq  3jDȲY&Um\lO4)jP^Mr]?7ˋeϝegt yϥs۠080f-guVPHpȌS[ᄏls=RGˬqqqq8@TI&:t!/UtDN1'qD[?~NNh,/PpBjatL*jvmƹ Ka Mdpˋ&FQZyPlc>qj?@U%3),44zHak4=2c͡ hhxbWBacJ4p陌F=\&:fUQFPoo:_Z~ &L {YvHil, S ց:Jkhƾš$ilhf_=۠=[lQg +hF_Q=@A؋v}:c PTH?f2OVU%䐓'KN-8ӕόfhy1X)f5@q`~ zޗ\"ݷw:888d.J6;X+2(/+riphAPCJ~e'JAaB  T4'?~$J#hQz45|L >s'2 P2cE47}Wm ~$ L u*\c>Ο h6mڴ:ڕB#s32̙ᗙ:w YД|ļ Az8{P5mhY'检gʃy#ԗٰaLh1cƘ:bZ)6m^CI!C,yvqdž᮹]n2Wպz"9ibMce]̾@qϖvUK |G@L|?o1Bt1Kφ Yy̶ !<Qf|.tɨO*eӒB!4@h@32{=)]:m έZJ5 4p[k5F!)\uUF7̾RiD h2ei0͖(>QL50Dox@1UB,d6i;}ҶmlJd>b|W.OZk p Ji71+4Ccr{sI9{s 5պ~eG^콻k*~@3\/kµ#\r9󋵫_Éo_zI?TZ%"B5ǁXkekZ.V 2 k"( hJ%3gVrۧ%d?uEpE=/ 4S'w҅M'*@v&T@3{;{@ MG}ԀǏ7@~RfaN\>6d]zW P_ @LA hVs |Cj2v!#B!_;{Y`CM3 G}3t=zԙrGa+=)g2enDђf;a{iABq4а v~HE QNٌWT|D(Nuad܂0a?fiZ 2k ` : k:c rikc1e'"k*fbP#>wmM.VA7vkHAJ۶5AuTnԆVnRC>4*!rǁ"@Œ%ݿ-WXa|VnkǤEƳN̘jZl`vFP֨|c37lQ!#.h|D*XP ͎91:n8~¢g s֭[j͜9Sj@Nr5ډ_͔N'.946lv3f9Q =h4?seTq@3U RIEDLrxsҺwoX\:Yf|RJR;{6N$wߕg0[niʔ{uyK~o5IYN@JJL ={Z t\H} zÞkyYgzmeXTk mz-mf~NwQ(oqYnoE.lEbʲ|ްUX!-:g"1!!*\ԩOi}_sOD6̟/>7u4<[;{qGIHZ*K>w?MVW'˛?'W?2neשն+~يo6mzVd-CJ.]f942g}fER,L΀3F;]A~}^n!( x< ѣQҁf֭3N^h;_ڵRey'uQO~K$<*#$pF>HIl)JӎݴN,IA,Z$_|@C 9E{!S?>`TQЪU>k<1Ssv~͓ J YISU偱aS̾48[ CC_֖fnX{2?u|szM>(eL/:<NG=Fv[Iu5}6:@n3 )mR6x ~+mIzS\wzxfxɋBB/]EIa.-z;WﱇO;v}&{aHzqmS hVJ:3[r??#Զ[ld!cF+ۑz:LqS??fh\6`uM3L ѐ!Cr‚#@m5 #ou|͂ +(?rLsX uA/̵fTy-|!fwG끛v*}up8 |7][ m24C?.44 h2c͆ 4u 9 D`fIX3$_[|8W.Y>t5KC}ADA_~C &ߍ`o!̑o_҆ŋ[. [K,V[Zo A2o& mhSMOuiKhe۔7?RpRMT4QIeX'-ZjifzG%g(!D UwQP/tueCUcD@y`or/1;m KQy:gϞmk84%IF9jL9l0bǸt>Rܔ鼏So&p榭 >+~cύӭ 9;ud4:j8 4Sso.8M=KK7:8 6lv2 g:fص%A-A:lDZ `U@Nʅ]w%'N4\xn8Lv/Ll. nN9@sEYWhQ B!3S>*M8*5 h+\=Yqwylჾ*e %]e՚*y܀f8~M+#^0'r~YApM?L= 4Tx码:,㐄].Q}XT\ϕ BrA&_ДDs 8No3qxVgQnٳgO[&-&A{䰌I%BX4aΊ_C44FCn,lA3IAaD#/Pڷ+oLq4Q>bM\~ϣiʯl Xh@\a$-IV]|w݃?Uyy7fv(Y_'?\wu@3pNBT/8 T?A9c>Oyb AZS_'=Fs51 t3r]rppp(lpYSЌ~5cfyp(0enAl9apJ1h!ρtQ58pЍp9@ā 6;/ycCMGuLD|`Hi&i1%mǏoi@?I׆}Bcp =4zUzXC\.hlA@+4:4:' E 4~F~&Lvn!w^@}&l4l ԋJs)X@U.e  2N\_veDL{?? ~mM-m`L@sf)W@~p'gـLdBIcdyu^Bqqq90o<0 _F;)rޝ.x^rPQ> Dbk heɒ 6h64biY#+WUUw!W^y1Ľ _4N?|3? =GVhveD&Q(o'"ii4Ԉ|*0Xpo?ƇḰO>ٸ>};mg"5pmǞ %y,:yI/ԶKρCO"U.?{'QX44L(֤fhʥѩ4{g {f~ lL5QkC{ }_|iV4^"/cVIH1u?x`%_~yFLA2~#` '`"wa45AHD{g;"5зo_Co%k3^Ç;8889NM@34gUɁf:W_m2dH.e˖SLi;wC+'L=[J˥en\fS7s>{\ L;%%I:|UU"eeRb&j*O%%^>gh6kG~^}()mnVz([iIRN~?>^VE#|`4b&$N7SyI0rQg Ҵ6s1ͮSc[ҲTTԖ=fj`:훹әUwr\r̞:_oL7:ǫ~#fۦ[~{|dGɯym֋VZ*n*WZ%/eY1b̙6mZA3nU0#477θ||h e"&qGuOq84h cVIA3"qKŸ㳌^-b|z 40uE.-US˞}V=Zj*+^{I]oj[K_4gLZ!R#ܖ?q5~]Uˬ_@Z Ni}0>ĜI| @eS]IT||Ps(k>4vvXDZf5)mJK=R_O )kڣn X}WP0*O,j6lVRZ KI#.E{ Fl$(ꃧ]Od>0l &)!?cԢMmӀ>iN55믥e$(탯m@+ t+mUWKZ:2(<浖2߶k Y7w7Y _ۡXu7nT|V$%yQ:L?|^^RS#Vn+6̟/U+WJyRlt4H!=4rN2ðaÌf)Sd-3x9o%Z))|[!ufhW@9pq[9'-&]UƗرc4+Z\Ξ-߽w`RY>3CΒAT\ׄ""(@ Vu kULY\3A,A$A JP0k(}otř[ὩSHzٳ%J_j_|:e,ZR~͕,uyy;?_5l(7!GuLϗ˖;0ڱ|Tw_3ڨᅲJ/{cg~$//Ov['95k&idNdn5I=&fECXkd'?#lxKj|/+WݥڡʁFIEoA (% e壏ϣGK.]dڵRE 9lOn= fO<wqƤ;]R߿Ζ-[e3ӥ4xZw2㬖q続fX.$s:=Iyei{ZKʪ ~jVתeU߾].Evm[;$'+3[*kc%j[O|1 Z݄whKa-i;Z-u",kIH? IVXɑɦI[iٿ¢yv0mJ͛K'sIS KjZPJ 8j.Y"U[ΕV%d߽{w5sڴi7g 'p_JYfQ';l3Cq\ڰaCcvpB]}f6mAH}]㸕Æ +%TuY|B8ȶ8֘hTɮ7v)p׮]o$'<|N(ybrǚh]$Vt H|q||? ~lWq2 mۉخ]Js?S!,8?#Qc62٥^jH&hF$+RRϙ&Dj&e*D3|fL8~x]gו/drEIݳ6_EIƺk׮TXaf, Xe~,,\nm#QZ_8Y䵖b,"Y,,|ZV +_>$/3'&[̑Gb,44(:懛n ~(eiJ@ (L&Í7J vl\}uwNskf8 e.KfJ*9ÇlW4[jh8೸U4c5t+aG1T#!C)b)BSq [+x@*s 2hI۰KDFxBgۭjrM{rX^rȢ} Iz 9h0֯#G4c',ͮ{ZL/4oX>)Ԫ6lر\-͒˶8K}≒etFKNt.u{L͢C×_&t(k)kז_^xA8lm/&vM2ٳ>kN=ԴtBowڊfZ}fD9SƍRe駟nbͣ)6+Y˲tnFς+/9b ֪ 1i̘1ҦMs2wٞh"3C|BFpBP+XUկ_Vs=W9?7#0Wn3(,Ҳe3f(sٰKJ*siޢ8zLM<{= ݵk56o-xDk킩hօ eKӿ]6O*-/`1}(vo ˗K%w0ĕ0P|-ZDt&x钎;M:!e&[A EX(hD/,'N4|61eީS(Zo?3_7Xx𿰳P&Tkq*bd֓O>i,V`袋L~]VPlO`BK/ꡇ2>_*|0lv9 sՅ[)f|'x-HlÚ6,$!El%=dga}믗:~]{b-ˊC4Cb._zrm;6։2DSNc1@X5b^Ӷpw;w+p0kRq Xł_m^D2]v,bive@FrI rk!J ,ԲeK#3Q,=;_Ǎ_|a4 %\#L s]'On@gؿ^%'?GY[N>Amz8߫Lgm b@H&It9_֑[j܈!zw$*Nrj{9cbH*}WbHʡ\|&/"7R4O^"X~!:!$ -(˵0يi3 VZ{m?C|+膔hBxP)lg8c +_~ňuv;mN>oPdh>/.4 B1ց}DsD@VCVDBĴ\Zm۶vSnΕ;h_b0A(Yi;/`DX5c1z=^\K~¡naW\ AV b%|aͩ>׀m7r2Ӳe3 5q{ժU= sh6n*eN1X},gmݖ]͘~|!wЉ$&YɀOj;To\ӌ["("ozvnRF iq#~cf̘z*-ByfagSO=e#/c_'ZQ],̰l#5%pnpҞyʜy: 6| C-J⺎tr0<̧g;.RJA]@Nvcpr^ّBݸBҥK׬;tpQ#k2R:5ܕ46"eD[9=mà>Mdj"s<)~vɹ; wwv7Žw)h(??!hƉa0.gO-4 yDd?۾x Z|y_69_>8-u " u 6Z /?X{ r&F`%8. 64['Y?ӌSy^zAf<0yy |`qƖP־IE`/l.86Ex! /֖~}@ӧOhձmniXr)0cy+N-6ouv00&s3 Uv%ٝ`w.#idwk!:=G^DI-X`â6#v\s{&Ok0ma1⋍+2`q,tn~>YsqT)hß=5`/hF:LntI9U.Dm&3QG`„čUDr*F!Ie#R'X^|<=w˧q+xa`wK~UM(ڼȭ%],i@xi(ep0 ?1>^L~$J%ctr!{-]_|Y5ju!a5LAۗ)T6碞.w@4]:xgub+C@0ĪQK$yD9&ޱoZ;v0vD,A "y .2_P*vq^NEmf^w.n]Xf<7F7֍ AQo>9׀#2Ah<\X0qya"9spwW0`.Q>œEsDDB|gy+YL$c,q?6df;v45ݍFuo!SڿTl<'R?x"6hۗh";&xeQW9G*.n&}z5kL0hr!az@@Nh%Y,P12oS,x7ܚj7p~ x1hrT4KUh{VXA©k!7 fDkV`ǀ$"KFb%vg e|ݱi﬛j{~dxq) IDATywy!zHٝW$oi\ܝ/Vdzh?𴮖X`۱ RvID>@~&rprv FV~AfW;/?+",7E `na-uFF4۹z?^2V|+}?tl4I7/f>;.g_02B;g wK@įu+RxDc+Vq( $[D@\_<;n_܉eɊ^afo܀S~.o,s9 V^W;c%G`;|Q~46w~@y-?Γs5kVdƼ99 0Ɲcr[;J2O>1z"fGՏ>*_zIn]?o{4#RD3ndn.&tTy{nh;:&L݇}M<wAym 7 xa)u  UYUGw72&ݜs^<~yz_'f% D σdw5GƤx^jA{?Ե,~pxM(_X>2(duA"t$ǫ<x9ЯKI*fjU6SSΝ+ۃxer_3ۍhOdD3XcX?9^WDghwZ0QmhH#Zj+E,vwތGl[ ǿc&bV$A9.64yᇅ 8 ۿSJ3$B+嫤D3kNX97S41?DV2,F,Zz@L,X`a. b9*CךEɃ8D x`Eti#勘M􃇉 Ğ-$}¶u 늒ݴ9ڋwkoY9-P3'dQ`-f[F}͔} \hL,Y4eg-qW7aؒI(yھ;2n ?YHv'L\YA:3%1.TDžG[$sٞ9md{"G`:Ӵl̎a,$lNִhM4}—03rh;UbfA9مn:bQ (Kk - |ׇ9NIKWUm`YKm?1^gkN(^Ded\W\_(a ֈ+cve^Qֺh눸Xf{ 2 Wx~X/\FXr~Ld.#"/w뿎lIu[,h-S)G{'x"'r196(UdnTʓ=!V $ W:9i2Oͽ'F@/cBP8#J 53fE]-,Jk^|gE3ׇ7(DV}3  >i Y+p4'<0F<4/$^'_b g@ybՁc,T7/(V>`::q ËgA܈fmerϿik h|:茇+E;.Rvu"DMA^B퇭-יlS) 9eJҶd8KXX?]1@@d0S߯cʏFIIw)y~#"T3]?/ '+Bmfƥp^ǏoǛ־t/Yr$L mΎjlτ BLiqVt[_N??h}%!!^0%Y+Fo4GiS1:Y@Xv*s_+```V"<~Cflؙgގ` z"B#Ivٻ+ح\x@kFd^ j\SvP醳u s_+1E>b"cxA|x O\G?1xcwsMmH/s<ܖ& x9ڀh!YAsXCJSvo 9FOPOG~vf\&3,amK AmުUf ܝ"% ]AX!ȌXWVLB!ym~;S k]AC?5g-G̯<{%n֠=;x!rksUY @K=p'-.H[tuS}K,GŶuAbϹHy[ʌ_~)k.fHkPXW4e@ E6w_..S:BJʼnJZPNsn};yt}ZCԧxLmo`LMLa@qՌʇutGjcɈF,8 3AEX"UQ"T[GXG1id(քr dKs9~ٺpt⋸ r@U$"ZB9e7z |ן?mx-Vw!$o.;wÿ؛5};%VP}oV#7/vșCfɗ.',:x^hAyTS*MB+iJ@ d&J!ӹs]\uQt=`%Āh{>6eCSjXxŒ~xɩ\HN~۲"xbkؙ3`v+PmkeɟJm#t|9i#c& E6"eCy|LuԏE!>?>ycQ^ 4CqIelWFdApc VL~O9Dz3>8FyJ)~57 &y?ZͲ0%>^7 <-~'#[p/|VgNJ+v|<8*vD~_aä1E TO=Z%J-7鐖̕+cI^ t跶Q (I8:e5` xt=0XBtfL&,Ex@-S%wBihw*@Tl#pC ~2Y<A©?Bung8nr#[|fk \1c--@VϾH9lr7}F+N*&pS'mrI9vi#+"zz RV@ÿmmc8^Z, JhA$@D)zfl}9D77Hu`.1wb 43 Xm? 9^cK5bԬ{=qkuAu!aF.W{k>ct}mG]DE#g"6#0ӧ2/^q?lp'@Pzi رcM$DD&k=O~mt~y=AD3Vy+"ik`" ѬsO& UL&kPJ@D:K)bU/导:S :.2|ײC~=[ڽN&OQf|蜉^"2(62ulojhkpX͚5b|l' 𹖈`F+Y7ftvԩ3̸U=0D1sAHF&Z!$G\rq8wWɇĉMPB CH"YUV X is=g]cX͢Kv2ZLP銦 tp7Ñbɋ/E5ʏ9ǹFƊ:܄%<8g^K4lcǎF0<spWS_sXByy{ݎ0_ь0{yCZf|`{ٿIӡF%@}liߺ%G`) 351fǸ s&=Ȕs+ gfJҥKGgKqn$\9i3q(%2e*[MKC4ȈfX9&(J wi͔j#>,_w%@׹rkJi{2+Igjٳ 8+tY_ .@t((APV쳲ǥӴiq#X0pdegKgX=@ (%P ,A̿4H&k;Pe͓+Ƚ7G*@Rj#>Y<Ȥwy& 7VgRs~I#dr=zeMNPJ2k,8P̝[(*Udf/f8 )NirʁMJ@ (%".[^5GUHpKd)S}X 'l?i7?E) LQx;olpJvGW  ;RC>^PJ@ U'OCH%Rb`>0KQ19J \]3G4,wߨ[|i;P/rDP%Bhb'25]tE&j x噦'WˡcǦ~c3K '!GKΝO+ JN͚>^PJ@ U?|lS8iR# G|E3B60#G+/e3_mʴIP \pYoP9ϲ+eҥ曥9$T_%ݹJNJaЃPeիeNҠ_?iz}3͈|EٳgKnG?߯;V[=,eڤ QJ@ (N8]z @R2V^-͚53fHKR/vѬ_~ 巏>ƃI!Cd;%)vɎ+\R{){}9Ogϖ*Z2 $@ ‘YY+D,rdgʕ3}5?˕ $|*HvŊUTh{vʒS4~I4il9S*5mj,*6j~~)嗥J6r#,=X (%l5/$ܼ3ڼjt ~w|E3 }㏧)Y$NM&'}ih%(UG*tn_Tۡ˗/>Xf͚%mڴ؎cy&J([5 )y^}Uygv 0@V _}lK˓J͚IzZNwTnݐ@ϰE~/ٽ[w풂]OD2yv\9)>";vDlC"VX2VNd#\q+q|nEеA:g,#ɿ ÇygmD6+ѾFCҥFۺl4xKк,҉^òE׮k" Ȫ\溶kwf<ߙ돼QvC쭷lk~ _طZҁ黽G'܈}6/`S{8ОPv<{w?"%ss~~D?ϛӆ[1mG/Mc9y؄:Ex~̳cٔaq?M^[](Q}&N TlL*5jd-J"q@P7oW4[`qW[`dqbYVSY%B`m\H1\b IDAT EI۶meܹҲe+>|4jH>Sˌ)y^z饽+\y&A&~[4y~ڰAr- ]F!ɡke,"rTa03Qvp`ESixJi"abjʌ5 dxX8ɴ0 dƍƗ}NZkg,lpD{ۅg}V+Z>vQ9=aU EhgœmۤJ۶wjvRI6Tk^x G,B zqFz}E/ F-}-0U2rٺ-Oڷ&o4KۡPQL f"hjJ>+WСCe̙{IN*1vY%wb#`0.c-b1LCȊ.Bc)c'-[DvTBѩPXqh\"]jxD Ytɵr/"D͹uTW$;=#-;t5[f̐gid~͈\1-k-۹fMzv$X(;B_ Pp1dHrD,GpΈodAr&Ƃ7ll" 9klg޶mp{z#";,խ[>w-#F0o[hl2駟N+ǖIY|6ydFa4PJ {9`Jr5@)2U=p[ol OO[nE.ꫯ䨣J~%ZPJ@ (%0;v+5jhb ]? iWHrY;KJsUWJ@ ( 徛#;zHԩScK~`)w!vv~ҵkotpruc=Y?mPJ@ d>X#[ηþQخK޽} L oV[lشKN:tlTiC (%<Rg.F (DOK Z'N(ݻw 녝g"_VZ%&M|P?eb7KO*)(%Ifg?/-_ h$amY3U &>Az %YW Es2j(eRBvaE\flk^=IS>s;=KIƍ38Ø3x#m'Oz?Д|8Kch^|ƿYf:5kJ@ (%@۶mڵkK:û_6o,u֕W^yEzW^J}Kʤe*ҷGmi.Q^}ս"jdȐ!kȢX%KH߾}eƌM绚PJ:[ԭ ߩA[(yor|I3.gjWK_`;F}_~.mPJ@ (% bE3t.^%_l֭RV-#}~c?Y'OU?gryD|\~fȑ#rʅ}c瞓rM7ɠA$'g%&r}iX*1J@ Zxi{SSRܔfϴ3n!r_-UVŔ}W\qL6MN?tꪫLVMJ@ (%@3ׯ/?o|E3qVREnǦ[yl?I ۑuҭ ^%@Fزutp}rvGT hx'1{7|#Ǐ˂>R0//ld>,̲ҧR%PN 0ܐ-_ܷ/JӷTĵ wwM&j{PeRfyyve!3#dqqӍ~4%H>S-Q (%@2 l߾]jԨ!M4~h_ьD[rYg%RJ69ruS&%@ 0rK$?@=שLY;{1g׮]$7fΜi7nR/PJ@ (%v)UVΝ;˔)S|H46 ͧkF.Ybp{\)x$M_A (%| lٚ'_])N\#"OV7{fPIߣ'e1G}${̚5K;W^&wuDLدJ:RkVPJ@ m޼,f8'd޽KG=|io%?ۤt[qJ@ (L!a.3y_!d-r͇Hv53ڏ4&pwSĖL͙3G-[f|yhJ>קf%*%(**T-[DH4+WrO|2R%Gn&YI*%$|^~Nz@v̗9m4TO>i37,>lٲ%:hԩr5ȼydݺu&ȓشi' :SPJ@ $N@0 k׮YLKD3T8"ǯ7s7I9r1uNդzriӇtmhAe'\j>}#PmyRRN8o(_aY=ڲLe2ڢ ++ǴaOi#hire&ChO:e!ӡVѵ ~mp_ +t[vٯQ?^.v>ge%;;d_-pHaG Vʅ6ucԛ%gǹ_?s(|:LvڗJh3m6W7H:dɛH5d%@ :O?-6lH&K;fϞ-]tYQŪ.# @B883>S:PJ@ (;01c/@YݺuKeRZt7&)ܫHOeδK;tNcժBeݻސJ 3-v y[^8\mOA iϩvXxX]=t+MMq!m{]|Ӆ'f!{Vk~󵧤%mPcA+)p%<e* {IŅBdd3V P$M9F|p9&rDvȺ_wovIfUiRz9Yv o&$~'!4l[;;|mZ"m7LBAa=%O&-L{BO; H!naˡ0 ;Yagy aqƖShMdXY:6n%k2{#{DkZ\ټ{XVsEXr|Zt}/;8^gX]+ٷkJg%yCC>G`. Fn~729.?@BC $C7M?)uk *|yky!a -Wh{dKA^96ְeI&%?/$ԇEmBm)' PRp_C !>y-KLgm599;FҸ~i٢~hMe)qoh#"7ߔ5kd4"uM~zP'g.[3~/kh֩PJ@ D%ƅh虄|/.q&M>ޞ={O> PJ@ d!CSIV^mkaQyLM (%P1 quDK,ͪW.dg`YZ =Zy93J)ZPJ@ (%! $&L+WfH"w~3~vN (%P`hFtqH4Y5D*̈́СC_~fSn%PJ `Eˏ?ޅm۶I:ucz4)%PJ`C_HD f#G-83hVtl%Pe/3f̐>;&M3o9sHڵ͸k׮&ڥ&%PJlhܸkN>ߎw_aPy=X ߫W/9ӌm`8kJ@ (%2@>}d޼yeBH"8Drsseذa&; #O>۷*%(o?'?ޗE l7*Kۧݻ>l[nfPJ@ (%@$s2C8"(fΜ]?|arQGҤPJ@ pjJƍ@Y-[nfE4Ӛ5k뮓^zIN?tPܹT-͝;׈d?Yd)f8mӤPJ@ (@HT|E)&-e˺hn>ئ+Q5)%Pe*UG}@YndUw0{衇UPPJ@ (%J7Ӣu,fggyL+%(]]v5 AMfr̛7OVZU=Ä~͒oiRJ@ (%@24kL?p]//z 2J)%McZH $s9oGPJ@ (%)&V= ez_"W_ezWcoɒ%ҷo_^:uiy%Pe@ǎ/qv=h6`U믿<зP͠PJ@ (T'vZ9dذarwzs>]k`E.+ >Y:ImPJ@ (0ܹsD+Ҙu]ңGZG)%PJ  /ZB-+:m4YpaT&Κ5K#z=ڸФPJ@ իW7VO=ofvL8Qmv7PJ@ (%ygdĈҿTonۇ0HQ[۷?/X{7< W]udeet=\ (%HAy饗}@p/ԨQ6ӤPJ@ (t'ЫW/Y`<裂LO?tM&RYK6mAo!.c]x7JժU PJ@ (2M??{@٧~j?/ev^ (% ՓeiӦѩ`EIF| J@ (%H5jQFInR֞ݻ n7fΜYluhJ@ (%HE3W?.۶m3cAX4Zj9ch6̯l^ (%P)G`~_Ӣ,|PF![n-K־*%PJ@vj }(-(q_̚5+PI (%PB`Һukǂ R_M`yҤPJ@ (@1`N/R@ݎK44i\xo4-P+4PJ@ (%J5\#*T{OF-GuT ԚZUǍm_PJ@ (%IJe˖Inn 2$P(5k4&LͤPJ@QTIDAT (&@0#E^| w5vPJ@ (%P0$R߾}/-ZvܢԩSpV~}뮻G*LJ@ (%(M\pr![o?93K9VUO7mVPJ@ (%2رceȑKzow7nь.3f̐͛7PJ@ (%nfͧPJ@ (%"ߡ*7xӧKK VoaGnN:DҤPJ@ (L puɦM_W_}VfTf֭,YD>+iPJ@ ("xꩧ :ugyHe'N,`vfzwJ@ (%@a7]vڴiP&ډJ|ԬY3AJ@ (% 7 > W_oe2?oD&%PJ@ #˗˟':t9LJk) 7o[/^,v|bŊQSJ@ (%@L8p|?cW|Wh Nk~Z#G~TJ@ (%@ رcp R~}_SN9H-+̶:駟K.g]J@ (%ˮZC1 wﮀ$;4h s'|NbMBTA&vDSB7;1/-=e˖BH}զxڛh9ɮ^g^s߈޼nH3;vF=h=Aʬ]lذՖxś?Ymr!qZg}Ҫ<xM~~~|Dɋ|ٲe۔H")0ȉɷ_999{ܟG{}y߳yE;p֭&<ƍʕ+. ŵ~ILr]w5̙c~wyҫW/VZ:vK۬PJ@ 9Y㋕q4:+Qf.SLNz/1mΝX3// ArsN&0؉߫TbI w.DXV,(hGIdBiiBE=ޝdEyux] " d+h?ibH#yLIt.H}bm{ʉf m{FZl+ {zܼyyEHC= 2Ru\Jz v+>h4i>uMP dՎuE&[ڱL\q$ŲrD ;bKmD R_Qf# >~t0hY~p`wFi_yQ\!r""!ݺ3ɥwCŗH 9^˺{?iKYdJSq߰aCi֬qѢE bˣYՂPJ@ (%@rPih]#YVGQm2LVvb,%j/IJ*Ս r@| RfQx9*")#b;m${E ܉kke6y hHs(%PJ@ (%PJ@ 1*UJ@ (%PJ@ (%'?#͡PJ@ (%PJ@ (%PhVNvW (%PJ@ (%PJf4PJ@ (%PJ@ (%@#Y;]%PJ@ (%PJ@ (*3J@ (%PJ@ (%PefekwPJ@ (%PJ@ (% ?O88=IENDB`golang-github-in-toto-attestation-1.1.0/images/provenance.dot000066400000000000000000000005721470602552500243130ustar00rootroot00000000000000digraph { node [shape=rect]; subgraph cluster_external { label="External Inputs"; materials; entryPoint; arguments; } subgraph cluster_system { label="System Inputs"; environment; type; } BuildExecution [shape=oval]; {type, entryPoint, arguments, materials} -> recipe; {recipe, materials, environment} -> BuildExecution -> subject; } golang-github-in-toto-attestation-1.1.0/images/provenance.svg000066400000000000000000000134021470602552500243200ustar00rootroot00000000000000 %3 cluster_external External Inputs cluster_system System Inputs materials materials BuildExecution BuildExecution materials->BuildExecution recipe recipe materials->recipe entryPoint entryPoint entryPoint->recipe arguments arguments arguments->recipe environment environment environment->BuildExecution type type type->recipe subject subject BuildExecution->subject recipe->BuildExecution golang-github-in-toto-attestation-1.1.0/java/000077500000000000000000000000001470602552500211135ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/README.md000066400000000000000000000007401470602552500223730ustar00rootroot00000000000000# Java implementation of in-toto attestations This package contains Python bindings for in-toto/attestation. Its contents are autogenerated using [protobuf definitions](https://github.com/in-toto/attestation/tree/main/protos). For more information, see the [in-toto Attestation Framework](https://github.com/in-toto/attestation). ## Versioning At the moment, this library is versioned <1.0 as we work towards stabilizing the protobuf definitions and the available predicates. golang-github-in-toto-attestation-1.1.0/java/io/000077500000000000000000000000001470602552500215225ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/000077500000000000000000000000001470602552500230045ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/000077500000000000000000000000001470602552500243205ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/000077500000000000000000000000001470602552500266575ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/000077500000000000000000000000001470602552500310025ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/link/000077500000000000000000000000001470602552500317375ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/link/v0/000077500000000000000000000000001470602552500322645ustar00rootroot00000000000000LinkOuterClass.java000066400000000000000000001666061470602552500357710ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/link/v0// Generated by the protocol buffer compiler. DO NOT EDIT! // source: in_toto_attestation/predicates/link/v0/link.proto package io.github.intoto.attestation.predicates.link.v0; public final class LinkOuterClass { private LinkOuterClass() {} public static void registerAllExtensions( com.google.protobuf.ExtensionRegistryLite registry) { } public static void registerAllExtensions( com.google.protobuf.ExtensionRegistry registry) { registerAllExtensions( (com.google.protobuf.ExtensionRegistryLite) registry); } public interface LinkOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.link.v0.Link) com.google.protobuf.MessageOrBuilder { /** * string name = 1; * @return The name. */ java.lang.String getName(); /** * string name = 1; * @return The bytes for name. */ com.google.protobuf.ByteString getNameBytes(); /** * repeated string command = 2; * @return A list containing the command. */ java.util.List getCommandList(); /** * repeated string command = 2; * @return The count of command. */ int getCommandCount(); /** * repeated string command = 2; * @param index The index of the element to return. * @return The command at the given index. */ java.lang.String getCommand(int index); /** * repeated string command = 2; * @param index The index of the value to return. * @return The bytes of the command at the given index. */ com.google.protobuf.ByteString getCommandBytes(int index); /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ java.util.List getMaterialsList(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getMaterials(int index); /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ int getMaterialsCount(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ java.util.List getMaterialsOrBuilderList(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getMaterialsOrBuilder( int index); /** * .google.protobuf.Struct byproducts = 4; * @return Whether the byproducts field is set. */ boolean hasByproducts(); /** * .google.protobuf.Struct byproducts = 4; * @return The byproducts. */ com.google.protobuf.Struct getByproducts(); /** * .google.protobuf.Struct byproducts = 4; */ com.google.protobuf.StructOrBuilder getByproductsOrBuilder(); /** * .google.protobuf.Struct environment = 5; * @return Whether the environment field is set. */ boolean hasEnvironment(); /** * .google.protobuf.Struct environment = 5; * @return The environment. */ com.google.protobuf.Struct getEnvironment(); /** * .google.protobuf.Struct environment = 5; */ com.google.protobuf.StructOrBuilder getEnvironmentOrBuilder(); } /** * Protobuf type {@code in_toto_attestation.predicates.link.v0.Link} */ public static final class Link extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.link.v0.Link) LinkOrBuilder { private static final long serialVersionUID = 0L; // Use Link.newBuilder() to construct. private Link(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Link() { name_ = ""; command_ = com.google.protobuf.LazyStringArrayList.emptyList(); materials_ = java.util.Collections.emptyList(); } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new Link(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.internal_static_in_toto_attestation_predicates_link_v0_Link_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.internal_static_in_toto_attestation_predicates_link_v0_Link_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link.class, io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link.Builder.class); } private int bitField0_; public static final int NAME_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object name_ = ""; /** * string name = 1; * @return The name. */ @java.lang.Override public java.lang.String getName() { java.lang.Object ref = name_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); name_ = s; return s; } } /** * string name = 1; * @return The bytes for name. */ @java.lang.Override public com.google.protobuf.ByteString getNameBytes() { java.lang.Object ref = name_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); name_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int COMMAND_FIELD_NUMBER = 2; @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList command_ = com.google.protobuf.LazyStringArrayList.emptyList(); /** * repeated string command = 2; * @return A list containing the command. */ public com.google.protobuf.ProtocolStringList getCommandList() { return command_; } /** * repeated string command = 2; * @return The count of command. */ public int getCommandCount() { return command_.size(); } /** * repeated string command = 2; * @param index The index of the element to return. * @return The command at the given index. */ public java.lang.String getCommand(int index) { return command_.get(index); } /** * repeated string command = 2; * @param index The index of the value to return. * @return The bytes of the command at the given index. */ public com.google.protobuf.ByteString getCommandBytes(int index) { return command_.getByteString(index); } public static final int MATERIALS_FIELD_NUMBER = 3; @SuppressWarnings("serial") private java.util.List materials_; /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ @java.lang.Override public java.util.List getMaterialsList() { return materials_; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ @java.lang.Override public java.util.List getMaterialsOrBuilderList() { return materials_; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ @java.lang.Override public int getMaterialsCount() { return materials_.size(); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getMaterials(int index) { return materials_.get(index); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getMaterialsOrBuilder( int index) { return materials_.get(index); } public static final int BYPRODUCTS_FIELD_NUMBER = 4; private com.google.protobuf.Struct byproducts_; /** * .google.protobuf.Struct byproducts = 4; * @return Whether the byproducts field is set. */ @java.lang.Override public boolean hasByproducts() { return ((bitField0_ & 0x00000001) != 0); } /** * .google.protobuf.Struct byproducts = 4; * @return The byproducts. */ @java.lang.Override public com.google.protobuf.Struct getByproducts() { return byproducts_ == null ? com.google.protobuf.Struct.getDefaultInstance() : byproducts_; } /** * .google.protobuf.Struct byproducts = 4; */ @java.lang.Override public com.google.protobuf.StructOrBuilder getByproductsOrBuilder() { return byproducts_ == null ? com.google.protobuf.Struct.getDefaultInstance() : byproducts_; } public static final int ENVIRONMENT_FIELD_NUMBER = 5; private com.google.protobuf.Struct environment_; /** * .google.protobuf.Struct environment = 5; * @return Whether the environment field is set. */ @java.lang.Override public boolean hasEnvironment() { return ((bitField0_ & 0x00000002) != 0); } /** * .google.protobuf.Struct environment = 5; * @return The environment. */ @java.lang.Override public com.google.protobuf.Struct getEnvironment() { return environment_ == null ? com.google.protobuf.Struct.getDefaultInstance() : environment_; } /** * .google.protobuf.Struct environment = 5; */ @java.lang.Override public com.google.protobuf.StructOrBuilder getEnvironmentOrBuilder() { return environment_ == null ? com.google.protobuf.Struct.getDefaultInstance() : environment_; } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); } for (int i = 0; i < command_.size(); i++) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, command_.getRaw(i)); } for (int i = 0; i < materials_.size(); i++) { output.writeMessage(3, materials_.get(i)); } if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(4, getByproducts()); } if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(5, getEnvironment()); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); } { int dataSize = 0; for (int i = 0; i < command_.size(); i++) { dataSize += computeStringSizeNoTag(command_.getRaw(i)); } size += dataSize; size += 1 * getCommandList().size(); } for (int i = 0; i < materials_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, materials_.get(i)); } if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getByproducts()); } if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(5, getEnvironment()); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link)) { return super.equals(obj); } io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link other = (io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link) obj; if (!getName() .equals(other.getName())) return false; if (!getCommandList() .equals(other.getCommandList())) return false; if (!getMaterialsList() .equals(other.getMaterialsList())) return false; if (hasByproducts() != other.hasByproducts()) return false; if (hasByproducts()) { if (!getByproducts() .equals(other.getByproducts())) return false; } if (hasEnvironment() != other.hasEnvironment()) return false; if (hasEnvironment()) { if (!getEnvironment() .equals(other.getEnvironment())) return false; } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + NAME_FIELD_NUMBER; hash = (53 * hash) + getName().hashCode(); if (getCommandCount() > 0) { hash = (37 * hash) + COMMAND_FIELD_NUMBER; hash = (53 * hash) + getCommandList().hashCode(); } if (getMaterialsCount() > 0) { hash = (37 * hash) + MATERIALS_FIELD_NUMBER; hash = (53 * hash) + getMaterialsList().hashCode(); } if (hasByproducts()) { hash = (37 * hash) + BYPRODUCTS_FIELD_NUMBER; hash = (53 * hash) + getByproducts().hashCode(); } if (hasEnvironment()) { hash = (37 * hash) + ENVIRONMENT_FIELD_NUMBER; hash = (53 * hash) + getEnvironment().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code in_toto_attestation.predicates.link.v0.Link} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.link.v0.Link) io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.LinkOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.internal_static_in_toto_attestation_predicates_link_v0_Link_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.internal_static_in_toto_attestation_predicates_link_v0_Link_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link.class, io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link.Builder.class); } // Construct using io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getMaterialsFieldBuilder(); getByproductsFieldBuilder(); getEnvironmentFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; name_ = ""; command_ = com.google.protobuf.LazyStringArrayList.emptyList(); if (materialsBuilder_ == null) { materials_ = java.util.Collections.emptyList(); } else { materials_ = null; materialsBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000004); byproducts_ = null; if (byproductsBuilder_ != null) { byproductsBuilder_.dispose(); byproductsBuilder_ = null; } environment_ = null; if (environmentBuilder_ != null) { environmentBuilder_.dispose(); environmentBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.internal_static_in_toto_attestation_predicates_link_v0_Link_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link build() { io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link buildPartial() { io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link result = new io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link(this); buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartialRepeatedFields(io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link result) { if (materialsBuilder_ == null) { if (((bitField0_ & 0x00000004) != 0)) { materials_ = java.util.Collections.unmodifiableList(materials_); bitField0_ = (bitField0_ & ~0x00000004); } result.materials_ = materials_; } else { result.materials_ = materialsBuilder_.build(); } } private void buildPartial0(io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.name_ = name_; } if (((from_bitField0_ & 0x00000002) != 0)) { command_.makeImmutable(); result.command_ = command_; } int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000008) != 0)) { result.byproducts_ = byproductsBuilder_ == null ? byproducts_ : byproductsBuilder_.build(); to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000010) != 0)) { result.environment_ = environmentBuilder_ == null ? environment_ : environmentBuilder_.build(); to_bitField0_ |= 0x00000002; } result.bitField0_ |= to_bitField0_; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link) { return mergeFrom((io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link other) { if (other == io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link.getDefaultInstance()) return this; if (!other.getName().isEmpty()) { name_ = other.name_; bitField0_ |= 0x00000001; onChanged(); } if (!other.command_.isEmpty()) { if (command_.isEmpty()) { command_ = other.command_; bitField0_ |= 0x00000002; } else { ensureCommandIsMutable(); command_.addAll(other.command_); } onChanged(); } if (materialsBuilder_ == null) { if (!other.materials_.isEmpty()) { if (materials_.isEmpty()) { materials_ = other.materials_; bitField0_ = (bitField0_ & ~0x00000004); } else { ensureMaterialsIsMutable(); materials_.addAll(other.materials_); } onChanged(); } } else { if (!other.materials_.isEmpty()) { if (materialsBuilder_.isEmpty()) { materialsBuilder_.dispose(); materialsBuilder_ = null; materials_ = other.materials_; bitField0_ = (bitField0_ & ~0x00000004); materialsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getMaterialsFieldBuilder() : null; } else { materialsBuilder_.addAllMessages(other.materials_); } } } if (other.hasByproducts()) { mergeByproducts(other.getByproducts()); } if (other.hasEnvironment()) { mergeEnvironment(other.getEnvironment()); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { name_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 case 18: { java.lang.String s = input.readStringRequireUtf8(); ensureCommandIsMutable(); command_.add(s); break; } // case 18 case 26: { io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor m = input.readMessage( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.parser(), extensionRegistry); if (materialsBuilder_ == null) { ensureMaterialsIsMutable(); materials_.add(m); } else { materialsBuilder_.addMessage(m); } break; } // case 26 case 34: { input.readMessage( getByproductsFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000008; break; } // case 34 case 42: { input.readMessage( getEnvironmentFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000010; break; } // case 42 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object name_ = ""; /** * string name = 1; * @return The name. */ public java.lang.String getName() { java.lang.Object ref = name_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); name_ = s; return s; } else { return (java.lang.String) ref; } } /** * string name = 1; * @return The bytes for name. */ public com.google.protobuf.ByteString getNameBytes() { java.lang.Object ref = name_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); name_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string name = 1; * @param value The name to set. * @return This builder for chaining. */ public Builder setName( java.lang.String value) { if (value == null) { throw new NullPointerException(); } name_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** * string name = 1; * @return This builder for chaining. */ public Builder clearName() { name_ = getDefaultInstance().getName(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** * string name = 1; * @param value The bytes for name to set. * @return This builder for chaining. */ public Builder setNameBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); name_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } private com.google.protobuf.LazyStringArrayList command_ = com.google.protobuf.LazyStringArrayList.emptyList(); private void ensureCommandIsMutable() { if (!command_.isModifiable()) { command_ = new com.google.protobuf.LazyStringArrayList(command_); } bitField0_ |= 0x00000002; } /** * repeated string command = 2; * @return A list containing the command. */ public com.google.protobuf.ProtocolStringList getCommandList() { command_.makeImmutable(); return command_; } /** * repeated string command = 2; * @return The count of command. */ public int getCommandCount() { return command_.size(); } /** * repeated string command = 2; * @param index The index of the element to return. * @return The command at the given index. */ public java.lang.String getCommand(int index) { return command_.get(index); } /** * repeated string command = 2; * @param index The index of the value to return. * @return The bytes of the command at the given index. */ public com.google.protobuf.ByteString getCommandBytes(int index) { return command_.getByteString(index); } /** * repeated string command = 2; * @param index The index to set the value at. * @param value The command to set. * @return This builder for chaining. */ public Builder setCommand( int index, java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureCommandIsMutable(); command_.set(index, value); bitField0_ |= 0x00000002; onChanged(); return this; } /** * repeated string command = 2; * @param value The command to add. * @return This builder for chaining. */ public Builder addCommand( java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureCommandIsMutable(); command_.add(value); bitField0_ |= 0x00000002; onChanged(); return this; } /** * repeated string command = 2; * @param values The command to add. * @return This builder for chaining. */ public Builder addAllCommand( java.lang.Iterable values) { ensureCommandIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, command_); bitField0_ |= 0x00000002; onChanged(); return this; } /** * repeated string command = 2; * @return This builder for chaining. */ public Builder clearCommand() { command_ = com.google.protobuf.LazyStringArrayList.emptyList(); bitField0_ = (bitField0_ & ~0x00000002);; onChanged(); return this; } /** * repeated string command = 2; * @param value The bytes of the command to add. * @return This builder for chaining. */ public Builder addCommandBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); ensureCommandIsMutable(); command_.add(value); bitField0_ |= 0x00000002; onChanged(); return this; } private java.util.List materials_ = java.util.Collections.emptyList(); private void ensureMaterialsIsMutable() { if (!((bitField0_ & 0x00000004) != 0)) { materials_ = new java.util.ArrayList(materials_); bitField0_ |= 0x00000004; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> materialsBuilder_; /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public java.util.List getMaterialsList() { if (materialsBuilder_ == null) { return java.util.Collections.unmodifiableList(materials_); } else { return materialsBuilder_.getMessageList(); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public int getMaterialsCount() { if (materialsBuilder_ == null) { return materials_.size(); } else { return materialsBuilder_.getCount(); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getMaterials(int index) { if (materialsBuilder_ == null) { return materials_.get(index); } else { return materialsBuilder_.getMessage(index); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public Builder setMaterials( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (materialsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureMaterialsIsMutable(); materials_.set(index, value); onChanged(); } else { materialsBuilder_.setMessage(index, value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public Builder setMaterials( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (materialsBuilder_ == null) { ensureMaterialsIsMutable(); materials_.set(index, builderForValue.build()); onChanged(); } else { materialsBuilder_.setMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public Builder addMaterials(io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (materialsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureMaterialsIsMutable(); materials_.add(value); onChanged(); } else { materialsBuilder_.addMessage(value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public Builder addMaterials( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (materialsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureMaterialsIsMutable(); materials_.add(index, value); onChanged(); } else { materialsBuilder_.addMessage(index, value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public Builder addMaterials( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (materialsBuilder_ == null) { ensureMaterialsIsMutable(); materials_.add(builderForValue.build()); onChanged(); } else { materialsBuilder_.addMessage(builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public Builder addMaterials( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (materialsBuilder_ == null) { ensureMaterialsIsMutable(); materials_.add(index, builderForValue.build()); onChanged(); } else { materialsBuilder_.addMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public Builder addAllMaterials( java.lang.Iterable values) { if (materialsBuilder_ == null) { ensureMaterialsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, materials_); onChanged(); } else { materialsBuilder_.addAllMessages(values); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public Builder clearMaterials() { if (materialsBuilder_ == null) { materials_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000004); onChanged(); } else { materialsBuilder_.clear(); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public Builder removeMaterials(int index) { if (materialsBuilder_ == null) { ensureMaterialsIsMutable(); materials_.remove(index); onChanged(); } else { materialsBuilder_.remove(index); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder getMaterialsBuilder( int index) { return getMaterialsFieldBuilder().getBuilder(index); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getMaterialsOrBuilder( int index) { if (materialsBuilder_ == null) { return materials_.get(index); } else { return materialsBuilder_.getMessageOrBuilder(index); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public java.util.List getMaterialsOrBuilderList() { if (materialsBuilder_ != null) { return materialsBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(materials_); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder addMaterialsBuilder() { return getMaterialsFieldBuilder().addBuilder( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder addMaterialsBuilder( int index) { return getMaterialsFieldBuilder().addBuilder( index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor materials = 3; */ public java.util.List getMaterialsBuilderList() { return getMaterialsFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> getMaterialsFieldBuilder() { if (materialsBuilder_ == null) { materialsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder>( materials_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); materials_ = null; } return materialsBuilder_; } private com.google.protobuf.Struct byproducts_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> byproductsBuilder_; /** * .google.protobuf.Struct byproducts = 4; * @return Whether the byproducts field is set. */ public boolean hasByproducts() { return ((bitField0_ & 0x00000008) != 0); } /** * .google.protobuf.Struct byproducts = 4; * @return The byproducts. */ public com.google.protobuf.Struct getByproducts() { if (byproductsBuilder_ == null) { return byproducts_ == null ? com.google.protobuf.Struct.getDefaultInstance() : byproducts_; } else { return byproductsBuilder_.getMessage(); } } /** * .google.protobuf.Struct byproducts = 4; */ public Builder setByproducts(com.google.protobuf.Struct value) { if (byproductsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } byproducts_ = value; } else { byproductsBuilder_.setMessage(value); } bitField0_ |= 0x00000008; onChanged(); return this; } /** * .google.protobuf.Struct byproducts = 4; */ public Builder setByproducts( com.google.protobuf.Struct.Builder builderForValue) { if (byproductsBuilder_ == null) { byproducts_ = builderForValue.build(); } else { byproductsBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000008; onChanged(); return this; } /** * .google.protobuf.Struct byproducts = 4; */ public Builder mergeByproducts(com.google.protobuf.Struct value) { if (byproductsBuilder_ == null) { if (((bitField0_ & 0x00000008) != 0) && byproducts_ != null && byproducts_ != com.google.protobuf.Struct.getDefaultInstance()) { getByproductsBuilder().mergeFrom(value); } else { byproducts_ = value; } } else { byproductsBuilder_.mergeFrom(value); } if (byproducts_ != null) { bitField0_ |= 0x00000008; onChanged(); } return this; } /** * .google.protobuf.Struct byproducts = 4; */ public Builder clearByproducts() { bitField0_ = (bitField0_ & ~0x00000008); byproducts_ = null; if (byproductsBuilder_ != null) { byproductsBuilder_.dispose(); byproductsBuilder_ = null; } onChanged(); return this; } /** * .google.protobuf.Struct byproducts = 4; */ public com.google.protobuf.Struct.Builder getByproductsBuilder() { bitField0_ |= 0x00000008; onChanged(); return getByproductsFieldBuilder().getBuilder(); } /** * .google.protobuf.Struct byproducts = 4; */ public com.google.protobuf.StructOrBuilder getByproductsOrBuilder() { if (byproductsBuilder_ != null) { return byproductsBuilder_.getMessageOrBuilder(); } else { return byproducts_ == null ? com.google.protobuf.Struct.getDefaultInstance() : byproducts_; } } /** * .google.protobuf.Struct byproducts = 4; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> getByproductsFieldBuilder() { if (byproductsBuilder_ == null) { byproductsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder>( getByproducts(), getParentForChildren(), isClean()); byproducts_ = null; } return byproductsBuilder_; } private com.google.protobuf.Struct environment_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> environmentBuilder_; /** * .google.protobuf.Struct environment = 5; * @return Whether the environment field is set. */ public boolean hasEnvironment() { return ((bitField0_ & 0x00000010) != 0); } /** * .google.protobuf.Struct environment = 5; * @return The environment. */ public com.google.protobuf.Struct getEnvironment() { if (environmentBuilder_ == null) { return environment_ == null ? com.google.protobuf.Struct.getDefaultInstance() : environment_; } else { return environmentBuilder_.getMessage(); } } /** * .google.protobuf.Struct environment = 5; */ public Builder setEnvironment(com.google.protobuf.Struct value) { if (environmentBuilder_ == null) { if (value == null) { throw new NullPointerException(); } environment_ = value; } else { environmentBuilder_.setMessage(value); } bitField0_ |= 0x00000010; onChanged(); return this; } /** * .google.protobuf.Struct environment = 5; */ public Builder setEnvironment( com.google.protobuf.Struct.Builder builderForValue) { if (environmentBuilder_ == null) { environment_ = builderForValue.build(); } else { environmentBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000010; onChanged(); return this; } /** * .google.protobuf.Struct environment = 5; */ public Builder mergeEnvironment(com.google.protobuf.Struct value) { if (environmentBuilder_ == null) { if (((bitField0_ & 0x00000010) != 0) && environment_ != null && environment_ != com.google.protobuf.Struct.getDefaultInstance()) { getEnvironmentBuilder().mergeFrom(value); } else { environment_ = value; } } else { environmentBuilder_.mergeFrom(value); } if (environment_ != null) { bitField0_ |= 0x00000010; onChanged(); } return this; } /** * .google.protobuf.Struct environment = 5; */ public Builder clearEnvironment() { bitField0_ = (bitField0_ & ~0x00000010); environment_ = null; if (environmentBuilder_ != null) { environmentBuilder_.dispose(); environmentBuilder_ = null; } onChanged(); return this; } /** * .google.protobuf.Struct environment = 5; */ public com.google.protobuf.Struct.Builder getEnvironmentBuilder() { bitField0_ |= 0x00000010; onChanged(); return getEnvironmentFieldBuilder().getBuilder(); } /** * .google.protobuf.Struct environment = 5; */ public com.google.protobuf.StructOrBuilder getEnvironmentOrBuilder() { if (environmentBuilder_ != null) { return environmentBuilder_.getMessageOrBuilder(); } else { return environment_ == null ? com.google.protobuf.Struct.getDefaultInstance() : environment_; } } /** * .google.protobuf.Struct environment = 5; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> getEnvironmentFieldBuilder() { if (environmentBuilder_ == null) { environmentBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder>( getEnvironment(), getParentForChildren(), isClean()); environment_ = null; } return environmentBuilder_; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.link.v0.Link) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.link.v0.Link) private static final io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link(); } public static io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public Link parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.link.v0.LinkOuterClass.Link getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_link_v0_Link_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_link_v0_Link_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { return descriptor; } private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { java.lang.String[] descriptorData = { "\n1in_toto_attestation/predicates/link/v0" + "/link.proto\022&in_toto_attestation.predica" + "tes.link.v0\0320in_toto_attestation/v1/reso" + "urce_descriptor.proto\032\034google/protobuf/s" + "truct.proto\"\277\001\n\004Link\022\014\n\004name\030\001 \001(\t\022\017\n\007co" + "mmand\030\002 \003(\t\022=\n\tmaterials\030\003 \003(\0132*.in_toto" + "_attestation.v1.ResourceDescriptor\022+\n\nby" + "products\030\004 \001(\0132\027.google.protobuf.Struct\022" + ",\n\013environment\030\005 \001(\0132\027.google.protobuf.S" + "tructBg\n/io.github.intoto.attestation.pr" + "edicates.link.v0Z4github.com/in-toto/att" + "estation/go/predicates/link/v0b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.getDescriptor(), com.google.protobuf.StructProto.getDescriptor(), }); internal_static_in_toto_attestation_predicates_link_v0_Link_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_in_toto_attestation_predicates_link_v0_Link_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_link_v0_Link_descriptor, new java.lang.String[] { "Name", "Command", "Materials", "Byproducts", "Environment", }); io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.getDescriptor(); com.google.protobuf.StructProto.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) } golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/provenance/000077500000000000000000000000001470602552500331425ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/provenance/v1/000077500000000000000000000000001470602552500334705ustar00rootroot00000000000000ProvenanceOuterClass.java000066400000000000000000007225001470602552500403670ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/provenance/v1// Generated by the protocol buffer compiler. DO NOT EDIT! // source: in_toto_attestation/predicates/provenance/v1/provenance.proto package io.github.intoto.attestation.predicates.provenance.v1; public final class ProvenanceOuterClass { private ProvenanceOuterClass() {} public static void registerAllExtensions( com.google.protobuf.ExtensionRegistryLite registry) { } public static void registerAllExtensions( com.google.protobuf.ExtensionRegistry registry) { registerAllExtensions( (com.google.protobuf.ExtensionRegistryLite) registry); } public interface ProvenanceOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.provenance.v1.Provenance) com.google.protobuf.MessageOrBuilder { /** * .in_toto_attestation.predicates.provenance.v1.BuildDefinition build_definition = 1; * @return Whether the buildDefinition field is set. */ boolean hasBuildDefinition(); /** * .in_toto_attestation.predicates.provenance.v1.BuildDefinition build_definition = 1; * @return The buildDefinition. */ io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition getBuildDefinition(); /** * .in_toto_attestation.predicates.provenance.v1.BuildDefinition build_definition = 1; */ io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinitionOrBuilder getBuildDefinitionOrBuilder(); /** * .in_toto_attestation.predicates.provenance.v1.RunDetails run_details = 2; * @return Whether the runDetails field is set. */ boolean hasRunDetails(); /** * .in_toto_attestation.predicates.provenance.v1.RunDetails run_details = 2; * @return The runDetails. */ io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails getRunDetails(); /** * .in_toto_attestation.predicates.provenance.v1.RunDetails run_details = 2; */ io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetailsOrBuilder getRunDetailsOrBuilder(); } /** *
   * Proto representation of predicate type https://slsa.dev/provenance/v1
   * Validation of all fields is left to the users of this proto.
   * 
* * Protobuf type {@code in_toto_attestation.predicates.provenance.v1.Provenance} */ public static final class Provenance extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.provenance.v1.Provenance) ProvenanceOrBuilder { private static final long serialVersionUID = 0L; // Use Provenance.newBuilder() to construct. private Provenance(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Provenance() { } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new Provenance(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_Provenance_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_Provenance_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance.class, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance.Builder.class); } private int bitField0_; public static final int BUILD_DEFINITION_FIELD_NUMBER = 1; private io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition buildDefinition_; /** * .in_toto_attestation.predicates.provenance.v1.BuildDefinition build_definition = 1; * @return Whether the buildDefinition field is set. */ @java.lang.Override public boolean hasBuildDefinition() { return ((bitField0_ & 0x00000001) != 0); } /** * .in_toto_attestation.predicates.provenance.v1.BuildDefinition build_definition = 1; * @return The buildDefinition. */ @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition getBuildDefinition() { return buildDefinition_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.getDefaultInstance() : buildDefinition_; } /** * .in_toto_attestation.predicates.provenance.v1.BuildDefinition build_definition = 1; */ @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinitionOrBuilder getBuildDefinitionOrBuilder() { return buildDefinition_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.getDefaultInstance() : buildDefinition_; } public static final int RUN_DETAILS_FIELD_NUMBER = 2; private io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails runDetails_; /** * .in_toto_attestation.predicates.provenance.v1.RunDetails run_details = 2; * @return Whether the runDetails field is set. */ @java.lang.Override public boolean hasRunDetails() { return ((bitField0_ & 0x00000002) != 0); } /** * .in_toto_attestation.predicates.provenance.v1.RunDetails run_details = 2; * @return The runDetails. */ @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails getRunDetails() { return runDetails_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.getDefaultInstance() : runDetails_; } /** * .in_toto_attestation.predicates.provenance.v1.RunDetails run_details = 2; */ @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetailsOrBuilder getRunDetailsOrBuilder() { return runDetails_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.getDefaultInstance() : runDetails_; } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(1, getBuildDefinition()); } if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(2, getRunDetails()); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getBuildDefinition()); } if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getRunDetails()); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance)) { return super.equals(obj); } io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance other = (io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance) obj; if (hasBuildDefinition() != other.hasBuildDefinition()) return false; if (hasBuildDefinition()) { if (!getBuildDefinition() .equals(other.getBuildDefinition())) return false; } if (hasRunDetails() != other.hasRunDetails()) return false; if (hasRunDetails()) { if (!getRunDetails() .equals(other.getRunDetails())) return false; } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); if (hasBuildDefinition()) { hash = (37 * hash) + BUILD_DEFINITION_FIELD_NUMBER; hash = (53 * hash) + getBuildDefinition().hashCode(); } if (hasRunDetails()) { hash = (37 * hash) + RUN_DETAILS_FIELD_NUMBER; hash = (53 * hash) + getRunDetails().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** *
     * Proto representation of predicate type https://slsa.dev/provenance/v1
     * Validation of all fields is left to the users of this proto.
     * 
* * Protobuf type {@code in_toto_attestation.predicates.provenance.v1.Provenance} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.provenance.v1.Provenance) io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.ProvenanceOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_Provenance_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_Provenance_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance.class, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance.Builder.class); } // Construct using io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getBuildDefinitionFieldBuilder(); getRunDetailsFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; buildDefinition_ = null; if (buildDefinitionBuilder_ != null) { buildDefinitionBuilder_.dispose(); buildDefinitionBuilder_ = null; } runDetails_ = null; if (runDetailsBuilder_ != null) { runDetailsBuilder_.dispose(); runDetailsBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_Provenance_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance build() { io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance buildPartial() { io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance result = new io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartial0(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance result) { int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { result.buildDefinition_ = buildDefinitionBuilder_ == null ? buildDefinition_ : buildDefinitionBuilder_.build(); to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000002) != 0)) { result.runDetails_ = runDetailsBuilder_ == null ? runDetails_ : runDetailsBuilder_.build(); to_bitField0_ |= 0x00000002; } result.bitField0_ |= to_bitField0_; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance) { return mergeFrom((io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance other) { if (other == io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance.getDefaultInstance()) return this; if (other.hasBuildDefinition()) { mergeBuildDefinition(other.getBuildDefinition()); } if (other.hasRunDetails()) { mergeRunDetails(other.getRunDetails()); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { input.readMessage( getBuildDefinitionFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000001; break; } // case 10 case 18: { input.readMessage( getRunDetailsFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000002; break; } // case 18 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition buildDefinition_; private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.Builder, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinitionOrBuilder> buildDefinitionBuilder_; /** * .in_toto_attestation.predicates.provenance.v1.BuildDefinition build_definition = 1; * @return Whether the buildDefinition field is set. */ public boolean hasBuildDefinition() { return ((bitField0_ & 0x00000001) != 0); } /** * .in_toto_attestation.predicates.provenance.v1.BuildDefinition build_definition = 1; * @return The buildDefinition. */ public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition getBuildDefinition() { if (buildDefinitionBuilder_ == null) { return buildDefinition_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.getDefaultInstance() : buildDefinition_; } else { return buildDefinitionBuilder_.getMessage(); } } /** * .in_toto_attestation.predicates.provenance.v1.BuildDefinition build_definition = 1; */ public Builder setBuildDefinition(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition value) { if (buildDefinitionBuilder_ == null) { if (value == null) { throw new NullPointerException(); } buildDefinition_ = value; } else { buildDefinitionBuilder_.setMessage(value); } bitField0_ |= 0x00000001; onChanged(); return this; } /** * .in_toto_attestation.predicates.provenance.v1.BuildDefinition build_definition = 1; */ public Builder setBuildDefinition( io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.Builder builderForValue) { if (buildDefinitionBuilder_ == null) { buildDefinition_ = builderForValue.build(); } else { buildDefinitionBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000001; onChanged(); return this; } /** * .in_toto_attestation.predicates.provenance.v1.BuildDefinition build_definition = 1; */ public Builder mergeBuildDefinition(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition value) { if (buildDefinitionBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0) && buildDefinition_ != null && buildDefinition_ != io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.getDefaultInstance()) { getBuildDefinitionBuilder().mergeFrom(value); } else { buildDefinition_ = value; } } else { buildDefinitionBuilder_.mergeFrom(value); } if (buildDefinition_ != null) { bitField0_ |= 0x00000001; onChanged(); } return this; } /** * .in_toto_attestation.predicates.provenance.v1.BuildDefinition build_definition = 1; */ public Builder clearBuildDefinition() { bitField0_ = (bitField0_ & ~0x00000001); buildDefinition_ = null; if (buildDefinitionBuilder_ != null) { buildDefinitionBuilder_.dispose(); buildDefinitionBuilder_ = null; } onChanged(); return this; } /** * .in_toto_attestation.predicates.provenance.v1.BuildDefinition build_definition = 1; */ public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.Builder getBuildDefinitionBuilder() { bitField0_ |= 0x00000001; onChanged(); return getBuildDefinitionFieldBuilder().getBuilder(); } /** * .in_toto_attestation.predicates.provenance.v1.BuildDefinition build_definition = 1; */ public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinitionOrBuilder getBuildDefinitionOrBuilder() { if (buildDefinitionBuilder_ != null) { return buildDefinitionBuilder_.getMessageOrBuilder(); } else { return buildDefinition_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.getDefaultInstance() : buildDefinition_; } } /** * .in_toto_attestation.predicates.provenance.v1.BuildDefinition build_definition = 1; */ private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.Builder, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinitionOrBuilder> getBuildDefinitionFieldBuilder() { if (buildDefinitionBuilder_ == null) { buildDefinitionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.Builder, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinitionOrBuilder>( getBuildDefinition(), getParentForChildren(), isClean()); buildDefinition_ = null; } return buildDefinitionBuilder_; } private io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails runDetails_; private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.Builder, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetailsOrBuilder> runDetailsBuilder_; /** * .in_toto_attestation.predicates.provenance.v1.RunDetails run_details = 2; * @return Whether the runDetails field is set. */ public boolean hasRunDetails() { return ((bitField0_ & 0x00000002) != 0); } /** * .in_toto_attestation.predicates.provenance.v1.RunDetails run_details = 2; * @return The runDetails. */ public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails getRunDetails() { if (runDetailsBuilder_ == null) { return runDetails_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.getDefaultInstance() : runDetails_; } else { return runDetailsBuilder_.getMessage(); } } /** * .in_toto_attestation.predicates.provenance.v1.RunDetails run_details = 2; */ public Builder setRunDetails(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails value) { if (runDetailsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } runDetails_ = value; } else { runDetailsBuilder_.setMessage(value); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .in_toto_attestation.predicates.provenance.v1.RunDetails run_details = 2; */ public Builder setRunDetails( io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.Builder builderForValue) { if (runDetailsBuilder_ == null) { runDetails_ = builderForValue.build(); } else { runDetailsBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .in_toto_attestation.predicates.provenance.v1.RunDetails run_details = 2; */ public Builder mergeRunDetails(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails value) { if (runDetailsBuilder_ == null) { if (((bitField0_ & 0x00000002) != 0) && runDetails_ != null && runDetails_ != io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.getDefaultInstance()) { getRunDetailsBuilder().mergeFrom(value); } else { runDetails_ = value; } } else { runDetailsBuilder_.mergeFrom(value); } if (runDetails_ != null) { bitField0_ |= 0x00000002; onChanged(); } return this; } /** * .in_toto_attestation.predicates.provenance.v1.RunDetails run_details = 2; */ public Builder clearRunDetails() { bitField0_ = (bitField0_ & ~0x00000002); runDetails_ = null; if (runDetailsBuilder_ != null) { runDetailsBuilder_.dispose(); runDetailsBuilder_ = null; } onChanged(); return this; } /** * .in_toto_attestation.predicates.provenance.v1.RunDetails run_details = 2; */ public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.Builder getRunDetailsBuilder() { bitField0_ |= 0x00000002; onChanged(); return getRunDetailsFieldBuilder().getBuilder(); } /** * .in_toto_attestation.predicates.provenance.v1.RunDetails run_details = 2; */ public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetailsOrBuilder getRunDetailsOrBuilder() { if (runDetailsBuilder_ != null) { return runDetailsBuilder_.getMessageOrBuilder(); } else { return runDetails_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.getDefaultInstance() : runDetails_; } } /** * .in_toto_attestation.predicates.provenance.v1.RunDetails run_details = 2; */ private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.Builder, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetailsOrBuilder> getRunDetailsFieldBuilder() { if (runDetailsBuilder_ == null) { runDetailsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.Builder, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetailsOrBuilder>( getRunDetails(), getParentForChildren(), isClean()); runDetails_ = null; } return runDetailsBuilder_; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.provenance.v1.Provenance) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.provenance.v1.Provenance) private static final io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance(); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public Provenance parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Provenance getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface BuildDefinitionOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.provenance.v1.BuildDefinition) com.google.protobuf.MessageOrBuilder { /** * string build_type = 1; * @return The buildType. */ java.lang.String getBuildType(); /** * string build_type = 1; * @return The bytes for buildType. */ com.google.protobuf.ByteString getBuildTypeBytes(); /** * .google.protobuf.Struct external_parameters = 2; * @return Whether the externalParameters field is set. */ boolean hasExternalParameters(); /** * .google.protobuf.Struct external_parameters = 2; * @return The externalParameters. */ com.google.protobuf.Struct getExternalParameters(); /** * .google.protobuf.Struct external_parameters = 2; */ com.google.protobuf.StructOrBuilder getExternalParametersOrBuilder(); /** * .google.protobuf.Struct internal_parameters = 3; * @return Whether the internalParameters field is set. */ boolean hasInternalParameters(); /** * .google.protobuf.Struct internal_parameters = 3; * @return The internalParameters. */ com.google.protobuf.Struct getInternalParameters(); /** * .google.protobuf.Struct internal_parameters = 3; */ com.google.protobuf.StructOrBuilder getInternalParametersOrBuilder(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ java.util.List getResolvedDependenciesList(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getResolvedDependencies(int index); /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ int getResolvedDependenciesCount(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ java.util.List getResolvedDependenciesOrBuilderList(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getResolvedDependenciesOrBuilder( int index); } /** * Protobuf type {@code in_toto_attestation.predicates.provenance.v1.BuildDefinition} */ public static final class BuildDefinition extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.provenance.v1.BuildDefinition) BuildDefinitionOrBuilder { private static final long serialVersionUID = 0L; // Use BuildDefinition.newBuilder() to construct. private BuildDefinition(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private BuildDefinition() { buildType_ = ""; resolvedDependencies_ = java.util.Collections.emptyList(); } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new BuildDefinition(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_BuildDefinition_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_BuildDefinition_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.class, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.Builder.class); } private int bitField0_; public static final int BUILD_TYPE_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object buildType_ = ""; /** * string build_type = 1; * @return The buildType. */ @java.lang.Override public java.lang.String getBuildType() { java.lang.Object ref = buildType_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); buildType_ = s; return s; } } /** * string build_type = 1; * @return The bytes for buildType. */ @java.lang.Override public com.google.protobuf.ByteString getBuildTypeBytes() { java.lang.Object ref = buildType_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); buildType_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int EXTERNAL_PARAMETERS_FIELD_NUMBER = 2; private com.google.protobuf.Struct externalParameters_; /** * .google.protobuf.Struct external_parameters = 2; * @return Whether the externalParameters field is set. */ @java.lang.Override public boolean hasExternalParameters() { return ((bitField0_ & 0x00000001) != 0); } /** * .google.protobuf.Struct external_parameters = 2; * @return The externalParameters. */ @java.lang.Override public com.google.protobuf.Struct getExternalParameters() { return externalParameters_ == null ? com.google.protobuf.Struct.getDefaultInstance() : externalParameters_; } /** * .google.protobuf.Struct external_parameters = 2; */ @java.lang.Override public com.google.protobuf.StructOrBuilder getExternalParametersOrBuilder() { return externalParameters_ == null ? com.google.protobuf.Struct.getDefaultInstance() : externalParameters_; } public static final int INTERNAL_PARAMETERS_FIELD_NUMBER = 3; private com.google.protobuf.Struct internalParameters_; /** * .google.protobuf.Struct internal_parameters = 3; * @return Whether the internalParameters field is set. */ @java.lang.Override public boolean hasInternalParameters() { return ((bitField0_ & 0x00000002) != 0); } /** * .google.protobuf.Struct internal_parameters = 3; * @return The internalParameters. */ @java.lang.Override public com.google.protobuf.Struct getInternalParameters() { return internalParameters_ == null ? com.google.protobuf.Struct.getDefaultInstance() : internalParameters_; } /** * .google.protobuf.Struct internal_parameters = 3; */ @java.lang.Override public com.google.protobuf.StructOrBuilder getInternalParametersOrBuilder() { return internalParameters_ == null ? com.google.protobuf.Struct.getDefaultInstance() : internalParameters_; } public static final int RESOLVED_DEPENDENCIES_FIELD_NUMBER = 4; @SuppressWarnings("serial") private java.util.List resolvedDependencies_; /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ @java.lang.Override public java.util.List getResolvedDependenciesList() { return resolvedDependencies_; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ @java.lang.Override public java.util.List getResolvedDependenciesOrBuilderList() { return resolvedDependencies_; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ @java.lang.Override public int getResolvedDependenciesCount() { return resolvedDependencies_.size(); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getResolvedDependencies(int index) { return resolvedDependencies_.get(index); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getResolvedDependenciesOrBuilder( int index) { return resolvedDependencies_.get(index); } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(buildType_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, buildType_); } if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(2, getExternalParameters()); } if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(3, getInternalParameters()); } for (int i = 0; i < resolvedDependencies_.size(); i++) { output.writeMessage(4, resolvedDependencies_.get(i)); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(buildType_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, buildType_); } if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getExternalParameters()); } if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, getInternalParameters()); } for (int i = 0; i < resolvedDependencies_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, resolvedDependencies_.get(i)); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition)) { return super.equals(obj); } io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition other = (io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition) obj; if (!getBuildType() .equals(other.getBuildType())) return false; if (hasExternalParameters() != other.hasExternalParameters()) return false; if (hasExternalParameters()) { if (!getExternalParameters() .equals(other.getExternalParameters())) return false; } if (hasInternalParameters() != other.hasInternalParameters()) return false; if (hasInternalParameters()) { if (!getInternalParameters() .equals(other.getInternalParameters())) return false; } if (!getResolvedDependenciesList() .equals(other.getResolvedDependenciesList())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + BUILD_TYPE_FIELD_NUMBER; hash = (53 * hash) + getBuildType().hashCode(); if (hasExternalParameters()) { hash = (37 * hash) + EXTERNAL_PARAMETERS_FIELD_NUMBER; hash = (53 * hash) + getExternalParameters().hashCode(); } if (hasInternalParameters()) { hash = (37 * hash) + INTERNAL_PARAMETERS_FIELD_NUMBER; hash = (53 * hash) + getInternalParameters().hashCode(); } if (getResolvedDependenciesCount() > 0) { hash = (37 * hash) + RESOLVED_DEPENDENCIES_FIELD_NUMBER; hash = (53 * hash) + getResolvedDependenciesList().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code in_toto_attestation.predicates.provenance.v1.BuildDefinition} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.provenance.v1.BuildDefinition) io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinitionOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_BuildDefinition_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_BuildDefinition_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.class, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.Builder.class); } // Construct using io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getExternalParametersFieldBuilder(); getInternalParametersFieldBuilder(); getResolvedDependenciesFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; buildType_ = ""; externalParameters_ = null; if (externalParametersBuilder_ != null) { externalParametersBuilder_.dispose(); externalParametersBuilder_ = null; } internalParameters_ = null; if (internalParametersBuilder_ != null) { internalParametersBuilder_.dispose(); internalParametersBuilder_ = null; } if (resolvedDependenciesBuilder_ == null) { resolvedDependencies_ = java.util.Collections.emptyList(); } else { resolvedDependencies_ = null; resolvedDependenciesBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000008); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_BuildDefinition_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition build() { io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition buildPartial() { io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition result = new io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition(this); buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartialRepeatedFields(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition result) { if (resolvedDependenciesBuilder_ == null) { if (((bitField0_ & 0x00000008) != 0)) { resolvedDependencies_ = java.util.Collections.unmodifiableList(resolvedDependencies_); bitField0_ = (bitField0_ & ~0x00000008); } result.resolvedDependencies_ = resolvedDependencies_; } else { result.resolvedDependencies_ = resolvedDependenciesBuilder_.build(); } } private void buildPartial0(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.buildType_ = buildType_; } int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000002) != 0)) { result.externalParameters_ = externalParametersBuilder_ == null ? externalParameters_ : externalParametersBuilder_.build(); to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000004) != 0)) { result.internalParameters_ = internalParametersBuilder_ == null ? internalParameters_ : internalParametersBuilder_.build(); to_bitField0_ |= 0x00000002; } result.bitField0_ |= to_bitField0_; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition) { return mergeFrom((io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition other) { if (other == io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition.getDefaultInstance()) return this; if (!other.getBuildType().isEmpty()) { buildType_ = other.buildType_; bitField0_ |= 0x00000001; onChanged(); } if (other.hasExternalParameters()) { mergeExternalParameters(other.getExternalParameters()); } if (other.hasInternalParameters()) { mergeInternalParameters(other.getInternalParameters()); } if (resolvedDependenciesBuilder_ == null) { if (!other.resolvedDependencies_.isEmpty()) { if (resolvedDependencies_.isEmpty()) { resolvedDependencies_ = other.resolvedDependencies_; bitField0_ = (bitField0_ & ~0x00000008); } else { ensureResolvedDependenciesIsMutable(); resolvedDependencies_.addAll(other.resolvedDependencies_); } onChanged(); } } else { if (!other.resolvedDependencies_.isEmpty()) { if (resolvedDependenciesBuilder_.isEmpty()) { resolvedDependenciesBuilder_.dispose(); resolvedDependenciesBuilder_ = null; resolvedDependencies_ = other.resolvedDependencies_; bitField0_ = (bitField0_ & ~0x00000008); resolvedDependenciesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getResolvedDependenciesFieldBuilder() : null; } else { resolvedDependenciesBuilder_.addAllMessages(other.resolvedDependencies_); } } } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { buildType_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 case 18: { input.readMessage( getExternalParametersFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000002; break; } // case 18 case 26: { input.readMessage( getInternalParametersFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000004; break; } // case 26 case 34: { io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor m = input.readMessage( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.parser(), extensionRegistry); if (resolvedDependenciesBuilder_ == null) { ensureResolvedDependenciesIsMutable(); resolvedDependencies_.add(m); } else { resolvedDependenciesBuilder_.addMessage(m); } break; } // case 34 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object buildType_ = ""; /** * string build_type = 1; * @return The buildType. */ public java.lang.String getBuildType() { java.lang.Object ref = buildType_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); buildType_ = s; return s; } else { return (java.lang.String) ref; } } /** * string build_type = 1; * @return The bytes for buildType. */ public com.google.protobuf.ByteString getBuildTypeBytes() { java.lang.Object ref = buildType_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); buildType_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string build_type = 1; * @param value The buildType to set. * @return This builder for chaining. */ public Builder setBuildType( java.lang.String value) { if (value == null) { throw new NullPointerException(); } buildType_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** * string build_type = 1; * @return This builder for chaining. */ public Builder clearBuildType() { buildType_ = getDefaultInstance().getBuildType(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** * string build_type = 1; * @param value The bytes for buildType to set. * @return This builder for chaining. */ public Builder setBuildTypeBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); buildType_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } private com.google.protobuf.Struct externalParameters_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> externalParametersBuilder_; /** * .google.protobuf.Struct external_parameters = 2; * @return Whether the externalParameters field is set. */ public boolean hasExternalParameters() { return ((bitField0_ & 0x00000002) != 0); } /** * .google.protobuf.Struct external_parameters = 2; * @return The externalParameters. */ public com.google.protobuf.Struct getExternalParameters() { if (externalParametersBuilder_ == null) { return externalParameters_ == null ? com.google.protobuf.Struct.getDefaultInstance() : externalParameters_; } else { return externalParametersBuilder_.getMessage(); } } /** * .google.protobuf.Struct external_parameters = 2; */ public Builder setExternalParameters(com.google.protobuf.Struct value) { if (externalParametersBuilder_ == null) { if (value == null) { throw new NullPointerException(); } externalParameters_ = value; } else { externalParametersBuilder_.setMessage(value); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .google.protobuf.Struct external_parameters = 2; */ public Builder setExternalParameters( com.google.protobuf.Struct.Builder builderForValue) { if (externalParametersBuilder_ == null) { externalParameters_ = builderForValue.build(); } else { externalParametersBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .google.protobuf.Struct external_parameters = 2; */ public Builder mergeExternalParameters(com.google.protobuf.Struct value) { if (externalParametersBuilder_ == null) { if (((bitField0_ & 0x00000002) != 0) && externalParameters_ != null && externalParameters_ != com.google.protobuf.Struct.getDefaultInstance()) { getExternalParametersBuilder().mergeFrom(value); } else { externalParameters_ = value; } } else { externalParametersBuilder_.mergeFrom(value); } if (externalParameters_ != null) { bitField0_ |= 0x00000002; onChanged(); } return this; } /** * .google.protobuf.Struct external_parameters = 2; */ public Builder clearExternalParameters() { bitField0_ = (bitField0_ & ~0x00000002); externalParameters_ = null; if (externalParametersBuilder_ != null) { externalParametersBuilder_.dispose(); externalParametersBuilder_ = null; } onChanged(); return this; } /** * .google.protobuf.Struct external_parameters = 2; */ public com.google.protobuf.Struct.Builder getExternalParametersBuilder() { bitField0_ |= 0x00000002; onChanged(); return getExternalParametersFieldBuilder().getBuilder(); } /** * .google.protobuf.Struct external_parameters = 2; */ public com.google.protobuf.StructOrBuilder getExternalParametersOrBuilder() { if (externalParametersBuilder_ != null) { return externalParametersBuilder_.getMessageOrBuilder(); } else { return externalParameters_ == null ? com.google.protobuf.Struct.getDefaultInstance() : externalParameters_; } } /** * .google.protobuf.Struct external_parameters = 2; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> getExternalParametersFieldBuilder() { if (externalParametersBuilder_ == null) { externalParametersBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder>( getExternalParameters(), getParentForChildren(), isClean()); externalParameters_ = null; } return externalParametersBuilder_; } private com.google.protobuf.Struct internalParameters_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> internalParametersBuilder_; /** * .google.protobuf.Struct internal_parameters = 3; * @return Whether the internalParameters field is set. */ public boolean hasInternalParameters() { return ((bitField0_ & 0x00000004) != 0); } /** * .google.protobuf.Struct internal_parameters = 3; * @return The internalParameters. */ public com.google.protobuf.Struct getInternalParameters() { if (internalParametersBuilder_ == null) { return internalParameters_ == null ? com.google.protobuf.Struct.getDefaultInstance() : internalParameters_; } else { return internalParametersBuilder_.getMessage(); } } /** * .google.protobuf.Struct internal_parameters = 3; */ public Builder setInternalParameters(com.google.protobuf.Struct value) { if (internalParametersBuilder_ == null) { if (value == null) { throw new NullPointerException(); } internalParameters_ = value; } else { internalParametersBuilder_.setMessage(value); } bitField0_ |= 0x00000004; onChanged(); return this; } /** * .google.protobuf.Struct internal_parameters = 3; */ public Builder setInternalParameters( com.google.protobuf.Struct.Builder builderForValue) { if (internalParametersBuilder_ == null) { internalParameters_ = builderForValue.build(); } else { internalParametersBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000004; onChanged(); return this; } /** * .google.protobuf.Struct internal_parameters = 3; */ public Builder mergeInternalParameters(com.google.protobuf.Struct value) { if (internalParametersBuilder_ == null) { if (((bitField0_ & 0x00000004) != 0) && internalParameters_ != null && internalParameters_ != com.google.protobuf.Struct.getDefaultInstance()) { getInternalParametersBuilder().mergeFrom(value); } else { internalParameters_ = value; } } else { internalParametersBuilder_.mergeFrom(value); } if (internalParameters_ != null) { bitField0_ |= 0x00000004; onChanged(); } return this; } /** * .google.protobuf.Struct internal_parameters = 3; */ public Builder clearInternalParameters() { bitField0_ = (bitField0_ & ~0x00000004); internalParameters_ = null; if (internalParametersBuilder_ != null) { internalParametersBuilder_.dispose(); internalParametersBuilder_ = null; } onChanged(); return this; } /** * .google.protobuf.Struct internal_parameters = 3; */ public com.google.protobuf.Struct.Builder getInternalParametersBuilder() { bitField0_ |= 0x00000004; onChanged(); return getInternalParametersFieldBuilder().getBuilder(); } /** * .google.protobuf.Struct internal_parameters = 3; */ public com.google.protobuf.StructOrBuilder getInternalParametersOrBuilder() { if (internalParametersBuilder_ != null) { return internalParametersBuilder_.getMessageOrBuilder(); } else { return internalParameters_ == null ? com.google.protobuf.Struct.getDefaultInstance() : internalParameters_; } } /** * .google.protobuf.Struct internal_parameters = 3; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> getInternalParametersFieldBuilder() { if (internalParametersBuilder_ == null) { internalParametersBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder>( getInternalParameters(), getParentForChildren(), isClean()); internalParameters_ = null; } return internalParametersBuilder_; } private java.util.List resolvedDependencies_ = java.util.Collections.emptyList(); private void ensureResolvedDependenciesIsMutable() { if (!((bitField0_ & 0x00000008) != 0)) { resolvedDependencies_ = new java.util.ArrayList(resolvedDependencies_); bitField0_ |= 0x00000008; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> resolvedDependenciesBuilder_; /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public java.util.List getResolvedDependenciesList() { if (resolvedDependenciesBuilder_ == null) { return java.util.Collections.unmodifiableList(resolvedDependencies_); } else { return resolvedDependenciesBuilder_.getMessageList(); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public int getResolvedDependenciesCount() { if (resolvedDependenciesBuilder_ == null) { return resolvedDependencies_.size(); } else { return resolvedDependenciesBuilder_.getCount(); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getResolvedDependencies(int index) { if (resolvedDependenciesBuilder_ == null) { return resolvedDependencies_.get(index); } else { return resolvedDependenciesBuilder_.getMessage(index); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public Builder setResolvedDependencies( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (resolvedDependenciesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureResolvedDependenciesIsMutable(); resolvedDependencies_.set(index, value); onChanged(); } else { resolvedDependenciesBuilder_.setMessage(index, value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public Builder setResolvedDependencies( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (resolvedDependenciesBuilder_ == null) { ensureResolvedDependenciesIsMutable(); resolvedDependencies_.set(index, builderForValue.build()); onChanged(); } else { resolvedDependenciesBuilder_.setMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public Builder addResolvedDependencies(io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (resolvedDependenciesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureResolvedDependenciesIsMutable(); resolvedDependencies_.add(value); onChanged(); } else { resolvedDependenciesBuilder_.addMessage(value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public Builder addResolvedDependencies( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (resolvedDependenciesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureResolvedDependenciesIsMutable(); resolvedDependencies_.add(index, value); onChanged(); } else { resolvedDependenciesBuilder_.addMessage(index, value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public Builder addResolvedDependencies( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (resolvedDependenciesBuilder_ == null) { ensureResolvedDependenciesIsMutable(); resolvedDependencies_.add(builderForValue.build()); onChanged(); } else { resolvedDependenciesBuilder_.addMessage(builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public Builder addResolvedDependencies( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (resolvedDependenciesBuilder_ == null) { ensureResolvedDependenciesIsMutable(); resolvedDependencies_.add(index, builderForValue.build()); onChanged(); } else { resolvedDependenciesBuilder_.addMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public Builder addAllResolvedDependencies( java.lang.Iterable values) { if (resolvedDependenciesBuilder_ == null) { ensureResolvedDependenciesIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, resolvedDependencies_); onChanged(); } else { resolvedDependenciesBuilder_.addAllMessages(values); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public Builder clearResolvedDependencies() { if (resolvedDependenciesBuilder_ == null) { resolvedDependencies_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { resolvedDependenciesBuilder_.clear(); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public Builder removeResolvedDependencies(int index) { if (resolvedDependenciesBuilder_ == null) { ensureResolvedDependenciesIsMutable(); resolvedDependencies_.remove(index); onChanged(); } else { resolvedDependenciesBuilder_.remove(index); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder getResolvedDependenciesBuilder( int index) { return getResolvedDependenciesFieldBuilder().getBuilder(index); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getResolvedDependenciesOrBuilder( int index) { if (resolvedDependenciesBuilder_ == null) { return resolvedDependencies_.get(index); } else { return resolvedDependenciesBuilder_.getMessageOrBuilder(index); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public java.util.List getResolvedDependenciesOrBuilderList() { if (resolvedDependenciesBuilder_ != null) { return resolvedDependenciesBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(resolvedDependencies_); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder addResolvedDependenciesBuilder() { return getResolvedDependenciesFieldBuilder().addBuilder( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder addResolvedDependenciesBuilder( int index) { return getResolvedDependenciesFieldBuilder().addBuilder( index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; */ public java.util.List getResolvedDependenciesBuilderList() { return getResolvedDependenciesFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> getResolvedDependenciesFieldBuilder() { if (resolvedDependenciesBuilder_ == null) { resolvedDependenciesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder>( resolvedDependencies_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); resolvedDependencies_ = null; } return resolvedDependenciesBuilder_; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.provenance.v1.BuildDefinition) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.provenance.v1.BuildDefinition) private static final io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition(); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public BuildDefinition parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildDefinition getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface RunDetailsOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.provenance.v1.RunDetails) com.google.protobuf.MessageOrBuilder { /** * .in_toto_attestation.predicates.provenance.v1.Builder builder = 1; * @return Whether the builder field is set. */ boolean hasBuilder(); /** * .in_toto_attestation.predicates.provenance.v1.Builder builder = 1; * @return The builder. */ io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder getBuilder(); /** * .in_toto_attestation.predicates.provenance.v1.Builder builder = 1; */ io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuilderOrBuilder getBuilderOrBuilder(); /** * .in_toto_attestation.predicates.provenance.v1.BuildMetadata metadata = 2; * @return Whether the metadata field is set. */ boolean hasMetadata(); /** * .in_toto_attestation.predicates.provenance.v1.BuildMetadata metadata = 2; * @return The metadata. */ io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata getMetadata(); /** * .in_toto_attestation.predicates.provenance.v1.BuildMetadata metadata = 2; */ io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadataOrBuilder getMetadataOrBuilder(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ java.util.List getByproductsList(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getByproducts(int index); /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ int getByproductsCount(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ java.util.List getByproductsOrBuilderList(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getByproductsOrBuilder( int index); } /** * Protobuf type {@code in_toto_attestation.predicates.provenance.v1.RunDetails} */ public static final class RunDetails extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.provenance.v1.RunDetails) RunDetailsOrBuilder { private static final long serialVersionUID = 0L; // Use RunDetails.newBuilder() to construct. private RunDetails(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private RunDetails() { byproducts_ = java.util.Collections.emptyList(); } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new RunDetails(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_RunDetails_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_RunDetails_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.class, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.Builder.class); } private int bitField0_; public static final int BUILDER_FIELD_NUMBER = 1; private io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder builder_; /** * .in_toto_attestation.predicates.provenance.v1.Builder builder = 1; * @return Whether the builder field is set. */ @java.lang.Override public boolean hasBuilder() { return ((bitField0_ & 0x00000001) != 0); } /** * .in_toto_attestation.predicates.provenance.v1.Builder builder = 1; * @return The builder. */ @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder getBuilder() { return builder_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.getDefaultInstance() : builder_; } /** * .in_toto_attestation.predicates.provenance.v1.Builder builder = 1; */ @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuilderOrBuilder getBuilderOrBuilder() { return builder_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.getDefaultInstance() : builder_; } public static final int METADATA_FIELD_NUMBER = 2; private io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata metadata_; /** * .in_toto_attestation.predicates.provenance.v1.BuildMetadata metadata = 2; * @return Whether the metadata field is set. */ @java.lang.Override public boolean hasMetadata() { return ((bitField0_ & 0x00000002) != 0); } /** * .in_toto_attestation.predicates.provenance.v1.BuildMetadata metadata = 2; * @return The metadata. */ @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata getMetadata() { return metadata_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.getDefaultInstance() : metadata_; } /** * .in_toto_attestation.predicates.provenance.v1.BuildMetadata metadata = 2; */ @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadataOrBuilder getMetadataOrBuilder() { return metadata_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.getDefaultInstance() : metadata_; } public static final int BYPRODUCTS_FIELD_NUMBER = 3; @SuppressWarnings("serial") private java.util.List byproducts_; /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ @java.lang.Override public java.util.List getByproductsList() { return byproducts_; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ @java.lang.Override public java.util.List getByproductsOrBuilderList() { return byproducts_; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ @java.lang.Override public int getByproductsCount() { return byproducts_.size(); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getByproducts(int index) { return byproducts_.get(index); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getByproductsOrBuilder( int index) { return byproducts_.get(index); } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(1, getBuilder()); } if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(2, getMetadata()); } for (int i = 0; i < byproducts_.size(); i++) { output.writeMessage(3, byproducts_.get(i)); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getBuilder()); } if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getMetadata()); } for (int i = 0; i < byproducts_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, byproducts_.get(i)); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails)) { return super.equals(obj); } io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails other = (io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails) obj; if (hasBuilder() != other.hasBuilder()) return false; if (hasBuilder()) { if (!getBuilder() .equals(other.getBuilder())) return false; } if (hasMetadata() != other.hasMetadata()) return false; if (hasMetadata()) { if (!getMetadata() .equals(other.getMetadata())) return false; } if (!getByproductsList() .equals(other.getByproductsList())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); if (hasBuilder()) { hash = (37 * hash) + BUILDER_FIELD_NUMBER; hash = (53 * hash) + getBuilder().hashCode(); } if (hasMetadata()) { hash = (37 * hash) + METADATA_FIELD_NUMBER; hash = (53 * hash) + getMetadata().hashCode(); } if (getByproductsCount() > 0) { hash = (37 * hash) + BYPRODUCTS_FIELD_NUMBER; hash = (53 * hash) + getByproductsList().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code in_toto_attestation.predicates.provenance.v1.RunDetails} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.provenance.v1.RunDetails) io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetailsOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_RunDetails_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_RunDetails_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.class, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.Builder.class); } // Construct using io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getBuilderFieldBuilder(); getMetadataFieldBuilder(); getByproductsFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; builder_ = null; if (builderBuilder_ != null) { builderBuilder_.dispose(); builderBuilder_ = null; } metadata_ = null; if (metadataBuilder_ != null) { metadataBuilder_.dispose(); metadataBuilder_ = null; } if (byproductsBuilder_ == null) { byproducts_ = java.util.Collections.emptyList(); } else { byproducts_ = null; byproductsBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000004); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_RunDetails_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails build() { io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails buildPartial() { io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails result = new io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails(this); buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartialRepeatedFields(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails result) { if (byproductsBuilder_ == null) { if (((bitField0_ & 0x00000004) != 0)) { byproducts_ = java.util.Collections.unmodifiableList(byproducts_); bitField0_ = (bitField0_ & ~0x00000004); } result.byproducts_ = byproducts_; } else { result.byproducts_ = byproductsBuilder_.build(); } } private void buildPartial0(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails result) { int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { result.builder_ = builderBuilder_ == null ? builder_ : builderBuilder_.build(); to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000002) != 0)) { result.metadata_ = metadataBuilder_ == null ? metadata_ : metadataBuilder_.build(); to_bitField0_ |= 0x00000002; } result.bitField0_ |= to_bitField0_; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails) { return mergeFrom((io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails other) { if (other == io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails.getDefaultInstance()) return this; if (other.hasBuilder()) { mergeBuilder(other.getBuilder()); } if (other.hasMetadata()) { mergeMetadata(other.getMetadata()); } if (byproductsBuilder_ == null) { if (!other.byproducts_.isEmpty()) { if (byproducts_.isEmpty()) { byproducts_ = other.byproducts_; bitField0_ = (bitField0_ & ~0x00000004); } else { ensureByproductsIsMutable(); byproducts_.addAll(other.byproducts_); } onChanged(); } } else { if (!other.byproducts_.isEmpty()) { if (byproductsBuilder_.isEmpty()) { byproductsBuilder_.dispose(); byproductsBuilder_ = null; byproducts_ = other.byproducts_; bitField0_ = (bitField0_ & ~0x00000004); byproductsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getByproductsFieldBuilder() : null; } else { byproductsBuilder_.addAllMessages(other.byproducts_); } } } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { input.readMessage( getBuilderFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000001; break; } // case 10 case 18: { input.readMessage( getMetadataFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000002; break; } // case 18 case 26: { io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor m = input.readMessage( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.parser(), extensionRegistry); if (byproductsBuilder_ == null) { ensureByproductsIsMutable(); byproducts_.add(m); } else { byproductsBuilder_.addMessage(m); } break; } // case 26 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder builder_; private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.Builder, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuilderOrBuilder> builderBuilder_; /** * .in_toto_attestation.predicates.provenance.v1.Builder builder = 1; * @return Whether the builder field is set. */ public boolean hasBuilder() { return ((bitField0_ & 0x00000001) != 0); } /** * .in_toto_attestation.predicates.provenance.v1.Builder builder = 1; * @return The builder. */ public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder getBuilder() { if (builderBuilder_ == null) { return builder_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.getDefaultInstance() : builder_; } else { return builderBuilder_.getMessage(); } } /** * .in_toto_attestation.predicates.provenance.v1.Builder builder = 1; */ public Builder setBuilder(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder value) { if (builderBuilder_ == null) { if (value == null) { throw new NullPointerException(); } builder_ = value; } else { builderBuilder_.setMessage(value); } bitField0_ |= 0x00000001; onChanged(); return this; } /** * .in_toto_attestation.predicates.provenance.v1.Builder builder = 1; */ public Builder setBuilder( io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.Builder builderForValue) { if (builderBuilder_ == null) { builder_ = builderForValue.build(); } else { builderBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000001; onChanged(); return this; } /** * .in_toto_attestation.predicates.provenance.v1.Builder builder = 1; */ public Builder mergeBuilder(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder value) { if (builderBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0) && builder_ != null && builder_ != io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.getDefaultInstance()) { getBuilderBuilder().mergeFrom(value); } else { builder_ = value; } } else { builderBuilder_.mergeFrom(value); } if (builder_ != null) { bitField0_ |= 0x00000001; onChanged(); } return this; } /** * .in_toto_attestation.predicates.provenance.v1.Builder builder = 1; */ public Builder clearBuilder() { bitField0_ = (bitField0_ & ~0x00000001); builder_ = null; if (builderBuilder_ != null) { builderBuilder_.dispose(); builderBuilder_ = null; } onChanged(); return this; } /** * .in_toto_attestation.predicates.provenance.v1.Builder builder = 1; */ public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.Builder getBuilderBuilder() { bitField0_ |= 0x00000001; onChanged(); return getBuilderFieldBuilder().getBuilder(); } /** * .in_toto_attestation.predicates.provenance.v1.Builder builder = 1; */ public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuilderOrBuilder getBuilderOrBuilder() { if (builderBuilder_ != null) { return builderBuilder_.getMessageOrBuilder(); } else { return builder_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.getDefaultInstance() : builder_; } } /** * .in_toto_attestation.predicates.provenance.v1.Builder builder = 1; */ private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.Builder, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuilderOrBuilder> getBuilderFieldBuilder() { if (builderBuilder_ == null) { builderBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.Builder, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuilderOrBuilder>( getBuilder(), getParentForChildren(), isClean()); builder_ = null; } return builderBuilder_; } private io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata metadata_; private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.Builder, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadataOrBuilder> metadataBuilder_; /** * .in_toto_attestation.predicates.provenance.v1.BuildMetadata metadata = 2; * @return Whether the metadata field is set. */ public boolean hasMetadata() { return ((bitField0_ & 0x00000002) != 0); } /** * .in_toto_attestation.predicates.provenance.v1.BuildMetadata metadata = 2; * @return The metadata. */ public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata getMetadata() { if (metadataBuilder_ == null) { return metadata_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.getDefaultInstance() : metadata_; } else { return metadataBuilder_.getMessage(); } } /** * .in_toto_attestation.predicates.provenance.v1.BuildMetadata metadata = 2; */ public Builder setMetadata(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata value) { if (metadataBuilder_ == null) { if (value == null) { throw new NullPointerException(); } metadata_ = value; } else { metadataBuilder_.setMessage(value); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .in_toto_attestation.predicates.provenance.v1.BuildMetadata metadata = 2; */ public Builder setMetadata( io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.Builder builderForValue) { if (metadataBuilder_ == null) { metadata_ = builderForValue.build(); } else { metadataBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .in_toto_attestation.predicates.provenance.v1.BuildMetadata metadata = 2; */ public Builder mergeMetadata(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata value) { if (metadataBuilder_ == null) { if (((bitField0_ & 0x00000002) != 0) && metadata_ != null && metadata_ != io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.getDefaultInstance()) { getMetadataBuilder().mergeFrom(value); } else { metadata_ = value; } } else { metadataBuilder_.mergeFrom(value); } if (metadata_ != null) { bitField0_ |= 0x00000002; onChanged(); } return this; } /** * .in_toto_attestation.predicates.provenance.v1.BuildMetadata metadata = 2; */ public Builder clearMetadata() { bitField0_ = (bitField0_ & ~0x00000002); metadata_ = null; if (metadataBuilder_ != null) { metadataBuilder_.dispose(); metadataBuilder_ = null; } onChanged(); return this; } /** * .in_toto_attestation.predicates.provenance.v1.BuildMetadata metadata = 2; */ public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.Builder getMetadataBuilder() { bitField0_ |= 0x00000002; onChanged(); return getMetadataFieldBuilder().getBuilder(); } /** * .in_toto_attestation.predicates.provenance.v1.BuildMetadata metadata = 2; */ public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadataOrBuilder getMetadataOrBuilder() { if (metadataBuilder_ != null) { return metadataBuilder_.getMessageOrBuilder(); } else { return metadata_ == null ? io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.getDefaultInstance() : metadata_; } } /** * .in_toto_attestation.predicates.provenance.v1.BuildMetadata metadata = 2; */ private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.Builder, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadataOrBuilder> getMetadataFieldBuilder() { if (metadataBuilder_ == null) { metadataBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.Builder, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadataOrBuilder>( getMetadata(), getParentForChildren(), isClean()); metadata_ = null; } return metadataBuilder_; } private java.util.List byproducts_ = java.util.Collections.emptyList(); private void ensureByproductsIsMutable() { if (!((bitField0_ & 0x00000004) != 0)) { byproducts_ = new java.util.ArrayList(byproducts_); bitField0_ |= 0x00000004; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> byproductsBuilder_; /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public java.util.List getByproductsList() { if (byproductsBuilder_ == null) { return java.util.Collections.unmodifiableList(byproducts_); } else { return byproductsBuilder_.getMessageList(); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public int getByproductsCount() { if (byproductsBuilder_ == null) { return byproducts_.size(); } else { return byproductsBuilder_.getCount(); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getByproducts(int index) { if (byproductsBuilder_ == null) { return byproducts_.get(index); } else { return byproductsBuilder_.getMessage(index); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public Builder setByproducts( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (byproductsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureByproductsIsMutable(); byproducts_.set(index, value); onChanged(); } else { byproductsBuilder_.setMessage(index, value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public Builder setByproducts( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (byproductsBuilder_ == null) { ensureByproductsIsMutable(); byproducts_.set(index, builderForValue.build()); onChanged(); } else { byproductsBuilder_.setMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public Builder addByproducts(io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (byproductsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureByproductsIsMutable(); byproducts_.add(value); onChanged(); } else { byproductsBuilder_.addMessage(value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public Builder addByproducts( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (byproductsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureByproductsIsMutable(); byproducts_.add(index, value); onChanged(); } else { byproductsBuilder_.addMessage(index, value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public Builder addByproducts( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (byproductsBuilder_ == null) { ensureByproductsIsMutable(); byproducts_.add(builderForValue.build()); onChanged(); } else { byproductsBuilder_.addMessage(builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public Builder addByproducts( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (byproductsBuilder_ == null) { ensureByproductsIsMutable(); byproducts_.add(index, builderForValue.build()); onChanged(); } else { byproductsBuilder_.addMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public Builder addAllByproducts( java.lang.Iterable values) { if (byproductsBuilder_ == null) { ensureByproductsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, byproducts_); onChanged(); } else { byproductsBuilder_.addAllMessages(values); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public Builder clearByproducts() { if (byproductsBuilder_ == null) { byproducts_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000004); onChanged(); } else { byproductsBuilder_.clear(); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public Builder removeByproducts(int index) { if (byproductsBuilder_ == null) { ensureByproductsIsMutable(); byproducts_.remove(index); onChanged(); } else { byproductsBuilder_.remove(index); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder getByproductsBuilder( int index) { return getByproductsFieldBuilder().getBuilder(index); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getByproductsOrBuilder( int index) { if (byproductsBuilder_ == null) { return byproducts_.get(index); } else { return byproductsBuilder_.getMessageOrBuilder(index); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public java.util.List getByproductsOrBuilderList() { if (byproductsBuilder_ != null) { return byproductsBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(byproducts_); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder addByproductsBuilder() { return getByproductsFieldBuilder().addBuilder( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder addByproductsBuilder( int index) { return getByproductsFieldBuilder().addBuilder( index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor byproducts = 3; */ public java.util.List getByproductsBuilderList() { return getByproductsFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> getByproductsFieldBuilder() { if (byproductsBuilder_ == null) { byproductsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder>( byproducts_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); byproducts_ = null; } return byproductsBuilder_; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.provenance.v1.RunDetails) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.provenance.v1.RunDetails) private static final io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails(); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public RunDetails parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.RunDetails getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface BuilderOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.provenance.v1.Builder) com.google.protobuf.MessageOrBuilder { /** * string id = 1; * @return The id. */ java.lang.String getId(); /** * string id = 1; * @return The bytes for id. */ com.google.protobuf.ByteString getIdBytes(); /** * map<string, string> version = 2; */ int getVersionCount(); /** * map<string, string> version = 2; */ boolean containsVersion( java.lang.String key); /** * Use {@link #getVersionMap()} instead. */ @java.lang.Deprecated java.util.Map getVersion(); /** * map<string, string> version = 2; */ java.util.Map getVersionMap(); /** * map<string, string> version = 2; */ /* nullable */ java.lang.String getVersionOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue); /** * map<string, string> version = 2; */ java.lang.String getVersionOrThrow( java.lang.String key); /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ java.util.List getBuilderDependenciesList(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getBuilderDependencies(int index); /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ int getBuilderDependenciesCount(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ java.util.List getBuilderDependenciesOrBuilderList(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getBuilderDependenciesOrBuilder( int index); } /** * Protobuf type {@code in_toto_attestation.predicates.provenance.v1.Builder} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.provenance.v1.Builder) BuilderOrBuilder { private static final long serialVersionUID = 0L; // Use Builder.newBuilder() to construct. private Builder(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Builder() { id_ = ""; builderDependencies_ = java.util.Collections.emptyList(); } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new Builder(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_Builder_descriptor; } @SuppressWarnings({"rawtypes"}) @java.lang.Override protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 2: return internalGetVersion(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_Builder_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.class, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.Builder.class); } public static final int ID_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object id_ = ""; /** * string id = 1; * @return The id. */ @java.lang.Override public java.lang.String getId() { java.lang.Object ref = id_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); id_ = s; return s; } } /** * string id = 1; * @return The bytes for id. */ @java.lang.Override public com.google.protobuf.ByteString getIdBytes() { java.lang.Object ref = id_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); id_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int VERSION_FIELD_NUMBER = 2; private static final class VersionDefaultEntryHolder { static final com.google.protobuf.MapEntry< java.lang.String, java.lang.String> defaultEntry = com.google.protobuf.MapEntry .newDefaultInstance( io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_Builder_VersionEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.STRING, ""); } @SuppressWarnings("serial") private com.google.protobuf.MapField< java.lang.String, java.lang.String> version_; private com.google.protobuf.MapField internalGetVersion() { if (version_ == null) { return com.google.protobuf.MapField.emptyMapField( VersionDefaultEntryHolder.defaultEntry); } return version_; } public int getVersionCount() { return internalGetVersion().getMap().size(); } /** * map<string, string> version = 2; */ @java.lang.Override public boolean containsVersion( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetVersion().getMap().containsKey(key); } /** * Use {@link #getVersionMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getVersion() { return getVersionMap(); } /** * map<string, string> version = 2; */ @java.lang.Override public java.util.Map getVersionMap() { return internalGetVersion().getMap(); } /** * map<string, string> version = 2; */ @java.lang.Override public /* nullable */ java.lang.String getVersionOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetVersion().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, string> version = 2; */ @java.lang.Override public java.lang.String getVersionOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetVersion().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } public static final int BUILDER_DEPENDENCIES_FIELD_NUMBER = 3; @SuppressWarnings("serial") private java.util.List builderDependencies_; /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ @java.lang.Override public java.util.List getBuilderDependenciesList() { return builderDependencies_; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ @java.lang.Override public java.util.List getBuilderDependenciesOrBuilderList() { return builderDependencies_; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ @java.lang.Override public int getBuilderDependenciesCount() { return builderDependencies_.size(); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getBuilderDependencies(int index) { return builderDependencies_.get(index); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getBuilderDependenciesOrBuilder( int index) { return builderDependencies_.get(index); } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); } com.google.protobuf.GeneratedMessageV3 .serializeStringMapTo( output, internalGetVersion(), VersionDefaultEntryHolder.defaultEntry, 2); for (int i = 0; i < builderDependencies_.size(); i++) { output.writeMessage(3, builderDependencies_.get(i)); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); } for (java.util.Map.Entry entry : internalGetVersion().getMap().entrySet()) { com.google.protobuf.MapEntry version__ = VersionDefaultEntryHolder.defaultEntry.newBuilderForType() .setKey(entry.getKey()) .setValue(entry.getValue()) .build(); size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, version__); } for (int i = 0; i < builderDependencies_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, builderDependencies_.get(i)); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder)) { return super.equals(obj); } io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder other = (io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder) obj; if (!getId() .equals(other.getId())) return false; if (!internalGetVersion().equals( other.internalGetVersion())) return false; if (!getBuilderDependenciesList() .equals(other.getBuilderDependenciesList())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + ID_FIELD_NUMBER; hash = (53 * hash) + getId().hashCode(); if (!internalGetVersion().getMap().isEmpty()) { hash = (37 * hash) + VERSION_FIELD_NUMBER; hash = (53 * hash) + internalGetVersion().hashCode(); } if (getBuilderDependenciesCount() > 0) { hash = (37 * hash) + BUILDER_DEPENDENCIES_FIELD_NUMBER; hash = (53 * hash) + getBuilderDependenciesList().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code in_toto_attestation.predicates.provenance.v1.Builder} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.provenance.v1.Builder) io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuilderOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_Builder_descriptor; } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 2: return internalGetVersion(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMutableMapField( int number) { switch (number) { case 2: return internalGetMutableVersion(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_Builder_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.class, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.Builder.class); } // Construct using io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.newBuilder() private Builder() { } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; id_ = ""; internalGetMutableVersion().clear(); if (builderDependenciesBuilder_ == null) { builderDependencies_ = java.util.Collections.emptyList(); } else { builderDependencies_ = null; builderDependenciesBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000004); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_Builder_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder build() { io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder buildPartial() { io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder result = new io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder(this); buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartialRepeatedFields(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder result) { if (builderDependenciesBuilder_ == null) { if (((bitField0_ & 0x00000004) != 0)) { builderDependencies_ = java.util.Collections.unmodifiableList(builderDependencies_); bitField0_ = (bitField0_ & ~0x00000004); } result.builderDependencies_ = builderDependencies_; } else { result.builderDependencies_ = builderDependenciesBuilder_.build(); } } private void buildPartial0(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.id_ = id_; } if (((from_bitField0_ & 0x00000002) != 0)) { result.version_ = internalGetVersion(); result.version_.makeImmutable(); } } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder) { return mergeFrom((io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder other) { if (other == io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder.getDefaultInstance()) return this; if (!other.getId().isEmpty()) { id_ = other.id_; bitField0_ |= 0x00000001; onChanged(); } internalGetMutableVersion().mergeFrom( other.internalGetVersion()); bitField0_ |= 0x00000002; if (builderDependenciesBuilder_ == null) { if (!other.builderDependencies_.isEmpty()) { if (builderDependencies_.isEmpty()) { builderDependencies_ = other.builderDependencies_; bitField0_ = (bitField0_ & ~0x00000004); } else { ensureBuilderDependenciesIsMutable(); builderDependencies_.addAll(other.builderDependencies_); } onChanged(); } } else { if (!other.builderDependencies_.isEmpty()) { if (builderDependenciesBuilder_.isEmpty()) { builderDependenciesBuilder_.dispose(); builderDependenciesBuilder_ = null; builderDependencies_ = other.builderDependencies_; bitField0_ = (bitField0_ & ~0x00000004); builderDependenciesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getBuilderDependenciesFieldBuilder() : null; } else { builderDependenciesBuilder_.addAllMessages(other.builderDependencies_); } } } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { id_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 case 18: { com.google.protobuf.MapEntry version__ = input.readMessage( VersionDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); internalGetMutableVersion().getMutableMap().put( version__.getKey(), version__.getValue()); bitField0_ |= 0x00000002; break; } // case 18 case 26: { io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor m = input.readMessage( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.parser(), extensionRegistry); if (builderDependenciesBuilder_ == null) { ensureBuilderDependenciesIsMutable(); builderDependencies_.add(m); } else { builderDependenciesBuilder_.addMessage(m); } break; } // case 26 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object id_ = ""; /** * string id = 1; * @return The id. */ public java.lang.String getId() { java.lang.Object ref = id_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); id_ = s; return s; } else { return (java.lang.String) ref; } } /** * string id = 1; * @return The bytes for id. */ public com.google.protobuf.ByteString getIdBytes() { java.lang.Object ref = id_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); id_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string id = 1; * @param value The id to set. * @return This builder for chaining. */ public Builder setId( java.lang.String value) { if (value == null) { throw new NullPointerException(); } id_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** * string id = 1; * @return This builder for chaining. */ public Builder clearId() { id_ = getDefaultInstance().getId(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** * string id = 1; * @param value The bytes for id to set. * @return This builder for chaining. */ public Builder setIdBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); id_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } private com.google.protobuf.MapField< java.lang.String, java.lang.String> version_; private com.google.protobuf.MapField internalGetVersion() { if (version_ == null) { return com.google.protobuf.MapField.emptyMapField( VersionDefaultEntryHolder.defaultEntry); } return version_; } private com.google.protobuf.MapField internalGetMutableVersion() { if (version_ == null) { version_ = com.google.protobuf.MapField.newMapField( VersionDefaultEntryHolder.defaultEntry); } if (!version_.isMutable()) { version_ = version_.copy(); } bitField0_ |= 0x00000002; onChanged(); return version_; } public int getVersionCount() { return internalGetVersion().getMap().size(); } /** * map<string, string> version = 2; */ @java.lang.Override public boolean containsVersion( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetVersion().getMap().containsKey(key); } /** * Use {@link #getVersionMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getVersion() { return getVersionMap(); } /** * map<string, string> version = 2; */ @java.lang.Override public java.util.Map getVersionMap() { return internalGetVersion().getMap(); } /** * map<string, string> version = 2; */ @java.lang.Override public /* nullable */ java.lang.String getVersionOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetVersion().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, string> version = 2; */ @java.lang.Override public java.lang.String getVersionOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetVersion().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } public Builder clearVersion() { bitField0_ = (bitField0_ & ~0x00000002); internalGetMutableVersion().getMutableMap() .clear(); return this; } /** * map<string, string> version = 2; */ public Builder removeVersion( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } internalGetMutableVersion().getMutableMap() .remove(key); return this; } /** * Use alternate mutation accessors instead. */ @java.lang.Deprecated public java.util.Map getMutableVersion() { bitField0_ |= 0x00000002; return internalGetMutableVersion().getMutableMap(); } /** * map<string, string> version = 2; */ public Builder putVersion( java.lang.String key, java.lang.String value) { if (key == null) { throw new NullPointerException("map key"); } if (value == null) { throw new NullPointerException("map value"); } internalGetMutableVersion().getMutableMap() .put(key, value); bitField0_ |= 0x00000002; return this; } /** * map<string, string> version = 2; */ public Builder putAllVersion( java.util.Map values) { internalGetMutableVersion().getMutableMap() .putAll(values); bitField0_ |= 0x00000002; return this; } private java.util.List builderDependencies_ = java.util.Collections.emptyList(); private void ensureBuilderDependenciesIsMutable() { if (!((bitField0_ & 0x00000004) != 0)) { builderDependencies_ = new java.util.ArrayList(builderDependencies_); bitField0_ |= 0x00000004; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> builderDependenciesBuilder_; /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public java.util.List getBuilderDependenciesList() { if (builderDependenciesBuilder_ == null) { return java.util.Collections.unmodifiableList(builderDependencies_); } else { return builderDependenciesBuilder_.getMessageList(); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public int getBuilderDependenciesCount() { if (builderDependenciesBuilder_ == null) { return builderDependencies_.size(); } else { return builderDependenciesBuilder_.getCount(); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getBuilderDependencies(int index) { if (builderDependenciesBuilder_ == null) { return builderDependencies_.get(index); } else { return builderDependenciesBuilder_.getMessage(index); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public Builder setBuilderDependencies( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (builderDependenciesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureBuilderDependenciesIsMutable(); builderDependencies_.set(index, value); onChanged(); } else { builderDependenciesBuilder_.setMessage(index, value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public Builder setBuilderDependencies( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (builderDependenciesBuilder_ == null) { ensureBuilderDependenciesIsMutable(); builderDependencies_.set(index, builderForValue.build()); onChanged(); } else { builderDependenciesBuilder_.setMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public Builder addBuilderDependencies(io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (builderDependenciesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureBuilderDependenciesIsMutable(); builderDependencies_.add(value); onChanged(); } else { builderDependenciesBuilder_.addMessage(value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public Builder addBuilderDependencies( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (builderDependenciesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureBuilderDependenciesIsMutable(); builderDependencies_.add(index, value); onChanged(); } else { builderDependenciesBuilder_.addMessage(index, value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public Builder addBuilderDependencies( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (builderDependenciesBuilder_ == null) { ensureBuilderDependenciesIsMutable(); builderDependencies_.add(builderForValue.build()); onChanged(); } else { builderDependenciesBuilder_.addMessage(builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public Builder addBuilderDependencies( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (builderDependenciesBuilder_ == null) { ensureBuilderDependenciesIsMutable(); builderDependencies_.add(index, builderForValue.build()); onChanged(); } else { builderDependenciesBuilder_.addMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public Builder addAllBuilderDependencies( java.lang.Iterable values) { if (builderDependenciesBuilder_ == null) { ensureBuilderDependenciesIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, builderDependencies_); onChanged(); } else { builderDependenciesBuilder_.addAllMessages(values); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public Builder clearBuilderDependencies() { if (builderDependenciesBuilder_ == null) { builderDependencies_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000004); onChanged(); } else { builderDependenciesBuilder_.clear(); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public Builder removeBuilderDependencies(int index) { if (builderDependenciesBuilder_ == null) { ensureBuilderDependenciesIsMutable(); builderDependencies_.remove(index); onChanged(); } else { builderDependenciesBuilder_.remove(index); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder getBuilderDependenciesBuilder( int index) { return getBuilderDependenciesFieldBuilder().getBuilder(index); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getBuilderDependenciesOrBuilder( int index) { if (builderDependenciesBuilder_ == null) { return builderDependencies_.get(index); } else { return builderDependenciesBuilder_.getMessageOrBuilder(index); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public java.util.List getBuilderDependenciesOrBuilderList() { if (builderDependenciesBuilder_ != null) { return builderDependenciesBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(builderDependencies_); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder addBuilderDependenciesBuilder() { return getBuilderDependenciesFieldBuilder().addBuilder( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder addBuilderDependenciesBuilder( int index) { return getBuilderDependenciesFieldBuilder().addBuilder( index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; */ public java.util.List getBuilderDependenciesBuilderList() { return getBuilderDependenciesFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> getBuilderDependenciesFieldBuilder() { if (builderDependenciesBuilder_ == null) { builderDependenciesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder>( builderDependencies_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); builderDependencies_ = null; } return builderDependenciesBuilder_; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.provenance.v1.Builder) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.provenance.v1.Builder) private static final io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder(); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public Builder parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.Builder getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface BuildMetadataOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.provenance.v1.BuildMetadata) com.google.protobuf.MessageOrBuilder { /** * string invocation_id = 1; * @return The invocationId. */ java.lang.String getInvocationId(); /** * string invocation_id = 1; * @return The bytes for invocationId. */ com.google.protobuf.ByteString getInvocationIdBytes(); /** * .google.protobuf.Timestamp started_on = 2; * @return Whether the startedOn field is set. */ boolean hasStartedOn(); /** * .google.protobuf.Timestamp started_on = 2; * @return The startedOn. */ com.google.protobuf.Timestamp getStartedOn(); /** * .google.protobuf.Timestamp started_on = 2; */ com.google.protobuf.TimestampOrBuilder getStartedOnOrBuilder(); /** * .google.protobuf.Timestamp finished_on = 3; * @return Whether the finishedOn field is set. */ boolean hasFinishedOn(); /** * .google.protobuf.Timestamp finished_on = 3; * @return The finishedOn. */ com.google.protobuf.Timestamp getFinishedOn(); /** * .google.protobuf.Timestamp finished_on = 3; */ com.google.protobuf.TimestampOrBuilder getFinishedOnOrBuilder(); } /** * Protobuf type {@code in_toto_attestation.predicates.provenance.v1.BuildMetadata} */ public static final class BuildMetadata extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.provenance.v1.BuildMetadata) BuildMetadataOrBuilder { private static final long serialVersionUID = 0L; // Use BuildMetadata.newBuilder() to construct. private BuildMetadata(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private BuildMetadata() { invocationId_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new BuildMetadata(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_BuildMetadata_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_BuildMetadata_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.class, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.Builder.class); } private int bitField0_; public static final int INVOCATION_ID_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object invocationId_ = ""; /** * string invocation_id = 1; * @return The invocationId. */ @java.lang.Override public java.lang.String getInvocationId() { java.lang.Object ref = invocationId_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); invocationId_ = s; return s; } } /** * string invocation_id = 1; * @return The bytes for invocationId. */ @java.lang.Override public com.google.protobuf.ByteString getInvocationIdBytes() { java.lang.Object ref = invocationId_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); invocationId_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int STARTED_ON_FIELD_NUMBER = 2; private com.google.protobuf.Timestamp startedOn_; /** * .google.protobuf.Timestamp started_on = 2; * @return Whether the startedOn field is set. */ @java.lang.Override public boolean hasStartedOn() { return ((bitField0_ & 0x00000001) != 0); } /** * .google.protobuf.Timestamp started_on = 2; * @return The startedOn. */ @java.lang.Override public com.google.protobuf.Timestamp getStartedOn() { return startedOn_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startedOn_; } /** * .google.protobuf.Timestamp started_on = 2; */ @java.lang.Override public com.google.protobuf.TimestampOrBuilder getStartedOnOrBuilder() { return startedOn_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startedOn_; } public static final int FINISHED_ON_FIELD_NUMBER = 3; private com.google.protobuf.Timestamp finishedOn_; /** * .google.protobuf.Timestamp finished_on = 3; * @return Whether the finishedOn field is set. */ @java.lang.Override public boolean hasFinishedOn() { return ((bitField0_ & 0x00000002) != 0); } /** * .google.protobuf.Timestamp finished_on = 3; * @return The finishedOn. */ @java.lang.Override public com.google.protobuf.Timestamp getFinishedOn() { return finishedOn_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : finishedOn_; } /** * .google.protobuf.Timestamp finished_on = 3; */ @java.lang.Override public com.google.protobuf.TimestampOrBuilder getFinishedOnOrBuilder() { return finishedOn_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : finishedOn_; } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(invocationId_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, invocationId_); } if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(2, getStartedOn()); } if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(3, getFinishedOn()); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(invocationId_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, invocationId_); } if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getStartedOn()); } if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, getFinishedOn()); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata)) { return super.equals(obj); } io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata other = (io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata) obj; if (!getInvocationId() .equals(other.getInvocationId())) return false; if (hasStartedOn() != other.hasStartedOn()) return false; if (hasStartedOn()) { if (!getStartedOn() .equals(other.getStartedOn())) return false; } if (hasFinishedOn() != other.hasFinishedOn()) return false; if (hasFinishedOn()) { if (!getFinishedOn() .equals(other.getFinishedOn())) return false; } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + INVOCATION_ID_FIELD_NUMBER; hash = (53 * hash) + getInvocationId().hashCode(); if (hasStartedOn()) { hash = (37 * hash) + STARTED_ON_FIELD_NUMBER; hash = (53 * hash) + getStartedOn().hashCode(); } if (hasFinishedOn()) { hash = (37 * hash) + FINISHED_ON_FIELD_NUMBER; hash = (53 * hash) + getFinishedOn().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code in_toto_attestation.predicates.provenance.v1.BuildMetadata} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.provenance.v1.BuildMetadata) io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadataOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_BuildMetadata_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_BuildMetadata_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.class, io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.Builder.class); } // Construct using io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getStartedOnFieldBuilder(); getFinishedOnFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; invocationId_ = ""; startedOn_ = null; if (startedOnBuilder_ != null) { startedOnBuilder_.dispose(); startedOnBuilder_ = null; } finishedOn_ = null; if (finishedOnBuilder_ != null) { finishedOnBuilder_.dispose(); finishedOnBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.internal_static_in_toto_attestation_predicates_provenance_v1_BuildMetadata_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata build() { io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata buildPartial() { io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata result = new io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartial0(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.invocationId_ = invocationId_; } int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000002) != 0)) { result.startedOn_ = startedOnBuilder_ == null ? startedOn_ : startedOnBuilder_.build(); to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000004) != 0)) { result.finishedOn_ = finishedOnBuilder_ == null ? finishedOn_ : finishedOnBuilder_.build(); to_bitField0_ |= 0x00000002; } result.bitField0_ |= to_bitField0_; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata) { return mergeFrom((io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata other) { if (other == io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata.getDefaultInstance()) return this; if (!other.getInvocationId().isEmpty()) { invocationId_ = other.invocationId_; bitField0_ |= 0x00000001; onChanged(); } if (other.hasStartedOn()) { mergeStartedOn(other.getStartedOn()); } if (other.hasFinishedOn()) { mergeFinishedOn(other.getFinishedOn()); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { invocationId_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 case 18: { input.readMessage( getStartedOnFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000002; break; } // case 18 case 26: { input.readMessage( getFinishedOnFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000004; break; } // case 26 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object invocationId_ = ""; /** * string invocation_id = 1; * @return The invocationId. */ public java.lang.String getInvocationId() { java.lang.Object ref = invocationId_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); invocationId_ = s; return s; } else { return (java.lang.String) ref; } } /** * string invocation_id = 1; * @return The bytes for invocationId. */ public com.google.protobuf.ByteString getInvocationIdBytes() { java.lang.Object ref = invocationId_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); invocationId_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string invocation_id = 1; * @param value The invocationId to set. * @return This builder for chaining. */ public Builder setInvocationId( java.lang.String value) { if (value == null) { throw new NullPointerException(); } invocationId_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** * string invocation_id = 1; * @return This builder for chaining. */ public Builder clearInvocationId() { invocationId_ = getDefaultInstance().getInvocationId(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** * string invocation_id = 1; * @param value The bytes for invocationId to set. * @return This builder for chaining. */ public Builder setInvocationIdBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); invocationId_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } private com.google.protobuf.Timestamp startedOn_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> startedOnBuilder_; /** * .google.protobuf.Timestamp started_on = 2; * @return Whether the startedOn field is set. */ public boolean hasStartedOn() { return ((bitField0_ & 0x00000002) != 0); } /** * .google.protobuf.Timestamp started_on = 2; * @return The startedOn. */ public com.google.protobuf.Timestamp getStartedOn() { if (startedOnBuilder_ == null) { return startedOn_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startedOn_; } else { return startedOnBuilder_.getMessage(); } } /** * .google.protobuf.Timestamp started_on = 2; */ public Builder setStartedOn(com.google.protobuf.Timestamp value) { if (startedOnBuilder_ == null) { if (value == null) { throw new NullPointerException(); } startedOn_ = value; } else { startedOnBuilder_.setMessage(value); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .google.protobuf.Timestamp started_on = 2; */ public Builder setStartedOn( com.google.protobuf.Timestamp.Builder builderForValue) { if (startedOnBuilder_ == null) { startedOn_ = builderForValue.build(); } else { startedOnBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .google.protobuf.Timestamp started_on = 2; */ public Builder mergeStartedOn(com.google.protobuf.Timestamp value) { if (startedOnBuilder_ == null) { if (((bitField0_ & 0x00000002) != 0) && startedOn_ != null && startedOn_ != com.google.protobuf.Timestamp.getDefaultInstance()) { getStartedOnBuilder().mergeFrom(value); } else { startedOn_ = value; } } else { startedOnBuilder_.mergeFrom(value); } if (startedOn_ != null) { bitField0_ |= 0x00000002; onChanged(); } return this; } /** * .google.protobuf.Timestamp started_on = 2; */ public Builder clearStartedOn() { bitField0_ = (bitField0_ & ~0x00000002); startedOn_ = null; if (startedOnBuilder_ != null) { startedOnBuilder_.dispose(); startedOnBuilder_ = null; } onChanged(); return this; } /** * .google.protobuf.Timestamp started_on = 2; */ public com.google.protobuf.Timestamp.Builder getStartedOnBuilder() { bitField0_ |= 0x00000002; onChanged(); return getStartedOnFieldBuilder().getBuilder(); } /** * .google.protobuf.Timestamp started_on = 2; */ public com.google.protobuf.TimestampOrBuilder getStartedOnOrBuilder() { if (startedOnBuilder_ != null) { return startedOnBuilder_.getMessageOrBuilder(); } else { return startedOn_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startedOn_; } } /** * .google.protobuf.Timestamp started_on = 2; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> getStartedOnFieldBuilder() { if (startedOnBuilder_ == null) { startedOnBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>( getStartedOn(), getParentForChildren(), isClean()); startedOn_ = null; } return startedOnBuilder_; } private com.google.protobuf.Timestamp finishedOn_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> finishedOnBuilder_; /** * .google.protobuf.Timestamp finished_on = 3; * @return Whether the finishedOn field is set. */ public boolean hasFinishedOn() { return ((bitField0_ & 0x00000004) != 0); } /** * .google.protobuf.Timestamp finished_on = 3; * @return The finishedOn. */ public com.google.protobuf.Timestamp getFinishedOn() { if (finishedOnBuilder_ == null) { return finishedOn_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : finishedOn_; } else { return finishedOnBuilder_.getMessage(); } } /** * .google.protobuf.Timestamp finished_on = 3; */ public Builder setFinishedOn(com.google.protobuf.Timestamp value) { if (finishedOnBuilder_ == null) { if (value == null) { throw new NullPointerException(); } finishedOn_ = value; } else { finishedOnBuilder_.setMessage(value); } bitField0_ |= 0x00000004; onChanged(); return this; } /** * .google.protobuf.Timestamp finished_on = 3; */ public Builder setFinishedOn( com.google.protobuf.Timestamp.Builder builderForValue) { if (finishedOnBuilder_ == null) { finishedOn_ = builderForValue.build(); } else { finishedOnBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000004; onChanged(); return this; } /** * .google.protobuf.Timestamp finished_on = 3; */ public Builder mergeFinishedOn(com.google.protobuf.Timestamp value) { if (finishedOnBuilder_ == null) { if (((bitField0_ & 0x00000004) != 0) && finishedOn_ != null && finishedOn_ != com.google.protobuf.Timestamp.getDefaultInstance()) { getFinishedOnBuilder().mergeFrom(value); } else { finishedOn_ = value; } } else { finishedOnBuilder_.mergeFrom(value); } if (finishedOn_ != null) { bitField0_ |= 0x00000004; onChanged(); } return this; } /** * .google.protobuf.Timestamp finished_on = 3; */ public Builder clearFinishedOn() { bitField0_ = (bitField0_ & ~0x00000004); finishedOn_ = null; if (finishedOnBuilder_ != null) { finishedOnBuilder_.dispose(); finishedOnBuilder_ = null; } onChanged(); return this; } /** * .google.protobuf.Timestamp finished_on = 3; */ public com.google.protobuf.Timestamp.Builder getFinishedOnBuilder() { bitField0_ |= 0x00000004; onChanged(); return getFinishedOnFieldBuilder().getBuilder(); } /** * .google.protobuf.Timestamp finished_on = 3; */ public com.google.protobuf.TimestampOrBuilder getFinishedOnOrBuilder() { if (finishedOnBuilder_ != null) { return finishedOnBuilder_.getMessageOrBuilder(); } else { return finishedOn_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : finishedOn_; } } /** * .google.protobuf.Timestamp finished_on = 3; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> getFinishedOnFieldBuilder() { if (finishedOnBuilder_ == null) { finishedOnBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>( getFinishedOn(), getParentForChildren(), isClean()); finishedOn_ = null; } return finishedOnBuilder_; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.provenance.v1.BuildMetadata) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.provenance.v1.BuildMetadata) private static final io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata(); } public static io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public BuildMetadata parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.provenance.v1.ProvenanceOuterClass.BuildMetadata getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_provenance_v1_Provenance_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_provenance_v1_Provenance_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_provenance_v1_BuildDefinition_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_provenance_v1_BuildDefinition_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_provenance_v1_RunDetails_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_provenance_v1_RunDetails_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_provenance_v1_Builder_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_provenance_v1_Builder_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_provenance_v1_Builder_VersionEntry_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_provenance_v1_Builder_VersionEntry_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_provenance_v1_BuildMetadata_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_provenance_v1_BuildMetadata_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { return descriptor; } private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { java.lang.String[] descriptorData = { "\n=in_toto_attestation/predicates/provena" + "nce/v1/provenance.proto\022,in_toto_attesta" + "tion.predicates.provenance.v1\0320in_toto_a" + "ttestation/v1/resource_descriptor.proto\032" + "\034google/protobuf/struct.proto\032\037google/pr" + "otobuf/timestamp.proto\"\264\001\n\nProvenance\022W\n" + "\020build_definition\030\001 \001(\0132=.in_toto_attest" + "ation.predicates.provenance.v1.BuildDefi" + "nition\022M\n\013run_details\030\002 \001(\01328.in_toto_at" + "testation.predicates.provenance.v1.RunDe" + "tails\"\334\001\n\017BuildDefinition\022\022\n\nbuild_type\030" + "\001 \001(\t\0224\n\023external_parameters\030\002 \001(\0132\027.goo" + "gle.protobuf.Struct\0224\n\023internal_paramete" + "rs\030\003 \001(\0132\027.google.protobuf.Struct\022I\n\025res" + "olved_dependencies\030\004 \003(\0132*.in_toto_attes" + "tation.v1.ResourceDescriptor\"\343\001\n\nRunDeta" + "ils\022F\n\007builder\030\001 \001(\01325.in_toto_attestati" + "on.predicates.provenance.v1.Builder\022M\n\010m" + "etadata\030\002 \001(\0132;.in_toto_attestation.pred" + "icates.provenance.v1.BuildMetadata\022>\n\nby" + "products\030\003 \003(\0132*.in_toto_attestation.v1." + "ResourceDescriptor\"\344\001\n\007Builder\022\n\n\002id\030\001 \001" + "(\t\022S\n\007version\030\002 \003(\0132B.in_toto_attestatio" + "n.predicates.provenance.v1.Builder.Versi" + "onEntry\022H\n\024builder_dependencies\030\003 \003(\0132*." + "in_toto_attestation.v1.ResourceDescripto" + "r\032.\n\014VersionEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030" + "\002 \001(\t:\0028\001\"\207\001\n\rBuildMetadata\022\025\n\rinvocatio" + "n_id\030\001 \001(\t\022.\n\nstarted_on\030\002 \001(\0132\032.google." + "protobuf.Timestamp\022/\n\013finished_on\030\003 \001(\0132" + "\032.google.protobuf.TimestampBs\n5io.github" + ".intoto.attestation.predicates.provenanc" + "e.v1Z:github.com/in-toto/attestation/go/" + "predicates/provenance/v1b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.getDescriptor(), com.google.protobuf.StructProto.getDescriptor(), com.google.protobuf.TimestampProto.getDescriptor(), }); internal_static_in_toto_attestation_predicates_provenance_v1_Provenance_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_in_toto_attestation_predicates_provenance_v1_Provenance_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_provenance_v1_Provenance_descriptor, new java.lang.String[] { "BuildDefinition", "RunDetails", }); internal_static_in_toto_attestation_predicates_provenance_v1_BuildDefinition_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_in_toto_attestation_predicates_provenance_v1_BuildDefinition_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_provenance_v1_BuildDefinition_descriptor, new java.lang.String[] { "BuildType", "ExternalParameters", "InternalParameters", "ResolvedDependencies", }); internal_static_in_toto_attestation_predicates_provenance_v1_RunDetails_descriptor = getDescriptor().getMessageTypes().get(2); internal_static_in_toto_attestation_predicates_provenance_v1_RunDetails_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_provenance_v1_RunDetails_descriptor, new java.lang.String[] { "Builder", "Metadata", "Byproducts", }); internal_static_in_toto_attestation_predicates_provenance_v1_Builder_descriptor = getDescriptor().getMessageTypes().get(3); internal_static_in_toto_attestation_predicates_provenance_v1_Builder_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_provenance_v1_Builder_descriptor, new java.lang.String[] { "Id", "Version", "BuilderDependencies", }); internal_static_in_toto_attestation_predicates_provenance_v1_Builder_VersionEntry_descriptor = internal_static_in_toto_attestation_predicates_provenance_v1_Builder_descriptor.getNestedTypes().get(0); internal_static_in_toto_attestation_predicates_provenance_v1_Builder_VersionEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_provenance_v1_Builder_VersionEntry_descriptor, new java.lang.String[] { "Key", "Value", }); internal_static_in_toto_attestation_predicates_provenance_v1_BuildMetadata_descriptor = getDescriptor().getMessageTypes().get(4); internal_static_in_toto_attestation_predicates_provenance_v1_BuildMetadata_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_provenance_v1_BuildMetadata_descriptor, new java.lang.String[] { "InvocationId", "StartedOn", "FinishedOn", }); io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.getDescriptor(); com.google.protobuf.StructProto.getDescriptor(); com.google.protobuf.TimestampProto.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) } golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/release/000077500000000000000000000000001470602552500324225ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/release/v0/000077500000000000000000000000001470602552500327475ustar00rootroot00000000000000ReleaseOuterClass.java000066400000000000000000000705541470602552500371330ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/release/v0// Generated by the protocol buffer compiler. DO NOT EDIT! // source: in_toto_attestation/predicates/release/v0/release.proto package io.github.intoto.attestation.predicates.release.v0; public final class ReleaseOuterClass { private ReleaseOuterClass() {} public static void registerAllExtensions( com.google.protobuf.ExtensionRegistryLite registry) { } public static void registerAllExtensions( com.google.protobuf.ExtensionRegistry registry) { registerAllExtensions( (com.google.protobuf.ExtensionRegistryLite) registry); } public interface ReleaseOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.release.v0.Release) com.google.protobuf.MessageOrBuilder { /** * string purl = 1; * @return The purl. */ java.lang.String getPurl(); /** * string purl = 1; * @return The bytes for purl. */ com.google.protobuf.ByteString getPurlBytes(); /** * optional string release_id = 2; * @return Whether the releaseId field is set. */ boolean hasReleaseId(); /** * optional string release_id = 2; * @return The releaseId. */ java.lang.String getReleaseId(); /** * optional string release_id = 2; * @return The bytes for releaseId. */ com.google.protobuf.ByteString getReleaseIdBytes(); } /** * Protobuf type {@code in_toto_attestation.predicates.release.v0.Release} */ public static final class Release extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.release.v0.Release) ReleaseOrBuilder { private static final long serialVersionUID = 0L; // Use Release.newBuilder() to construct. private Release(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Release() { purl_ = ""; releaseId_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new Release(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.internal_static_in_toto_attestation_predicates_release_v0_Release_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.internal_static_in_toto_attestation_predicates_release_v0_Release_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release.class, io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release.Builder.class); } private int bitField0_; public static final int PURL_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object purl_ = ""; /** * string purl = 1; * @return The purl. */ @java.lang.Override public java.lang.String getPurl() { java.lang.Object ref = purl_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); purl_ = s; return s; } } /** * string purl = 1; * @return The bytes for purl. */ @java.lang.Override public com.google.protobuf.ByteString getPurlBytes() { java.lang.Object ref = purl_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); purl_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int RELEASE_ID_FIELD_NUMBER = 2; @SuppressWarnings("serial") private volatile java.lang.Object releaseId_ = ""; /** * optional string release_id = 2; * @return Whether the releaseId field is set. */ @java.lang.Override public boolean hasReleaseId() { return ((bitField0_ & 0x00000001) != 0); } /** * optional string release_id = 2; * @return The releaseId. */ @java.lang.Override public java.lang.String getReleaseId() { java.lang.Object ref = releaseId_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); releaseId_ = s; return s; } } /** * optional string release_id = 2; * @return The bytes for releaseId. */ @java.lang.Override public com.google.protobuf.ByteString getReleaseIdBytes() { java.lang.Object ref = releaseId_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); releaseId_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(purl_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, purl_); } if (((bitField0_ & 0x00000001) != 0)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, releaseId_); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(purl_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, purl_); } if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, releaseId_); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release)) { return super.equals(obj); } io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release other = (io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release) obj; if (!getPurl() .equals(other.getPurl())) return false; if (hasReleaseId() != other.hasReleaseId()) return false; if (hasReleaseId()) { if (!getReleaseId() .equals(other.getReleaseId())) return false; } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + PURL_FIELD_NUMBER; hash = (53 * hash) + getPurl().hashCode(); if (hasReleaseId()) { hash = (37 * hash) + RELEASE_ID_FIELD_NUMBER; hash = (53 * hash) + getReleaseId().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code in_toto_attestation.predicates.release.v0.Release} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.release.v0.Release) io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.ReleaseOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.internal_static_in_toto_attestation_predicates_release_v0_Release_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.internal_static_in_toto_attestation_predicates_release_v0_Release_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release.class, io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release.Builder.class); } // Construct using io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release.newBuilder() private Builder() { } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; purl_ = ""; releaseId_ = ""; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.internal_static_in_toto_attestation_predicates_release_v0_Release_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release build() { io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release buildPartial() { io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release result = new io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartial0(io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.purl_ = purl_; } int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000002) != 0)) { result.releaseId_ = releaseId_; to_bitField0_ |= 0x00000001; } result.bitField0_ |= to_bitField0_; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release) { return mergeFrom((io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release other) { if (other == io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release.getDefaultInstance()) return this; if (!other.getPurl().isEmpty()) { purl_ = other.purl_; bitField0_ |= 0x00000001; onChanged(); } if (other.hasReleaseId()) { releaseId_ = other.releaseId_; bitField0_ |= 0x00000002; onChanged(); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { purl_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 case 18: { releaseId_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000002; break; } // case 18 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object purl_ = ""; /** * string purl = 1; * @return The purl. */ public java.lang.String getPurl() { java.lang.Object ref = purl_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); purl_ = s; return s; } else { return (java.lang.String) ref; } } /** * string purl = 1; * @return The bytes for purl. */ public com.google.protobuf.ByteString getPurlBytes() { java.lang.Object ref = purl_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); purl_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string purl = 1; * @param value The purl to set. * @return This builder for chaining. */ public Builder setPurl( java.lang.String value) { if (value == null) { throw new NullPointerException(); } purl_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** * string purl = 1; * @return This builder for chaining. */ public Builder clearPurl() { purl_ = getDefaultInstance().getPurl(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** * string purl = 1; * @param value The bytes for purl to set. * @return This builder for chaining. */ public Builder setPurlBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); purl_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } private java.lang.Object releaseId_ = ""; /** * optional string release_id = 2; * @return Whether the releaseId field is set. */ public boolean hasReleaseId() { return ((bitField0_ & 0x00000002) != 0); } /** * optional string release_id = 2; * @return The releaseId. */ public java.lang.String getReleaseId() { java.lang.Object ref = releaseId_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); releaseId_ = s; return s; } else { return (java.lang.String) ref; } } /** * optional string release_id = 2; * @return The bytes for releaseId. */ public com.google.protobuf.ByteString getReleaseIdBytes() { java.lang.Object ref = releaseId_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); releaseId_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * optional string release_id = 2; * @param value The releaseId to set. * @return This builder for chaining. */ public Builder setReleaseId( java.lang.String value) { if (value == null) { throw new NullPointerException(); } releaseId_ = value; bitField0_ |= 0x00000002; onChanged(); return this; } /** * optional string release_id = 2; * @return This builder for chaining. */ public Builder clearReleaseId() { releaseId_ = getDefaultInstance().getReleaseId(); bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } /** * optional string release_id = 2; * @param value The bytes for releaseId to set. * @return This builder for chaining. */ public Builder setReleaseIdBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); releaseId_ = value; bitField0_ |= 0x00000002; onChanged(); return this; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.release.v0.Release) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.release.v0.Release) private static final io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release(); } public static io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public Release parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.release.v0.ReleaseOuterClass.Release getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_release_v0_Release_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_release_v0_Release_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { return descriptor; } private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { java.lang.String[] descriptorData = { "\n7in_toto_attestation/predicates/release" + "/v0/release.proto\022)in_toto_attestation.p" + "redicates.release.v0\"?\n\007Release\022\014\n\004purl\030" + "\001 \001(\t\022\027\n\nrelease_id\030\002 \001(\tH\000\210\001\001B\r\n\013_relea" + "se_idBm\n2io.github.intoto.attestation.pr" + "edicates.release.v0Z7github.com/in-toto/" + "attestation/go/predicates/release/v0b\006pr" + "oto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { }); internal_static_in_toto_attestation_predicates_release_v0_Release_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_in_toto_attestation_predicates_release_v0_Release_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_release_v0_Release_descriptor, new java.lang.String[] { "Purl", "ReleaseId", "ReleaseId", }); } // @@protoc_insertion_point(outer_class_scope) } golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/scai/000077500000000000000000000000001470602552500317215ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/scai/v0/000077500000000000000000000000001470602552500322465ustar00rootroot00000000000000Scai.java000066400000000000000000002621631470602552500337230ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/scai/v0// Generated by the protocol buffer compiler. DO NOT EDIT! // source: in_toto_attestation/predicates/scai/v0/scai.proto package io.github.intoto.attestation.predicates.scai.v0; public final class Scai { private Scai() {} public static void registerAllExtensions( com.google.protobuf.ExtensionRegistryLite registry) { } public static void registerAllExtensions( com.google.protobuf.ExtensionRegistry registry) { registerAllExtensions( (com.google.protobuf.ExtensionRegistryLite) registry); } public interface AttributeAssertionOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.scai.v0.AttributeAssertion) com.google.protobuf.MessageOrBuilder { /** *
     * required
     * 
* * string attribute = 1; * @return The attribute. */ java.lang.String getAttribute(); /** *
     * required
     * 
* * string attribute = 1; * @return The bytes for attribute. */ com.google.protobuf.ByteString getAttributeBytes(); /** * .in_toto_attestation.v1.ResourceDescriptor target = 2; * @return Whether the target field is set. */ boolean hasTarget(); /** * .in_toto_attestation.v1.ResourceDescriptor target = 2; * @return The target. */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getTarget(); /** * .in_toto_attestation.v1.ResourceDescriptor target = 2; */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getTargetOrBuilder(); /** * .google.protobuf.Struct conditions = 3; * @return Whether the conditions field is set. */ boolean hasConditions(); /** * .google.protobuf.Struct conditions = 3; * @return The conditions. */ com.google.protobuf.Struct getConditions(); /** * .google.protobuf.Struct conditions = 3; */ com.google.protobuf.StructOrBuilder getConditionsOrBuilder(); /** * .in_toto_attestation.v1.ResourceDescriptor evidence = 4; * @return Whether the evidence field is set. */ boolean hasEvidence(); /** * .in_toto_attestation.v1.ResourceDescriptor evidence = 4; * @return The evidence. */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getEvidence(); /** * .in_toto_attestation.v1.ResourceDescriptor evidence = 4; */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getEvidenceOrBuilder(); } /** * Protobuf type {@code in_toto_attestation.predicates.scai.v0.AttributeAssertion} */ public static final class AttributeAssertion extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.scai.v0.AttributeAssertion) AttributeAssertionOrBuilder { private static final long serialVersionUID = 0L; // Use AttributeAssertion.newBuilder() to construct. private AttributeAssertion(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private AttributeAssertion() { attribute_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new AttributeAssertion(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.scai.v0.Scai.internal_static_in_toto_attestation_predicates_scai_v0_AttributeAssertion_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.scai.v0.Scai.internal_static_in_toto_attestation_predicates_scai_v0_AttributeAssertion_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.class, io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.Builder.class); } private int bitField0_; public static final int ATTRIBUTE_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object attribute_ = ""; /** *
     * required
     * 
* * string attribute = 1; * @return The attribute. */ @java.lang.Override public java.lang.String getAttribute() { java.lang.Object ref = attribute_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); attribute_ = s; return s; } } /** *
     * required
     * 
* * string attribute = 1; * @return The bytes for attribute. */ @java.lang.Override public com.google.protobuf.ByteString getAttributeBytes() { java.lang.Object ref = attribute_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); attribute_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int TARGET_FIELD_NUMBER = 2; private io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor target_; /** * .in_toto_attestation.v1.ResourceDescriptor target = 2; * @return Whether the target field is set. */ @java.lang.Override public boolean hasTarget() { return ((bitField0_ & 0x00000001) != 0); } /** * .in_toto_attestation.v1.ResourceDescriptor target = 2; * @return The target. */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getTarget() { return target_ == null ? io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance() : target_; } /** * .in_toto_attestation.v1.ResourceDescriptor target = 2; */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getTargetOrBuilder() { return target_ == null ? io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance() : target_; } public static final int CONDITIONS_FIELD_NUMBER = 3; private com.google.protobuf.Struct conditions_; /** * .google.protobuf.Struct conditions = 3; * @return Whether the conditions field is set. */ @java.lang.Override public boolean hasConditions() { return ((bitField0_ & 0x00000002) != 0); } /** * .google.protobuf.Struct conditions = 3; * @return The conditions. */ @java.lang.Override public com.google.protobuf.Struct getConditions() { return conditions_ == null ? com.google.protobuf.Struct.getDefaultInstance() : conditions_; } /** * .google.protobuf.Struct conditions = 3; */ @java.lang.Override public com.google.protobuf.StructOrBuilder getConditionsOrBuilder() { return conditions_ == null ? com.google.protobuf.Struct.getDefaultInstance() : conditions_; } public static final int EVIDENCE_FIELD_NUMBER = 4; private io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor evidence_; /** * .in_toto_attestation.v1.ResourceDescriptor evidence = 4; * @return Whether the evidence field is set. */ @java.lang.Override public boolean hasEvidence() { return ((bitField0_ & 0x00000004) != 0); } /** * .in_toto_attestation.v1.ResourceDescriptor evidence = 4; * @return The evidence. */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getEvidence() { return evidence_ == null ? io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance() : evidence_; } /** * .in_toto_attestation.v1.ResourceDescriptor evidence = 4; */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getEvidenceOrBuilder() { return evidence_ == null ? io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance() : evidence_; } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(attribute_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, attribute_); } if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(2, getTarget()); } if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(3, getConditions()); } if (((bitField0_ & 0x00000004) != 0)) { output.writeMessage(4, getEvidence()); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(attribute_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, attribute_); } if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getTarget()); } if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, getConditions()); } if (((bitField0_ & 0x00000004) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getEvidence()); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion)) { return super.equals(obj); } io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion other = (io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion) obj; if (!getAttribute() .equals(other.getAttribute())) return false; if (hasTarget() != other.hasTarget()) return false; if (hasTarget()) { if (!getTarget() .equals(other.getTarget())) return false; } if (hasConditions() != other.hasConditions()) return false; if (hasConditions()) { if (!getConditions() .equals(other.getConditions())) return false; } if (hasEvidence() != other.hasEvidence()) return false; if (hasEvidence()) { if (!getEvidence() .equals(other.getEvidence())) return false; } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + ATTRIBUTE_FIELD_NUMBER; hash = (53 * hash) + getAttribute().hashCode(); if (hasTarget()) { hash = (37 * hash) + TARGET_FIELD_NUMBER; hash = (53 * hash) + getTarget().hashCode(); } if (hasConditions()) { hash = (37 * hash) + CONDITIONS_FIELD_NUMBER; hash = (53 * hash) + getConditions().hashCode(); } if (hasEvidence()) { hash = (37 * hash) + EVIDENCE_FIELD_NUMBER; hash = (53 * hash) + getEvidence().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code in_toto_attestation.predicates.scai.v0.AttributeAssertion} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.scai.v0.AttributeAssertion) io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertionOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.scai.v0.Scai.internal_static_in_toto_attestation_predicates_scai_v0_AttributeAssertion_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.scai.v0.Scai.internal_static_in_toto_attestation_predicates_scai_v0_AttributeAssertion_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.class, io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.Builder.class); } // Construct using io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getTargetFieldBuilder(); getConditionsFieldBuilder(); getEvidenceFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; attribute_ = ""; target_ = null; if (targetBuilder_ != null) { targetBuilder_.dispose(); targetBuilder_ = null; } conditions_ = null; if (conditionsBuilder_ != null) { conditionsBuilder_.dispose(); conditionsBuilder_ = null; } evidence_ = null; if (evidenceBuilder_ != null) { evidenceBuilder_.dispose(); evidenceBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.scai.v0.Scai.internal_static_in_toto_attestation_predicates_scai_v0_AttributeAssertion_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion build() { io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion buildPartial() { io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion result = new io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartial0(io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.attribute_ = attribute_; } int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000002) != 0)) { result.target_ = targetBuilder_ == null ? target_ : targetBuilder_.build(); to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000004) != 0)) { result.conditions_ = conditionsBuilder_ == null ? conditions_ : conditionsBuilder_.build(); to_bitField0_ |= 0x00000002; } if (((from_bitField0_ & 0x00000008) != 0)) { result.evidence_ = evidenceBuilder_ == null ? evidence_ : evidenceBuilder_.build(); to_bitField0_ |= 0x00000004; } result.bitField0_ |= to_bitField0_; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion) { return mergeFrom((io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion other) { if (other == io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.getDefaultInstance()) return this; if (!other.getAttribute().isEmpty()) { attribute_ = other.attribute_; bitField0_ |= 0x00000001; onChanged(); } if (other.hasTarget()) { mergeTarget(other.getTarget()); } if (other.hasConditions()) { mergeConditions(other.getConditions()); } if (other.hasEvidence()) { mergeEvidence(other.getEvidence()); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { attribute_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 case 18: { input.readMessage( getTargetFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000002; break; } // case 18 case 26: { input.readMessage( getConditionsFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000004; break; } // case 26 case 34: { input.readMessage( getEvidenceFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000008; break; } // case 34 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object attribute_ = ""; /** *
       * required
       * 
* * string attribute = 1; * @return The attribute. */ public java.lang.String getAttribute() { java.lang.Object ref = attribute_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); attribute_ = s; return s; } else { return (java.lang.String) ref; } } /** *
       * required
       * 
* * string attribute = 1; * @return The bytes for attribute. */ public com.google.protobuf.ByteString getAttributeBytes() { java.lang.Object ref = attribute_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); attribute_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
       * required
       * 
* * string attribute = 1; * @param value The attribute to set. * @return This builder for chaining. */ public Builder setAttribute( java.lang.String value) { if (value == null) { throw new NullPointerException(); } attribute_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** *
       * required
       * 
* * string attribute = 1; * @return This builder for chaining. */ public Builder clearAttribute() { attribute_ = getDefaultInstance().getAttribute(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** *
       * required
       * 
* * string attribute = 1; * @param value The bytes for attribute to set. * @return This builder for chaining. */ public Builder setAttributeBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); attribute_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } private io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor target_; private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> targetBuilder_; /** * .in_toto_attestation.v1.ResourceDescriptor target = 2; * @return Whether the target field is set. */ public boolean hasTarget() { return ((bitField0_ & 0x00000002) != 0); } /** * .in_toto_attestation.v1.ResourceDescriptor target = 2; * @return The target. */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getTarget() { if (targetBuilder_ == null) { return target_ == null ? io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance() : target_; } else { return targetBuilder_.getMessage(); } } /** * .in_toto_attestation.v1.ResourceDescriptor target = 2; */ public Builder setTarget(io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (targetBuilder_ == null) { if (value == null) { throw new NullPointerException(); } target_ = value; } else { targetBuilder_.setMessage(value); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .in_toto_attestation.v1.ResourceDescriptor target = 2; */ public Builder setTarget( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (targetBuilder_ == null) { target_ = builderForValue.build(); } else { targetBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .in_toto_attestation.v1.ResourceDescriptor target = 2; */ public Builder mergeTarget(io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (targetBuilder_ == null) { if (((bitField0_ & 0x00000002) != 0) && target_ != null && target_ != io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()) { getTargetBuilder().mergeFrom(value); } else { target_ = value; } } else { targetBuilder_.mergeFrom(value); } if (target_ != null) { bitField0_ |= 0x00000002; onChanged(); } return this; } /** * .in_toto_attestation.v1.ResourceDescriptor target = 2; */ public Builder clearTarget() { bitField0_ = (bitField0_ & ~0x00000002); target_ = null; if (targetBuilder_ != null) { targetBuilder_.dispose(); targetBuilder_ = null; } onChanged(); return this; } /** * .in_toto_attestation.v1.ResourceDescriptor target = 2; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder getTargetBuilder() { bitField0_ |= 0x00000002; onChanged(); return getTargetFieldBuilder().getBuilder(); } /** * .in_toto_attestation.v1.ResourceDescriptor target = 2; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getTargetOrBuilder() { if (targetBuilder_ != null) { return targetBuilder_.getMessageOrBuilder(); } else { return target_ == null ? io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance() : target_; } } /** * .in_toto_attestation.v1.ResourceDescriptor target = 2; */ private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> getTargetFieldBuilder() { if (targetBuilder_ == null) { targetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder>( getTarget(), getParentForChildren(), isClean()); target_ = null; } return targetBuilder_; } private com.google.protobuf.Struct conditions_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> conditionsBuilder_; /** * .google.protobuf.Struct conditions = 3; * @return Whether the conditions field is set. */ public boolean hasConditions() { return ((bitField0_ & 0x00000004) != 0); } /** * .google.protobuf.Struct conditions = 3; * @return The conditions. */ public com.google.protobuf.Struct getConditions() { if (conditionsBuilder_ == null) { return conditions_ == null ? com.google.protobuf.Struct.getDefaultInstance() : conditions_; } else { return conditionsBuilder_.getMessage(); } } /** * .google.protobuf.Struct conditions = 3; */ public Builder setConditions(com.google.protobuf.Struct value) { if (conditionsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } conditions_ = value; } else { conditionsBuilder_.setMessage(value); } bitField0_ |= 0x00000004; onChanged(); return this; } /** * .google.protobuf.Struct conditions = 3; */ public Builder setConditions( com.google.protobuf.Struct.Builder builderForValue) { if (conditionsBuilder_ == null) { conditions_ = builderForValue.build(); } else { conditionsBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000004; onChanged(); return this; } /** * .google.protobuf.Struct conditions = 3; */ public Builder mergeConditions(com.google.protobuf.Struct value) { if (conditionsBuilder_ == null) { if (((bitField0_ & 0x00000004) != 0) && conditions_ != null && conditions_ != com.google.protobuf.Struct.getDefaultInstance()) { getConditionsBuilder().mergeFrom(value); } else { conditions_ = value; } } else { conditionsBuilder_.mergeFrom(value); } if (conditions_ != null) { bitField0_ |= 0x00000004; onChanged(); } return this; } /** * .google.protobuf.Struct conditions = 3; */ public Builder clearConditions() { bitField0_ = (bitField0_ & ~0x00000004); conditions_ = null; if (conditionsBuilder_ != null) { conditionsBuilder_.dispose(); conditionsBuilder_ = null; } onChanged(); return this; } /** * .google.protobuf.Struct conditions = 3; */ public com.google.protobuf.Struct.Builder getConditionsBuilder() { bitField0_ |= 0x00000004; onChanged(); return getConditionsFieldBuilder().getBuilder(); } /** * .google.protobuf.Struct conditions = 3; */ public com.google.protobuf.StructOrBuilder getConditionsOrBuilder() { if (conditionsBuilder_ != null) { return conditionsBuilder_.getMessageOrBuilder(); } else { return conditions_ == null ? com.google.protobuf.Struct.getDefaultInstance() : conditions_; } } /** * .google.protobuf.Struct conditions = 3; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> getConditionsFieldBuilder() { if (conditionsBuilder_ == null) { conditionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder>( getConditions(), getParentForChildren(), isClean()); conditions_ = null; } return conditionsBuilder_; } private io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor evidence_; private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> evidenceBuilder_; /** * .in_toto_attestation.v1.ResourceDescriptor evidence = 4; * @return Whether the evidence field is set. */ public boolean hasEvidence() { return ((bitField0_ & 0x00000008) != 0); } /** * .in_toto_attestation.v1.ResourceDescriptor evidence = 4; * @return The evidence. */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getEvidence() { if (evidenceBuilder_ == null) { return evidence_ == null ? io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance() : evidence_; } else { return evidenceBuilder_.getMessage(); } } /** * .in_toto_attestation.v1.ResourceDescriptor evidence = 4; */ public Builder setEvidence(io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (evidenceBuilder_ == null) { if (value == null) { throw new NullPointerException(); } evidence_ = value; } else { evidenceBuilder_.setMessage(value); } bitField0_ |= 0x00000008; onChanged(); return this; } /** * .in_toto_attestation.v1.ResourceDescriptor evidence = 4; */ public Builder setEvidence( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (evidenceBuilder_ == null) { evidence_ = builderForValue.build(); } else { evidenceBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000008; onChanged(); return this; } /** * .in_toto_attestation.v1.ResourceDescriptor evidence = 4; */ public Builder mergeEvidence(io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (evidenceBuilder_ == null) { if (((bitField0_ & 0x00000008) != 0) && evidence_ != null && evidence_ != io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()) { getEvidenceBuilder().mergeFrom(value); } else { evidence_ = value; } } else { evidenceBuilder_.mergeFrom(value); } if (evidence_ != null) { bitField0_ |= 0x00000008; onChanged(); } return this; } /** * .in_toto_attestation.v1.ResourceDescriptor evidence = 4; */ public Builder clearEvidence() { bitField0_ = (bitField0_ & ~0x00000008); evidence_ = null; if (evidenceBuilder_ != null) { evidenceBuilder_.dispose(); evidenceBuilder_ = null; } onChanged(); return this; } /** * .in_toto_attestation.v1.ResourceDescriptor evidence = 4; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder getEvidenceBuilder() { bitField0_ |= 0x00000008; onChanged(); return getEvidenceFieldBuilder().getBuilder(); } /** * .in_toto_attestation.v1.ResourceDescriptor evidence = 4; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getEvidenceOrBuilder() { if (evidenceBuilder_ != null) { return evidenceBuilder_.getMessageOrBuilder(); } else { return evidence_ == null ? io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance() : evidence_; } } /** * .in_toto_attestation.v1.ResourceDescriptor evidence = 4; */ private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> getEvidenceFieldBuilder() { if (evidenceBuilder_ == null) { evidenceBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder>( getEvidence(), getParentForChildren(), isClean()); evidence_ = null; } return evidenceBuilder_; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.scai.v0.AttributeAssertion) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.scai.v0.AttributeAssertion) private static final io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion(); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public AttributeAssertion parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface AttributeReportOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.scai.v0.AttributeReport) com.google.protobuf.MessageOrBuilder { /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ java.util.List getAttributesList(); /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion getAttributes(int index); /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ int getAttributesCount(); /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ java.util.List getAttributesOrBuilderList(); /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertionOrBuilder getAttributesOrBuilder( int index); /** * .in_toto_attestation.v1.ResourceDescriptor producer = 2; * @return Whether the producer field is set. */ boolean hasProducer(); /** * .in_toto_attestation.v1.ResourceDescriptor producer = 2; * @return The producer. */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getProducer(); /** * .in_toto_attestation.v1.ResourceDescriptor producer = 2; */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getProducerOrBuilder(); } /** * Protobuf type {@code in_toto_attestation.predicates.scai.v0.AttributeReport} */ public static final class AttributeReport extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.scai.v0.AttributeReport) AttributeReportOrBuilder { private static final long serialVersionUID = 0L; // Use AttributeReport.newBuilder() to construct. private AttributeReport(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private AttributeReport() { attributes_ = java.util.Collections.emptyList(); } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new AttributeReport(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.scai.v0.Scai.internal_static_in_toto_attestation_predicates_scai_v0_AttributeReport_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.scai.v0.Scai.internal_static_in_toto_attestation_predicates_scai_v0_AttributeReport_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport.class, io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport.Builder.class); } private int bitField0_; public static final int ATTRIBUTES_FIELD_NUMBER = 1; @SuppressWarnings("serial") private java.util.List attributes_; /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ @java.lang.Override public java.util.List getAttributesList() { return attributes_; } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ @java.lang.Override public java.util.List getAttributesOrBuilderList() { return attributes_; } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ @java.lang.Override public int getAttributesCount() { return attributes_.size(); } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ @java.lang.Override public io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion getAttributes(int index) { return attributes_.get(index); } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ @java.lang.Override public io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertionOrBuilder getAttributesOrBuilder( int index) { return attributes_.get(index); } public static final int PRODUCER_FIELD_NUMBER = 2; private io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor producer_; /** * .in_toto_attestation.v1.ResourceDescriptor producer = 2; * @return Whether the producer field is set. */ @java.lang.Override public boolean hasProducer() { return ((bitField0_ & 0x00000001) != 0); } /** * .in_toto_attestation.v1.ResourceDescriptor producer = 2; * @return The producer. */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getProducer() { return producer_ == null ? io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance() : producer_; } /** * .in_toto_attestation.v1.ResourceDescriptor producer = 2; */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getProducerOrBuilder() { return producer_ == null ? io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance() : producer_; } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { for (int i = 0; i < attributes_.size(); i++) { output.writeMessage(1, attributes_.get(i)); } if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(2, getProducer()); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; for (int i = 0; i < attributes_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, attributes_.get(i)); } if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getProducer()); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport)) { return super.equals(obj); } io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport other = (io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport) obj; if (!getAttributesList() .equals(other.getAttributesList())) return false; if (hasProducer() != other.hasProducer()) return false; if (hasProducer()) { if (!getProducer() .equals(other.getProducer())) return false; } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); if (getAttributesCount() > 0) { hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER; hash = (53 * hash) + getAttributesList().hashCode(); } if (hasProducer()) { hash = (37 * hash) + PRODUCER_FIELD_NUMBER; hash = (53 * hash) + getProducer().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code in_toto_attestation.predicates.scai.v0.AttributeReport} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.scai.v0.AttributeReport) io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReportOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.scai.v0.Scai.internal_static_in_toto_attestation_predicates_scai_v0_AttributeReport_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.scai.v0.Scai.internal_static_in_toto_attestation_predicates_scai_v0_AttributeReport_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport.class, io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport.Builder.class); } // Construct using io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getAttributesFieldBuilder(); getProducerFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; if (attributesBuilder_ == null) { attributes_ = java.util.Collections.emptyList(); } else { attributes_ = null; attributesBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000001); producer_ = null; if (producerBuilder_ != null) { producerBuilder_.dispose(); producerBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.scai.v0.Scai.internal_static_in_toto_attestation_predicates_scai_v0_AttributeReport_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport build() { io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport buildPartial() { io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport result = new io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport(this); buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartialRepeatedFields(io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport result) { if (attributesBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { attributes_ = java.util.Collections.unmodifiableList(attributes_); bitField0_ = (bitField0_ & ~0x00000001); } result.attributes_ = attributes_; } else { result.attributes_ = attributesBuilder_.build(); } } private void buildPartial0(io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport result) { int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000002) != 0)) { result.producer_ = producerBuilder_ == null ? producer_ : producerBuilder_.build(); to_bitField0_ |= 0x00000001; } result.bitField0_ |= to_bitField0_; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport) { return mergeFrom((io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport other) { if (other == io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport.getDefaultInstance()) return this; if (attributesBuilder_ == null) { if (!other.attributes_.isEmpty()) { if (attributes_.isEmpty()) { attributes_ = other.attributes_; bitField0_ = (bitField0_ & ~0x00000001); } else { ensureAttributesIsMutable(); attributes_.addAll(other.attributes_); } onChanged(); } } else { if (!other.attributes_.isEmpty()) { if (attributesBuilder_.isEmpty()) { attributesBuilder_.dispose(); attributesBuilder_ = null; attributes_ = other.attributes_; bitField0_ = (bitField0_ & ~0x00000001); attributesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getAttributesFieldBuilder() : null; } else { attributesBuilder_.addAllMessages(other.attributes_); } } } if (other.hasProducer()) { mergeProducer(other.getProducer()); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion m = input.readMessage( io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.parser(), extensionRegistry); if (attributesBuilder_ == null) { ensureAttributesIsMutable(); attributes_.add(m); } else { attributesBuilder_.addMessage(m); } break; } // case 10 case 18: { input.readMessage( getProducerFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000002; break; } // case 18 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.util.List attributes_ = java.util.Collections.emptyList(); private void ensureAttributesIsMutable() { if (!((bitField0_ & 0x00000001) != 0)) { attributes_ = new java.util.ArrayList(attributes_); bitField0_ |= 0x00000001; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion, io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.Builder, io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertionOrBuilder> attributesBuilder_; /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public java.util.List getAttributesList() { if (attributesBuilder_ == null) { return java.util.Collections.unmodifiableList(attributes_); } else { return attributesBuilder_.getMessageList(); } } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public int getAttributesCount() { if (attributesBuilder_ == null) { return attributes_.size(); } else { return attributesBuilder_.getCount(); } } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion getAttributes(int index) { if (attributesBuilder_ == null) { return attributes_.get(index); } else { return attributesBuilder_.getMessage(index); } } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public Builder setAttributes( int index, io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion value) { if (attributesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureAttributesIsMutable(); attributes_.set(index, value); onChanged(); } else { attributesBuilder_.setMessage(index, value); } return this; } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public Builder setAttributes( int index, io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.Builder builderForValue) { if (attributesBuilder_ == null) { ensureAttributesIsMutable(); attributes_.set(index, builderForValue.build()); onChanged(); } else { attributesBuilder_.setMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public Builder addAttributes(io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion value) { if (attributesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureAttributesIsMutable(); attributes_.add(value); onChanged(); } else { attributesBuilder_.addMessage(value); } return this; } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public Builder addAttributes( int index, io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion value) { if (attributesBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureAttributesIsMutable(); attributes_.add(index, value); onChanged(); } else { attributesBuilder_.addMessage(index, value); } return this; } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public Builder addAttributes( io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.Builder builderForValue) { if (attributesBuilder_ == null) { ensureAttributesIsMutable(); attributes_.add(builderForValue.build()); onChanged(); } else { attributesBuilder_.addMessage(builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public Builder addAttributes( int index, io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.Builder builderForValue) { if (attributesBuilder_ == null) { ensureAttributesIsMutable(); attributes_.add(index, builderForValue.build()); onChanged(); } else { attributesBuilder_.addMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public Builder addAllAttributes( java.lang.Iterable values) { if (attributesBuilder_ == null) { ensureAttributesIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, attributes_); onChanged(); } else { attributesBuilder_.addAllMessages(values); } return this; } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public Builder clearAttributes() { if (attributesBuilder_ == null) { attributes_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); } else { attributesBuilder_.clear(); } return this; } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public Builder removeAttributes(int index) { if (attributesBuilder_ == null) { ensureAttributesIsMutable(); attributes_.remove(index); onChanged(); } else { attributesBuilder_.remove(index); } return this; } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.Builder getAttributesBuilder( int index) { return getAttributesFieldBuilder().getBuilder(index); } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertionOrBuilder getAttributesOrBuilder( int index) { if (attributesBuilder_ == null) { return attributes_.get(index); } else { return attributesBuilder_.getMessageOrBuilder(index); } } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public java.util.List getAttributesOrBuilderList() { if (attributesBuilder_ != null) { return attributesBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(attributes_); } } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.Builder addAttributesBuilder() { return getAttributesFieldBuilder().addBuilder( io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.getDefaultInstance()); } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.Builder addAttributesBuilder( int index) { return getAttributesFieldBuilder().addBuilder( index, io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.getDefaultInstance()); } /** * repeated .in_toto_attestation.predicates.scai.v0.AttributeAssertion attributes = 1; */ public java.util.List getAttributesBuilderList() { return getAttributesFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion, io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.Builder, io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertionOrBuilder> getAttributesFieldBuilder() { if (attributesBuilder_ == null) { attributesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion, io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertion.Builder, io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeAssertionOrBuilder>( attributes_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); attributes_ = null; } return attributesBuilder_; } private io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor producer_; private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> producerBuilder_; /** * .in_toto_attestation.v1.ResourceDescriptor producer = 2; * @return Whether the producer field is set. */ public boolean hasProducer() { return ((bitField0_ & 0x00000002) != 0); } /** * .in_toto_attestation.v1.ResourceDescriptor producer = 2; * @return The producer. */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getProducer() { if (producerBuilder_ == null) { return producer_ == null ? io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance() : producer_; } else { return producerBuilder_.getMessage(); } } /** * .in_toto_attestation.v1.ResourceDescriptor producer = 2; */ public Builder setProducer(io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (producerBuilder_ == null) { if (value == null) { throw new NullPointerException(); } producer_ = value; } else { producerBuilder_.setMessage(value); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .in_toto_attestation.v1.ResourceDescriptor producer = 2; */ public Builder setProducer( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (producerBuilder_ == null) { producer_ = builderForValue.build(); } else { producerBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .in_toto_attestation.v1.ResourceDescriptor producer = 2; */ public Builder mergeProducer(io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (producerBuilder_ == null) { if (((bitField0_ & 0x00000002) != 0) && producer_ != null && producer_ != io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()) { getProducerBuilder().mergeFrom(value); } else { producer_ = value; } } else { producerBuilder_.mergeFrom(value); } if (producer_ != null) { bitField0_ |= 0x00000002; onChanged(); } return this; } /** * .in_toto_attestation.v1.ResourceDescriptor producer = 2; */ public Builder clearProducer() { bitField0_ = (bitField0_ & ~0x00000002); producer_ = null; if (producerBuilder_ != null) { producerBuilder_.dispose(); producerBuilder_ = null; } onChanged(); return this; } /** * .in_toto_attestation.v1.ResourceDescriptor producer = 2; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder getProducerBuilder() { bitField0_ |= 0x00000002; onChanged(); return getProducerFieldBuilder().getBuilder(); } /** * .in_toto_attestation.v1.ResourceDescriptor producer = 2; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getProducerOrBuilder() { if (producerBuilder_ != null) { return producerBuilder_.getMessageOrBuilder(); } else { return producer_ == null ? io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance() : producer_; } } /** * .in_toto_attestation.v1.ResourceDescriptor producer = 2; */ private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> getProducerFieldBuilder() { if (producerBuilder_ == null) { producerBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder>( getProducer(), getParentForChildren(), isClean()); producer_ = null; } return producerBuilder_; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.scai.v0.AttributeReport) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.scai.v0.AttributeReport) private static final io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport(); } public static io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public AttributeReport parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.scai.v0.Scai.AttributeReport getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_scai_v0_AttributeAssertion_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_scai_v0_AttributeAssertion_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_scai_v0_AttributeReport_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_scai_v0_AttributeReport_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { return descriptor; } private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { java.lang.String[] descriptorData = { "\n1in_toto_attestation/predicates/scai/v0" + "/scai.proto\022&in_toto_attestation.predica" + "tes.scai.v0\032\034google/protobuf/struct.prot" + "o\0320in_toto_attestation/v1/resource_descr" + "iptor.proto\"\316\001\n\022AttributeAssertion\022\021\n\tat" + "tribute\030\001 \001(\t\022:\n\006target\030\002 \001(\0132*.in_toto_" + "attestation.v1.ResourceDescriptor\022+\n\ncon" + "ditions\030\003 \001(\0132\027.google.protobuf.Struct\022<" + "\n\010evidence\030\004 \001(\0132*.in_toto_attestation.v" + "1.ResourceDescriptor\"\237\001\n\017AttributeReport" + "\022N\n\nattributes\030\001 \003(\0132:.in_toto_attestati" + "on.predicates.scai.v0.AttributeAssertion" + "\022<\n\010producer\030\002 \001(\0132*.in_toto_attestation" + ".v1.ResourceDescriptorBg\n/io.github.into" + "to.attestation.predicates.scai.v0Z4githu" + "b.com/in-toto/attestation/go/predicates/" + "scai/v0b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { com.google.protobuf.StructProto.getDescriptor(), io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.getDescriptor(), }); internal_static_in_toto_attestation_predicates_scai_v0_AttributeAssertion_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_in_toto_attestation_predicates_scai_v0_AttributeAssertion_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_scai_v0_AttributeAssertion_descriptor, new java.lang.String[] { "Attribute", "Target", "Conditions", "Evidence", }); internal_static_in_toto_attestation_predicates_scai_v0_AttributeReport_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_in_toto_attestation_predicates_scai_v0_AttributeReport_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_scai_v0_AttributeReport_descriptor, new java.lang.String[] { "Attributes", "Producer", }); com.google.protobuf.StructProto.getDescriptor(); io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) } golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/test_result/000077500000000000000000000000001470602552500333575ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/test_result/v0/000077500000000000000000000000001470602552500337045ustar00rootroot00000000000000TestResultOuterClass.java000066400000000000000000002044151470602552500406210ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/test_result/v0// Generated by the protocol buffer compiler. DO NOT EDIT! // source: in_toto_attestation/predicates/test_result/v0/test_result.proto package io.github.intoto.attestation.predicates.test_result.v0; public final class TestResultOuterClass { private TestResultOuterClass() {} public static void registerAllExtensions( com.google.protobuf.ExtensionRegistryLite registry) { } public static void registerAllExtensions( com.google.protobuf.ExtensionRegistry registry) { registerAllExtensions( (com.google.protobuf.ExtensionRegistryLite) registry); } public interface TestResultOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.test_result.v0.TestResult) com.google.protobuf.MessageOrBuilder { /** * string result = 1; * @return The result. */ java.lang.String getResult(); /** * string result = 1; * @return The bytes for result. */ com.google.protobuf.ByteString getResultBytes(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ java.util.List getConfigurationList(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getConfiguration(int index); /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ int getConfigurationCount(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ java.util.List getConfigurationOrBuilderList(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getConfigurationOrBuilder( int index); /** * string url = 3; * @return The url. */ java.lang.String getUrl(); /** * string url = 3; * @return The bytes for url. */ com.google.protobuf.ByteString getUrlBytes(); /** * repeated string passed_tests = 4; * @return A list containing the passedTests. */ java.util.List getPassedTestsList(); /** * repeated string passed_tests = 4; * @return The count of passedTests. */ int getPassedTestsCount(); /** * repeated string passed_tests = 4; * @param index The index of the element to return. * @return The passedTests at the given index. */ java.lang.String getPassedTests(int index); /** * repeated string passed_tests = 4; * @param index The index of the value to return. * @return The bytes of the passedTests at the given index. */ com.google.protobuf.ByteString getPassedTestsBytes(int index); /** * repeated string warned_tests = 5; * @return A list containing the warnedTests. */ java.util.List getWarnedTestsList(); /** * repeated string warned_tests = 5; * @return The count of warnedTests. */ int getWarnedTestsCount(); /** * repeated string warned_tests = 5; * @param index The index of the element to return. * @return The warnedTests at the given index. */ java.lang.String getWarnedTests(int index); /** * repeated string warned_tests = 5; * @param index The index of the value to return. * @return The bytes of the warnedTests at the given index. */ com.google.protobuf.ByteString getWarnedTestsBytes(int index); /** * repeated string failed_tests = 6; * @return A list containing the failedTests. */ java.util.List getFailedTestsList(); /** * repeated string failed_tests = 6; * @return The count of failedTests. */ int getFailedTestsCount(); /** * repeated string failed_tests = 6; * @param index The index of the element to return. * @return The failedTests at the given index. */ java.lang.String getFailedTests(int index); /** * repeated string failed_tests = 6; * @param index The index of the value to return. * @return The bytes of the failedTests at the given index. */ com.google.protobuf.ByteString getFailedTestsBytes(int index); } /** * Protobuf type {@code in_toto_attestation.predicates.test_result.v0.TestResult} */ public static final class TestResult extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.test_result.v0.TestResult) TestResultOrBuilder { private static final long serialVersionUID = 0L; // Use TestResult.newBuilder() to construct. private TestResult(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private TestResult() { result_ = ""; configuration_ = java.util.Collections.emptyList(); url_ = ""; passedTests_ = com.google.protobuf.LazyStringArrayList.emptyList(); warnedTests_ = com.google.protobuf.LazyStringArrayList.emptyList(); failedTests_ = com.google.protobuf.LazyStringArrayList.emptyList(); } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new TestResult(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.internal_static_in_toto_attestation_predicates_test_result_v0_TestResult_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.internal_static_in_toto_attestation_predicates_test_result_v0_TestResult_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult.class, io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult.Builder.class); } public static final int RESULT_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object result_ = ""; /** * string result = 1; * @return The result. */ @java.lang.Override public java.lang.String getResult() { java.lang.Object ref = result_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); result_ = s; return s; } } /** * string result = 1; * @return The bytes for result. */ @java.lang.Override public com.google.protobuf.ByteString getResultBytes() { java.lang.Object ref = result_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); result_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int CONFIGURATION_FIELD_NUMBER = 2; @SuppressWarnings("serial") private java.util.List configuration_; /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ @java.lang.Override public java.util.List getConfigurationList() { return configuration_; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ @java.lang.Override public java.util.List getConfigurationOrBuilderList() { return configuration_; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ @java.lang.Override public int getConfigurationCount() { return configuration_.size(); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getConfiguration(int index) { return configuration_.get(index); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getConfigurationOrBuilder( int index) { return configuration_.get(index); } public static final int URL_FIELD_NUMBER = 3; @SuppressWarnings("serial") private volatile java.lang.Object url_ = ""; /** * string url = 3; * @return The url. */ @java.lang.Override public java.lang.String getUrl() { java.lang.Object ref = url_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); url_ = s; return s; } } /** * string url = 3; * @return The bytes for url. */ @java.lang.Override public com.google.protobuf.ByteString getUrlBytes() { java.lang.Object ref = url_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); url_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int PASSED_TESTS_FIELD_NUMBER = 4; @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList passedTests_ = com.google.protobuf.LazyStringArrayList.emptyList(); /** * repeated string passed_tests = 4; * @return A list containing the passedTests. */ public com.google.protobuf.ProtocolStringList getPassedTestsList() { return passedTests_; } /** * repeated string passed_tests = 4; * @return The count of passedTests. */ public int getPassedTestsCount() { return passedTests_.size(); } /** * repeated string passed_tests = 4; * @param index The index of the element to return. * @return The passedTests at the given index. */ public java.lang.String getPassedTests(int index) { return passedTests_.get(index); } /** * repeated string passed_tests = 4; * @param index The index of the value to return. * @return The bytes of the passedTests at the given index. */ public com.google.protobuf.ByteString getPassedTestsBytes(int index) { return passedTests_.getByteString(index); } public static final int WARNED_TESTS_FIELD_NUMBER = 5; @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList warnedTests_ = com.google.protobuf.LazyStringArrayList.emptyList(); /** * repeated string warned_tests = 5; * @return A list containing the warnedTests. */ public com.google.protobuf.ProtocolStringList getWarnedTestsList() { return warnedTests_; } /** * repeated string warned_tests = 5; * @return The count of warnedTests. */ public int getWarnedTestsCount() { return warnedTests_.size(); } /** * repeated string warned_tests = 5; * @param index The index of the element to return. * @return The warnedTests at the given index. */ public java.lang.String getWarnedTests(int index) { return warnedTests_.get(index); } /** * repeated string warned_tests = 5; * @param index The index of the value to return. * @return The bytes of the warnedTests at the given index. */ public com.google.protobuf.ByteString getWarnedTestsBytes(int index) { return warnedTests_.getByteString(index); } public static final int FAILED_TESTS_FIELD_NUMBER = 6; @SuppressWarnings("serial") private com.google.protobuf.LazyStringArrayList failedTests_ = com.google.protobuf.LazyStringArrayList.emptyList(); /** * repeated string failed_tests = 6; * @return A list containing the failedTests. */ public com.google.protobuf.ProtocolStringList getFailedTestsList() { return failedTests_; } /** * repeated string failed_tests = 6; * @return The count of failedTests. */ public int getFailedTestsCount() { return failedTests_.size(); } /** * repeated string failed_tests = 6; * @param index The index of the element to return. * @return The failedTests at the given index. */ public java.lang.String getFailedTests(int index) { return failedTests_.get(index); } /** * repeated string failed_tests = 6; * @param index The index of the value to return. * @return The bytes of the failedTests at the given index. */ public com.google.protobuf.ByteString getFailedTestsBytes(int index) { return failedTests_.getByteString(index); } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(result_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, result_); } for (int i = 0; i < configuration_.size(); i++) { output.writeMessage(2, configuration_.get(i)); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(url_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, url_); } for (int i = 0; i < passedTests_.size(); i++) { com.google.protobuf.GeneratedMessageV3.writeString(output, 4, passedTests_.getRaw(i)); } for (int i = 0; i < warnedTests_.size(); i++) { com.google.protobuf.GeneratedMessageV3.writeString(output, 5, warnedTests_.getRaw(i)); } for (int i = 0; i < failedTests_.size(); i++) { com.google.protobuf.GeneratedMessageV3.writeString(output, 6, failedTests_.getRaw(i)); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(result_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, result_); } for (int i = 0; i < configuration_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, configuration_.get(i)); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(url_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, url_); } { int dataSize = 0; for (int i = 0; i < passedTests_.size(); i++) { dataSize += computeStringSizeNoTag(passedTests_.getRaw(i)); } size += dataSize; size += 1 * getPassedTestsList().size(); } { int dataSize = 0; for (int i = 0; i < warnedTests_.size(); i++) { dataSize += computeStringSizeNoTag(warnedTests_.getRaw(i)); } size += dataSize; size += 1 * getWarnedTestsList().size(); } { int dataSize = 0; for (int i = 0; i < failedTests_.size(); i++) { dataSize += computeStringSizeNoTag(failedTests_.getRaw(i)); } size += dataSize; size += 1 * getFailedTestsList().size(); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult)) { return super.equals(obj); } io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult other = (io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult) obj; if (!getResult() .equals(other.getResult())) return false; if (!getConfigurationList() .equals(other.getConfigurationList())) return false; if (!getUrl() .equals(other.getUrl())) return false; if (!getPassedTestsList() .equals(other.getPassedTestsList())) return false; if (!getWarnedTestsList() .equals(other.getWarnedTestsList())) return false; if (!getFailedTestsList() .equals(other.getFailedTestsList())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + RESULT_FIELD_NUMBER; hash = (53 * hash) + getResult().hashCode(); if (getConfigurationCount() > 0) { hash = (37 * hash) + CONFIGURATION_FIELD_NUMBER; hash = (53 * hash) + getConfigurationList().hashCode(); } hash = (37 * hash) + URL_FIELD_NUMBER; hash = (53 * hash) + getUrl().hashCode(); if (getPassedTestsCount() > 0) { hash = (37 * hash) + PASSED_TESTS_FIELD_NUMBER; hash = (53 * hash) + getPassedTestsList().hashCode(); } if (getWarnedTestsCount() > 0) { hash = (37 * hash) + WARNED_TESTS_FIELD_NUMBER; hash = (53 * hash) + getWarnedTestsList().hashCode(); } if (getFailedTestsCount() > 0) { hash = (37 * hash) + FAILED_TESTS_FIELD_NUMBER; hash = (53 * hash) + getFailedTestsList().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code in_toto_attestation.predicates.test_result.v0.TestResult} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.test_result.v0.TestResult) io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResultOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.internal_static_in_toto_attestation_predicates_test_result_v0_TestResult_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.internal_static_in_toto_attestation_predicates_test_result_v0_TestResult_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult.class, io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult.Builder.class); } // Construct using io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult.newBuilder() private Builder() { } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; result_ = ""; if (configurationBuilder_ == null) { configuration_ = java.util.Collections.emptyList(); } else { configuration_ = null; configurationBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000002); url_ = ""; passedTests_ = com.google.protobuf.LazyStringArrayList.emptyList(); warnedTests_ = com.google.protobuf.LazyStringArrayList.emptyList(); failedTests_ = com.google.protobuf.LazyStringArrayList.emptyList(); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.internal_static_in_toto_attestation_predicates_test_result_v0_TestResult_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult build() { io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult buildPartial() { io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult result = new io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult(this); buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartialRepeatedFields(io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult result) { if (configurationBuilder_ == null) { if (((bitField0_ & 0x00000002) != 0)) { configuration_ = java.util.Collections.unmodifiableList(configuration_); bitField0_ = (bitField0_ & ~0x00000002); } result.configuration_ = configuration_; } else { result.configuration_ = configurationBuilder_.build(); } } private void buildPartial0(io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.result_ = result_; } if (((from_bitField0_ & 0x00000004) != 0)) { result.url_ = url_; } if (((from_bitField0_ & 0x00000008) != 0)) { passedTests_.makeImmutable(); result.passedTests_ = passedTests_; } if (((from_bitField0_ & 0x00000010) != 0)) { warnedTests_.makeImmutable(); result.warnedTests_ = warnedTests_; } if (((from_bitField0_ & 0x00000020) != 0)) { failedTests_.makeImmutable(); result.failedTests_ = failedTests_; } } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult) { return mergeFrom((io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult other) { if (other == io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult.getDefaultInstance()) return this; if (!other.getResult().isEmpty()) { result_ = other.result_; bitField0_ |= 0x00000001; onChanged(); } if (configurationBuilder_ == null) { if (!other.configuration_.isEmpty()) { if (configuration_.isEmpty()) { configuration_ = other.configuration_; bitField0_ = (bitField0_ & ~0x00000002); } else { ensureConfigurationIsMutable(); configuration_.addAll(other.configuration_); } onChanged(); } } else { if (!other.configuration_.isEmpty()) { if (configurationBuilder_.isEmpty()) { configurationBuilder_.dispose(); configurationBuilder_ = null; configuration_ = other.configuration_; bitField0_ = (bitField0_ & ~0x00000002); configurationBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getConfigurationFieldBuilder() : null; } else { configurationBuilder_.addAllMessages(other.configuration_); } } } if (!other.getUrl().isEmpty()) { url_ = other.url_; bitField0_ |= 0x00000004; onChanged(); } if (!other.passedTests_.isEmpty()) { if (passedTests_.isEmpty()) { passedTests_ = other.passedTests_; bitField0_ |= 0x00000008; } else { ensurePassedTestsIsMutable(); passedTests_.addAll(other.passedTests_); } onChanged(); } if (!other.warnedTests_.isEmpty()) { if (warnedTests_.isEmpty()) { warnedTests_ = other.warnedTests_; bitField0_ |= 0x00000010; } else { ensureWarnedTestsIsMutable(); warnedTests_.addAll(other.warnedTests_); } onChanged(); } if (!other.failedTests_.isEmpty()) { if (failedTests_.isEmpty()) { failedTests_ = other.failedTests_; bitField0_ |= 0x00000020; } else { ensureFailedTestsIsMutable(); failedTests_.addAll(other.failedTests_); } onChanged(); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { result_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 case 18: { io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor m = input.readMessage( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.parser(), extensionRegistry); if (configurationBuilder_ == null) { ensureConfigurationIsMutable(); configuration_.add(m); } else { configurationBuilder_.addMessage(m); } break; } // case 18 case 26: { url_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000004; break; } // case 26 case 34: { java.lang.String s = input.readStringRequireUtf8(); ensurePassedTestsIsMutable(); passedTests_.add(s); break; } // case 34 case 42: { java.lang.String s = input.readStringRequireUtf8(); ensureWarnedTestsIsMutable(); warnedTests_.add(s); break; } // case 42 case 50: { java.lang.String s = input.readStringRequireUtf8(); ensureFailedTestsIsMutable(); failedTests_.add(s); break; } // case 50 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object result_ = ""; /** * string result = 1; * @return The result. */ public java.lang.String getResult() { java.lang.Object ref = result_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); result_ = s; return s; } else { return (java.lang.String) ref; } } /** * string result = 1; * @return The bytes for result. */ public com.google.protobuf.ByteString getResultBytes() { java.lang.Object ref = result_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); result_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string result = 1; * @param value The result to set. * @return This builder for chaining. */ public Builder setResult( java.lang.String value) { if (value == null) { throw new NullPointerException(); } result_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** * string result = 1; * @return This builder for chaining. */ public Builder clearResult() { result_ = getDefaultInstance().getResult(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** * string result = 1; * @param value The bytes for result to set. * @return This builder for chaining. */ public Builder setResultBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); result_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } private java.util.List configuration_ = java.util.Collections.emptyList(); private void ensureConfigurationIsMutable() { if (!((bitField0_ & 0x00000002) != 0)) { configuration_ = new java.util.ArrayList(configuration_); bitField0_ |= 0x00000002; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> configurationBuilder_; /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public java.util.List getConfigurationList() { if (configurationBuilder_ == null) { return java.util.Collections.unmodifiableList(configuration_); } else { return configurationBuilder_.getMessageList(); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public int getConfigurationCount() { if (configurationBuilder_ == null) { return configuration_.size(); } else { return configurationBuilder_.getCount(); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getConfiguration(int index) { if (configurationBuilder_ == null) { return configuration_.get(index); } else { return configurationBuilder_.getMessage(index); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public Builder setConfiguration( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (configurationBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureConfigurationIsMutable(); configuration_.set(index, value); onChanged(); } else { configurationBuilder_.setMessage(index, value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public Builder setConfiguration( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (configurationBuilder_ == null) { ensureConfigurationIsMutable(); configuration_.set(index, builderForValue.build()); onChanged(); } else { configurationBuilder_.setMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public Builder addConfiguration(io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (configurationBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureConfigurationIsMutable(); configuration_.add(value); onChanged(); } else { configurationBuilder_.addMessage(value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public Builder addConfiguration( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (configurationBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureConfigurationIsMutable(); configuration_.add(index, value); onChanged(); } else { configurationBuilder_.addMessage(index, value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public Builder addConfiguration( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (configurationBuilder_ == null) { ensureConfigurationIsMutable(); configuration_.add(builderForValue.build()); onChanged(); } else { configurationBuilder_.addMessage(builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public Builder addConfiguration( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (configurationBuilder_ == null) { ensureConfigurationIsMutable(); configuration_.add(index, builderForValue.build()); onChanged(); } else { configurationBuilder_.addMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public Builder addAllConfiguration( java.lang.Iterable values) { if (configurationBuilder_ == null) { ensureConfigurationIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, configuration_); onChanged(); } else { configurationBuilder_.addAllMessages(values); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public Builder clearConfiguration() { if (configurationBuilder_ == null) { configuration_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000002); onChanged(); } else { configurationBuilder_.clear(); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public Builder removeConfiguration(int index) { if (configurationBuilder_ == null) { ensureConfigurationIsMutable(); configuration_.remove(index); onChanged(); } else { configurationBuilder_.remove(index); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder getConfigurationBuilder( int index) { return getConfigurationFieldBuilder().getBuilder(index); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getConfigurationOrBuilder( int index) { if (configurationBuilder_ == null) { return configuration_.get(index); } else { return configurationBuilder_.getMessageOrBuilder(index); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public java.util.List getConfigurationOrBuilderList() { if (configurationBuilder_ != null) { return configurationBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(configuration_); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder addConfigurationBuilder() { return getConfigurationFieldBuilder().addBuilder( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder addConfigurationBuilder( int index) { return getConfigurationFieldBuilder().addBuilder( index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor configuration = 2; */ public java.util.List getConfigurationBuilderList() { return getConfigurationFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> getConfigurationFieldBuilder() { if (configurationBuilder_ == null) { configurationBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder>( configuration_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); configuration_ = null; } return configurationBuilder_; } private java.lang.Object url_ = ""; /** * string url = 3; * @return The url. */ public java.lang.String getUrl() { java.lang.Object ref = url_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); url_ = s; return s; } else { return (java.lang.String) ref; } } /** * string url = 3; * @return The bytes for url. */ public com.google.protobuf.ByteString getUrlBytes() { java.lang.Object ref = url_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); url_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string url = 3; * @param value The url to set. * @return This builder for chaining. */ public Builder setUrl( java.lang.String value) { if (value == null) { throw new NullPointerException(); } url_ = value; bitField0_ |= 0x00000004; onChanged(); return this; } /** * string url = 3; * @return This builder for chaining. */ public Builder clearUrl() { url_ = getDefaultInstance().getUrl(); bitField0_ = (bitField0_ & ~0x00000004); onChanged(); return this; } /** * string url = 3; * @param value The bytes for url to set. * @return This builder for chaining. */ public Builder setUrlBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); url_ = value; bitField0_ |= 0x00000004; onChanged(); return this; } private com.google.protobuf.LazyStringArrayList passedTests_ = com.google.protobuf.LazyStringArrayList.emptyList(); private void ensurePassedTestsIsMutable() { if (!passedTests_.isModifiable()) { passedTests_ = new com.google.protobuf.LazyStringArrayList(passedTests_); } bitField0_ |= 0x00000008; } /** * repeated string passed_tests = 4; * @return A list containing the passedTests. */ public com.google.protobuf.ProtocolStringList getPassedTestsList() { passedTests_.makeImmutable(); return passedTests_; } /** * repeated string passed_tests = 4; * @return The count of passedTests. */ public int getPassedTestsCount() { return passedTests_.size(); } /** * repeated string passed_tests = 4; * @param index The index of the element to return. * @return The passedTests at the given index. */ public java.lang.String getPassedTests(int index) { return passedTests_.get(index); } /** * repeated string passed_tests = 4; * @param index The index of the value to return. * @return The bytes of the passedTests at the given index. */ public com.google.protobuf.ByteString getPassedTestsBytes(int index) { return passedTests_.getByteString(index); } /** * repeated string passed_tests = 4; * @param index The index to set the value at. * @param value The passedTests to set. * @return This builder for chaining. */ public Builder setPassedTests( int index, java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensurePassedTestsIsMutable(); passedTests_.set(index, value); bitField0_ |= 0x00000008; onChanged(); return this; } /** * repeated string passed_tests = 4; * @param value The passedTests to add. * @return This builder for chaining. */ public Builder addPassedTests( java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensurePassedTestsIsMutable(); passedTests_.add(value); bitField0_ |= 0x00000008; onChanged(); return this; } /** * repeated string passed_tests = 4; * @param values The passedTests to add. * @return This builder for chaining. */ public Builder addAllPassedTests( java.lang.Iterable values) { ensurePassedTestsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, passedTests_); bitField0_ |= 0x00000008; onChanged(); return this; } /** * repeated string passed_tests = 4; * @return This builder for chaining. */ public Builder clearPassedTests() { passedTests_ = com.google.protobuf.LazyStringArrayList.emptyList(); bitField0_ = (bitField0_ & ~0x00000008);; onChanged(); return this; } /** * repeated string passed_tests = 4; * @param value The bytes of the passedTests to add. * @return This builder for chaining. */ public Builder addPassedTestsBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); ensurePassedTestsIsMutable(); passedTests_.add(value); bitField0_ |= 0x00000008; onChanged(); return this; } private com.google.protobuf.LazyStringArrayList warnedTests_ = com.google.protobuf.LazyStringArrayList.emptyList(); private void ensureWarnedTestsIsMutable() { if (!warnedTests_.isModifiable()) { warnedTests_ = new com.google.protobuf.LazyStringArrayList(warnedTests_); } bitField0_ |= 0x00000010; } /** * repeated string warned_tests = 5; * @return A list containing the warnedTests. */ public com.google.protobuf.ProtocolStringList getWarnedTestsList() { warnedTests_.makeImmutable(); return warnedTests_; } /** * repeated string warned_tests = 5; * @return The count of warnedTests. */ public int getWarnedTestsCount() { return warnedTests_.size(); } /** * repeated string warned_tests = 5; * @param index The index of the element to return. * @return The warnedTests at the given index. */ public java.lang.String getWarnedTests(int index) { return warnedTests_.get(index); } /** * repeated string warned_tests = 5; * @param index The index of the value to return. * @return The bytes of the warnedTests at the given index. */ public com.google.protobuf.ByteString getWarnedTestsBytes(int index) { return warnedTests_.getByteString(index); } /** * repeated string warned_tests = 5; * @param index The index to set the value at. * @param value The warnedTests to set. * @return This builder for chaining. */ public Builder setWarnedTests( int index, java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureWarnedTestsIsMutable(); warnedTests_.set(index, value); bitField0_ |= 0x00000010; onChanged(); return this; } /** * repeated string warned_tests = 5; * @param value The warnedTests to add. * @return This builder for chaining. */ public Builder addWarnedTests( java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureWarnedTestsIsMutable(); warnedTests_.add(value); bitField0_ |= 0x00000010; onChanged(); return this; } /** * repeated string warned_tests = 5; * @param values The warnedTests to add. * @return This builder for chaining. */ public Builder addAllWarnedTests( java.lang.Iterable values) { ensureWarnedTestsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, warnedTests_); bitField0_ |= 0x00000010; onChanged(); return this; } /** * repeated string warned_tests = 5; * @return This builder for chaining. */ public Builder clearWarnedTests() { warnedTests_ = com.google.protobuf.LazyStringArrayList.emptyList(); bitField0_ = (bitField0_ & ~0x00000010);; onChanged(); return this; } /** * repeated string warned_tests = 5; * @param value The bytes of the warnedTests to add. * @return This builder for chaining. */ public Builder addWarnedTestsBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); ensureWarnedTestsIsMutable(); warnedTests_.add(value); bitField0_ |= 0x00000010; onChanged(); return this; } private com.google.protobuf.LazyStringArrayList failedTests_ = com.google.protobuf.LazyStringArrayList.emptyList(); private void ensureFailedTestsIsMutable() { if (!failedTests_.isModifiable()) { failedTests_ = new com.google.protobuf.LazyStringArrayList(failedTests_); } bitField0_ |= 0x00000020; } /** * repeated string failed_tests = 6; * @return A list containing the failedTests. */ public com.google.protobuf.ProtocolStringList getFailedTestsList() { failedTests_.makeImmutable(); return failedTests_; } /** * repeated string failed_tests = 6; * @return The count of failedTests. */ public int getFailedTestsCount() { return failedTests_.size(); } /** * repeated string failed_tests = 6; * @param index The index of the element to return. * @return The failedTests at the given index. */ public java.lang.String getFailedTests(int index) { return failedTests_.get(index); } /** * repeated string failed_tests = 6; * @param index The index of the value to return. * @return The bytes of the failedTests at the given index. */ public com.google.protobuf.ByteString getFailedTestsBytes(int index) { return failedTests_.getByteString(index); } /** * repeated string failed_tests = 6; * @param index The index to set the value at. * @param value The failedTests to set. * @return This builder for chaining. */ public Builder setFailedTests( int index, java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureFailedTestsIsMutable(); failedTests_.set(index, value); bitField0_ |= 0x00000020; onChanged(); return this; } /** * repeated string failed_tests = 6; * @param value The failedTests to add. * @return This builder for chaining. */ public Builder addFailedTests( java.lang.String value) { if (value == null) { throw new NullPointerException(); } ensureFailedTestsIsMutable(); failedTests_.add(value); bitField0_ |= 0x00000020; onChanged(); return this; } /** * repeated string failed_tests = 6; * @param values The failedTests to add. * @return This builder for chaining. */ public Builder addAllFailedTests( java.lang.Iterable values) { ensureFailedTestsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, failedTests_); bitField0_ |= 0x00000020; onChanged(); return this; } /** * repeated string failed_tests = 6; * @return This builder for chaining. */ public Builder clearFailedTests() { failedTests_ = com.google.protobuf.LazyStringArrayList.emptyList(); bitField0_ = (bitField0_ & ~0x00000020);; onChanged(); return this; } /** * repeated string failed_tests = 6; * @param value The bytes of the failedTests to add. * @return This builder for chaining. */ public Builder addFailedTestsBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); ensureFailedTestsIsMutable(); failedTests_.add(value); bitField0_ |= 0x00000020; onChanged(); return this; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.test_result.v0.TestResult) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.test_result.v0.TestResult) private static final io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult(); } public static io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public TestResult parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.test_result.v0.TestResultOuterClass.TestResult getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_test_result_v0_TestResult_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_test_result_v0_TestResult_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { return descriptor; } private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { java.lang.String[] descriptorData = { "\n?in_toto_attestation/predicates/test_re" + "sult/v0/test_result.proto\022-in_toto_attes" + "tation.predicates.test_result.v0\0320in_tot" + "o_attestation/v1/resource_descriptor.pro" + "to\"\256\001\n\nTestResult\022\016\n\006result\030\001 \001(\t\022A\n\rcon" + "figuration\030\002 \003(\0132*.in_toto_attestation.v" + "1.ResourceDescriptor\022\013\n\003url\030\003 \001(\t\022\024\n\014pas" + "sed_tests\030\004 \003(\t\022\024\n\014warned_tests\030\005 \003(\t\022\024\n" + "\014failed_tests\030\006 \003(\tBu\n6io.github.intoto." + "attestation.predicates.test_result.v0Z;g" + "ithub.com/in-toto/attestation/go/predica" + "tes/test_result/v0b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.getDescriptor(), }); internal_static_in_toto_attestation_predicates_test_result_v0_TestResult_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_in_toto_attestation_predicates_test_result_v0_TestResult_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_test_result_v0_TestResult_descriptor, new java.lang.String[] { "Result", "Configuration", "Url", "PassedTests", "WarnedTests", "FailedTests", }); io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) } golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/vsa/000077500000000000000000000000001470602552500315735ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/vsa/v0/000077500000000000000000000000001470602552500321205ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/vsa/v0/Vsa.java000066400000000000000000005635101470602552500335260ustar00rootroot00000000000000// Generated by the protocol buffer compiler. DO NOT EDIT! // source: in_toto_attestation/predicates/vsa/v0/vsa.proto package io.github.intoto.attestation.predicates.vsa.v0; public final class Vsa { private Vsa() {} public static void registerAllExtensions( com.google.protobuf.ExtensionRegistryLite registry) { } public static void registerAllExtensions( com.google.protobuf.ExtensionRegistry registry) { registerAllExtensions( (com.google.protobuf.ExtensionRegistryLite) registry); } public interface VerificationSummaryOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.vsa.v0.VerificationSummary) com.google.protobuf.MessageOrBuilder { /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier verifier = 1; * @return Whether the verifier field is set. */ boolean hasVerifier(); /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier verifier = 1; * @return The verifier. */ io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier getVerifier(); /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier verifier = 1; */ io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.VerifierOrBuilder getVerifierOrBuilder(); /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; * @return Whether the timeVerified field is set. */ boolean hasTimeVerified(); /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; * @return The timeVerified. */ com.google.protobuf.Timestamp getTimeVerified(); /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; */ com.google.protobuf.TimestampOrBuilder getTimeVerifiedOrBuilder(); /** * string resource_uri = 3 [json_name = "resource_uri"]; * @return The resourceUri. */ java.lang.String getResourceUri(); /** * string resource_uri = 3 [json_name = "resource_uri"]; * @return The bytes for resourceUri. */ com.google.protobuf.ByteString getResourceUriBytes(); /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy policy = 4; * @return Whether the policy field is set. */ boolean hasPolicy(); /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy policy = 4; * @return The policy. */ io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy getPolicy(); /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy policy = 4; */ io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.PolicyOrBuilder getPolicyOrBuilder(); /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ java.util.List getInputAttestationsList(); /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation getInputAttestations(int index); /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ int getInputAttestationsCount(); /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ java.util.List getInputAttestationsOrBuilderList(); /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestationOrBuilder getInputAttestationsOrBuilder( int index); /** * string verification_result = 6 [json_name = "verification_result"]; * @return The verificationResult. */ java.lang.String getVerificationResult(); /** * string verification_result = 6 [json_name = "verification_result"]; * @return The bytes for verificationResult. */ com.google.protobuf.ByteString getVerificationResultBytes(); /** * string policy_level = 7 [json_name = "policy_level"]; * @return The policyLevel. */ java.lang.String getPolicyLevel(); /** * string policy_level = 7 [json_name = "policy_level"]; * @return The bytes for policyLevel. */ com.google.protobuf.ByteString getPolicyLevelBytes(); /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ int getDependencyLevelsCount(); /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ boolean containsDependencyLevels( java.lang.String key); /** * Use {@link #getDependencyLevelsMap()} instead. */ @java.lang.Deprecated java.util.Map getDependencyLevels(); /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ java.util.Map getDependencyLevelsMap(); /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ long getDependencyLevelsOrDefault( java.lang.String key, long defaultValue); /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ long getDependencyLevelsOrThrow( java.lang.String key); } /** *
   * Proto representation of predicate type https://slsa.dev/verification_summary/v0.2
   * Validation of all fields is left to the users of this proto.
   * 
* * Protobuf type {@code in_toto_attestation.predicates.vsa.v0.VerificationSummary} */ public static final class VerificationSummary extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.vsa.v0.VerificationSummary) VerificationSummaryOrBuilder { private static final long serialVersionUID = 0L; // Use VerificationSummary.newBuilder() to construct. private VerificationSummary(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private VerificationSummary() { resourceUri_ = ""; inputAttestations_ = java.util.Collections.emptyList(); verificationResult_ = ""; policyLevel_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new VerificationSummary(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_descriptor; } @SuppressWarnings({"rawtypes"}) @java.lang.Override protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 8: return internalGetDependencyLevels(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.class, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Builder.class); } public interface VerifierOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier) com.google.protobuf.MessageOrBuilder { /** * string id = 1; * @return The id. */ java.lang.String getId(); /** * string id = 1; * @return The bytes for id. */ com.google.protobuf.ByteString getIdBytes(); } /** * Protobuf type {@code in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier} */ public static final class Verifier extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier) VerifierOrBuilder { private static final long serialVersionUID = 0L; // Use Verifier.newBuilder() to construct. private Verifier(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Verifier() { id_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new Verifier(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Verifier_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Verifier_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.class, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.Builder.class); } public static final int ID_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object id_ = ""; /** * string id = 1; * @return The id. */ @java.lang.Override public java.lang.String getId() { java.lang.Object ref = id_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); id_ = s; return s; } } /** * string id = 1; * @return The bytes for id. */ @java.lang.Override public com.google.protobuf.ByteString getIdBytes() { java.lang.Object ref = id_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); id_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier)) { return super.equals(obj); } io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier other = (io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier) obj; if (!getId() .equals(other.getId())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + ID_FIELD_NUMBER; hash = (53 * hash) + getId().hashCode(); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier) io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.VerifierOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Verifier_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Verifier_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.class, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.Builder.class); } // Construct using io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.newBuilder() private Builder() { } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; id_ = ""; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Verifier_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier build() { io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier buildPartial() { io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier result = new io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartial0(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.id_ = id_; } } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier) { return mergeFrom((io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier other) { if (other == io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.getDefaultInstance()) return this; if (!other.getId().isEmpty()) { id_ = other.id_; bitField0_ |= 0x00000001; onChanged(); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { id_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object id_ = ""; /** * string id = 1; * @return The id. */ public java.lang.String getId() { java.lang.Object ref = id_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); id_ = s; return s; } else { return (java.lang.String) ref; } } /** * string id = 1; * @return The bytes for id. */ public com.google.protobuf.ByteString getIdBytes() { java.lang.Object ref = id_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); id_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string id = 1; * @param value The id to set. * @return This builder for chaining. */ public Builder setId( java.lang.String value) { if (value == null) { throw new NullPointerException(); } id_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** * string id = 1; * @return This builder for chaining. */ public Builder clearId() { id_ = getDefaultInstance().getId(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** * string id = 1; * @param value The bytes for id to set. * @return This builder for chaining. */ public Builder setIdBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); id_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier) private static final io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier(); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public Verifier parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface PolicyOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy) com.google.protobuf.MessageOrBuilder { /** * string uri = 1; * @return The uri. */ java.lang.String getUri(); /** * string uri = 1; * @return The bytes for uri. */ com.google.protobuf.ByteString getUriBytes(); /** * map<string, string> digest = 2; */ int getDigestCount(); /** * map<string, string> digest = 2; */ boolean containsDigest( java.lang.String key); /** * Use {@link #getDigestMap()} instead. */ @java.lang.Deprecated java.util.Map getDigest(); /** * map<string, string> digest = 2; */ java.util.Map getDigestMap(); /** * map<string, string> digest = 2; */ /* nullable */ java.lang.String getDigestOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue); /** * map<string, string> digest = 2; */ java.lang.String getDigestOrThrow( java.lang.String key); } /** * Protobuf type {@code in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy} */ public static final class Policy extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy) PolicyOrBuilder { private static final long serialVersionUID = 0L; // Use Policy.newBuilder() to construct. private Policy(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Policy() { uri_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new Policy(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_descriptor; } @SuppressWarnings({"rawtypes"}) @java.lang.Override protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 2: return internalGetDigest(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.class, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.Builder.class); } public static final int URI_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object uri_ = ""; /** * string uri = 1; * @return The uri. */ @java.lang.Override public java.lang.String getUri() { java.lang.Object ref = uri_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); uri_ = s; return s; } } /** * string uri = 1; * @return The bytes for uri. */ @java.lang.Override public com.google.protobuf.ByteString getUriBytes() { java.lang.Object ref = uri_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); uri_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int DIGEST_FIELD_NUMBER = 2; private static final class DigestDefaultEntryHolder { static final com.google.protobuf.MapEntry< java.lang.String, java.lang.String> defaultEntry = com.google.protobuf.MapEntry .newDefaultInstance( io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_DigestEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.STRING, ""); } @SuppressWarnings("serial") private com.google.protobuf.MapField< java.lang.String, java.lang.String> digest_; private com.google.protobuf.MapField internalGetDigest() { if (digest_ == null) { return com.google.protobuf.MapField.emptyMapField( DigestDefaultEntryHolder.defaultEntry); } return digest_; } public int getDigestCount() { return internalGetDigest().getMap().size(); } /** * map<string, string> digest = 2; */ @java.lang.Override public boolean containsDigest( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetDigest().getMap().containsKey(key); } /** * Use {@link #getDigestMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getDigest() { return getDigestMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public java.util.Map getDigestMap() { return internalGetDigest().getMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public /* nullable */ java.lang.String getDigestOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, string> digest = 2; */ @java.lang.Override public java.lang.String getDigestOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uri_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uri_); } com.google.protobuf.GeneratedMessageV3 .serializeStringMapTo( output, internalGetDigest(), DigestDefaultEntryHolder.defaultEntry, 2); getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uri_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uri_); } for (java.util.Map.Entry entry : internalGetDigest().getMap().entrySet()) { com.google.protobuf.MapEntry digest__ = DigestDefaultEntryHolder.defaultEntry.newBuilderForType() .setKey(entry.getKey()) .setValue(entry.getValue()) .build(); size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, digest__); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy)) { return super.equals(obj); } io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy other = (io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy) obj; if (!getUri() .equals(other.getUri())) return false; if (!internalGetDigest().equals( other.internalGetDigest())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + URI_FIELD_NUMBER; hash = (53 * hash) + getUri().hashCode(); if (!internalGetDigest().getMap().isEmpty()) { hash = (37 * hash) + DIGEST_FIELD_NUMBER; hash = (53 * hash) + internalGetDigest().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy) io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.PolicyOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_descriptor; } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 2: return internalGetDigest(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMutableMapField( int number) { switch (number) { case 2: return internalGetMutableDigest(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.class, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.Builder.class); } // Construct using io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.newBuilder() private Builder() { } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; uri_ = ""; internalGetMutableDigest().clear(); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy build() { io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy buildPartial() { io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy result = new io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartial0(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.uri_ = uri_; } if (((from_bitField0_ & 0x00000002) != 0)) { result.digest_ = internalGetDigest(); result.digest_.makeImmutable(); } } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy) { return mergeFrom((io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy other) { if (other == io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.getDefaultInstance()) return this; if (!other.getUri().isEmpty()) { uri_ = other.uri_; bitField0_ |= 0x00000001; onChanged(); } internalGetMutableDigest().mergeFrom( other.internalGetDigest()); bitField0_ |= 0x00000002; this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { uri_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 case 18: { com.google.protobuf.MapEntry digest__ = input.readMessage( DigestDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); internalGetMutableDigest().getMutableMap().put( digest__.getKey(), digest__.getValue()); bitField0_ |= 0x00000002; break; } // case 18 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object uri_ = ""; /** * string uri = 1; * @return The uri. */ public java.lang.String getUri() { java.lang.Object ref = uri_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); uri_ = s; return s; } else { return (java.lang.String) ref; } } /** * string uri = 1; * @return The bytes for uri. */ public com.google.protobuf.ByteString getUriBytes() { java.lang.Object ref = uri_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); uri_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string uri = 1; * @param value The uri to set. * @return This builder for chaining. */ public Builder setUri( java.lang.String value) { if (value == null) { throw new NullPointerException(); } uri_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** * string uri = 1; * @return This builder for chaining. */ public Builder clearUri() { uri_ = getDefaultInstance().getUri(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** * string uri = 1; * @param value The bytes for uri to set. * @return This builder for chaining. */ public Builder setUriBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); uri_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } private com.google.protobuf.MapField< java.lang.String, java.lang.String> digest_; private com.google.protobuf.MapField internalGetDigest() { if (digest_ == null) { return com.google.protobuf.MapField.emptyMapField( DigestDefaultEntryHolder.defaultEntry); } return digest_; } private com.google.protobuf.MapField internalGetMutableDigest() { if (digest_ == null) { digest_ = com.google.protobuf.MapField.newMapField( DigestDefaultEntryHolder.defaultEntry); } if (!digest_.isMutable()) { digest_ = digest_.copy(); } bitField0_ |= 0x00000002; onChanged(); return digest_; } public int getDigestCount() { return internalGetDigest().getMap().size(); } /** * map<string, string> digest = 2; */ @java.lang.Override public boolean containsDigest( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetDigest().getMap().containsKey(key); } /** * Use {@link #getDigestMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getDigest() { return getDigestMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public java.util.Map getDigestMap() { return internalGetDigest().getMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public /* nullable */ java.lang.String getDigestOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, string> digest = 2; */ @java.lang.Override public java.lang.String getDigestOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } public Builder clearDigest() { bitField0_ = (bitField0_ & ~0x00000002); internalGetMutableDigest().getMutableMap() .clear(); return this; } /** * map<string, string> digest = 2; */ public Builder removeDigest( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } internalGetMutableDigest().getMutableMap() .remove(key); return this; } /** * Use alternate mutation accessors instead. */ @java.lang.Deprecated public java.util.Map getMutableDigest() { bitField0_ |= 0x00000002; return internalGetMutableDigest().getMutableMap(); } /** * map<string, string> digest = 2; */ public Builder putDigest( java.lang.String key, java.lang.String value) { if (key == null) { throw new NullPointerException("map key"); } if (value == null) { throw new NullPointerException("map value"); } internalGetMutableDigest().getMutableMap() .put(key, value); bitField0_ |= 0x00000002; return this; } /** * map<string, string> digest = 2; */ public Builder putAllDigest( java.util.Map values) { internalGetMutableDigest().getMutableMap() .putAll(values); bitField0_ |= 0x00000002; return this; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy) private static final io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy(); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public Policy parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface InputAttestationOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation) com.google.protobuf.MessageOrBuilder { /** * string uri = 1; * @return The uri. */ java.lang.String getUri(); /** * string uri = 1; * @return The bytes for uri. */ com.google.protobuf.ByteString getUriBytes(); /** * map<string, string> digest = 2; */ int getDigestCount(); /** * map<string, string> digest = 2; */ boolean containsDigest( java.lang.String key); /** * Use {@link #getDigestMap()} instead. */ @java.lang.Deprecated java.util.Map getDigest(); /** * map<string, string> digest = 2; */ java.util.Map getDigestMap(); /** * map<string, string> digest = 2; */ /* nullable */ java.lang.String getDigestOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue); /** * map<string, string> digest = 2; */ java.lang.String getDigestOrThrow( java.lang.String key); } /** * Protobuf type {@code in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation} */ public static final class InputAttestation extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation) InputAttestationOrBuilder { private static final long serialVersionUID = 0L; // Use InputAttestation.newBuilder() to construct. private InputAttestation(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private InputAttestation() { uri_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new InputAttestation(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_descriptor; } @SuppressWarnings({"rawtypes"}) @java.lang.Override protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 2: return internalGetDigest(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.class, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.Builder.class); } public static final int URI_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object uri_ = ""; /** * string uri = 1; * @return The uri. */ @java.lang.Override public java.lang.String getUri() { java.lang.Object ref = uri_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); uri_ = s; return s; } } /** * string uri = 1; * @return The bytes for uri. */ @java.lang.Override public com.google.protobuf.ByteString getUriBytes() { java.lang.Object ref = uri_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); uri_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int DIGEST_FIELD_NUMBER = 2; private static final class DigestDefaultEntryHolder { static final com.google.protobuf.MapEntry< java.lang.String, java.lang.String> defaultEntry = com.google.protobuf.MapEntry .newDefaultInstance( io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_DigestEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.STRING, ""); } @SuppressWarnings("serial") private com.google.protobuf.MapField< java.lang.String, java.lang.String> digest_; private com.google.protobuf.MapField internalGetDigest() { if (digest_ == null) { return com.google.protobuf.MapField.emptyMapField( DigestDefaultEntryHolder.defaultEntry); } return digest_; } public int getDigestCount() { return internalGetDigest().getMap().size(); } /** * map<string, string> digest = 2; */ @java.lang.Override public boolean containsDigest( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetDigest().getMap().containsKey(key); } /** * Use {@link #getDigestMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getDigest() { return getDigestMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public java.util.Map getDigestMap() { return internalGetDigest().getMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public /* nullable */ java.lang.String getDigestOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, string> digest = 2; */ @java.lang.Override public java.lang.String getDigestOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uri_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uri_); } com.google.protobuf.GeneratedMessageV3 .serializeStringMapTo( output, internalGetDigest(), DigestDefaultEntryHolder.defaultEntry, 2); getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uri_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uri_); } for (java.util.Map.Entry entry : internalGetDigest().getMap().entrySet()) { com.google.protobuf.MapEntry digest__ = DigestDefaultEntryHolder.defaultEntry.newBuilderForType() .setKey(entry.getKey()) .setValue(entry.getValue()) .build(); size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, digest__); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation)) { return super.equals(obj); } io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation other = (io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation) obj; if (!getUri() .equals(other.getUri())) return false; if (!internalGetDigest().equals( other.internalGetDigest())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + URI_FIELD_NUMBER; hash = (53 * hash) + getUri().hashCode(); if (!internalGetDigest().getMap().isEmpty()) { hash = (37 * hash) + DIGEST_FIELD_NUMBER; hash = (53 * hash) + internalGetDigest().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation) io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestationOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_descriptor; } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 2: return internalGetDigest(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMutableMapField( int number) { switch (number) { case 2: return internalGetMutableDigest(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.class, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.Builder.class); } // Construct using io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.newBuilder() private Builder() { } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; uri_ = ""; internalGetMutableDigest().clear(); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation build() { io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation buildPartial() { io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation result = new io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartial0(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.uri_ = uri_; } if (((from_bitField0_ & 0x00000002) != 0)) { result.digest_ = internalGetDigest(); result.digest_.makeImmutable(); } } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation) { return mergeFrom((io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation other) { if (other == io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.getDefaultInstance()) return this; if (!other.getUri().isEmpty()) { uri_ = other.uri_; bitField0_ |= 0x00000001; onChanged(); } internalGetMutableDigest().mergeFrom( other.internalGetDigest()); bitField0_ |= 0x00000002; this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { uri_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 case 18: { com.google.protobuf.MapEntry digest__ = input.readMessage( DigestDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); internalGetMutableDigest().getMutableMap().put( digest__.getKey(), digest__.getValue()); bitField0_ |= 0x00000002; break; } // case 18 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object uri_ = ""; /** * string uri = 1; * @return The uri. */ public java.lang.String getUri() { java.lang.Object ref = uri_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); uri_ = s; return s; } else { return (java.lang.String) ref; } } /** * string uri = 1; * @return The bytes for uri. */ public com.google.protobuf.ByteString getUriBytes() { java.lang.Object ref = uri_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); uri_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string uri = 1; * @param value The uri to set. * @return This builder for chaining. */ public Builder setUri( java.lang.String value) { if (value == null) { throw new NullPointerException(); } uri_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** * string uri = 1; * @return This builder for chaining. */ public Builder clearUri() { uri_ = getDefaultInstance().getUri(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** * string uri = 1; * @param value The bytes for uri to set. * @return This builder for chaining. */ public Builder setUriBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); uri_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } private com.google.protobuf.MapField< java.lang.String, java.lang.String> digest_; private com.google.protobuf.MapField internalGetDigest() { if (digest_ == null) { return com.google.protobuf.MapField.emptyMapField( DigestDefaultEntryHolder.defaultEntry); } return digest_; } private com.google.protobuf.MapField internalGetMutableDigest() { if (digest_ == null) { digest_ = com.google.protobuf.MapField.newMapField( DigestDefaultEntryHolder.defaultEntry); } if (!digest_.isMutable()) { digest_ = digest_.copy(); } bitField0_ |= 0x00000002; onChanged(); return digest_; } public int getDigestCount() { return internalGetDigest().getMap().size(); } /** * map<string, string> digest = 2; */ @java.lang.Override public boolean containsDigest( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetDigest().getMap().containsKey(key); } /** * Use {@link #getDigestMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getDigest() { return getDigestMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public java.util.Map getDigestMap() { return internalGetDigest().getMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public /* nullable */ java.lang.String getDigestOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, string> digest = 2; */ @java.lang.Override public java.lang.String getDigestOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } public Builder clearDigest() { bitField0_ = (bitField0_ & ~0x00000002); internalGetMutableDigest().getMutableMap() .clear(); return this; } /** * map<string, string> digest = 2; */ public Builder removeDigest( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } internalGetMutableDigest().getMutableMap() .remove(key); return this; } /** * Use alternate mutation accessors instead. */ @java.lang.Deprecated public java.util.Map getMutableDigest() { bitField0_ |= 0x00000002; return internalGetMutableDigest().getMutableMap(); } /** * map<string, string> digest = 2; */ public Builder putDigest( java.lang.String key, java.lang.String value) { if (key == null) { throw new NullPointerException("map key"); } if (value == null) { throw new NullPointerException("map value"); } internalGetMutableDigest().getMutableMap() .put(key, value); bitField0_ |= 0x00000002; return this; } /** * map<string, string> digest = 2; */ public Builder putAllDigest( java.util.Map values) { internalGetMutableDigest().getMutableMap() .putAll(values); bitField0_ |= 0x00000002; return this; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation) private static final io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation(); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public InputAttestation parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private int bitField0_; public static final int VERIFIER_FIELD_NUMBER = 1; private io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier verifier_; /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier verifier = 1; * @return Whether the verifier field is set. */ @java.lang.Override public boolean hasVerifier() { return ((bitField0_ & 0x00000001) != 0); } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier verifier = 1; * @return The verifier. */ @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier getVerifier() { return verifier_ == null ? io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.getDefaultInstance() : verifier_; } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier verifier = 1; */ @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.VerifierOrBuilder getVerifierOrBuilder() { return verifier_ == null ? io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.getDefaultInstance() : verifier_; } public static final int TIME_VERIFIED_FIELD_NUMBER = 2; private com.google.protobuf.Timestamp timeVerified_; /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; * @return Whether the timeVerified field is set. */ @java.lang.Override public boolean hasTimeVerified() { return ((bitField0_ & 0x00000002) != 0); } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; * @return The timeVerified. */ @java.lang.Override public com.google.protobuf.Timestamp getTimeVerified() { return timeVerified_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeVerified_; } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; */ @java.lang.Override public com.google.protobuf.TimestampOrBuilder getTimeVerifiedOrBuilder() { return timeVerified_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeVerified_; } public static final int RESOURCE_URI_FIELD_NUMBER = 3; @SuppressWarnings("serial") private volatile java.lang.Object resourceUri_ = ""; /** * string resource_uri = 3 [json_name = "resource_uri"]; * @return The resourceUri. */ @java.lang.Override public java.lang.String getResourceUri() { java.lang.Object ref = resourceUri_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); resourceUri_ = s; return s; } } /** * string resource_uri = 3 [json_name = "resource_uri"]; * @return The bytes for resourceUri. */ @java.lang.Override public com.google.protobuf.ByteString getResourceUriBytes() { java.lang.Object ref = resourceUri_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); resourceUri_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int POLICY_FIELD_NUMBER = 4; private io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy policy_; /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy policy = 4; * @return Whether the policy field is set. */ @java.lang.Override public boolean hasPolicy() { return ((bitField0_ & 0x00000004) != 0); } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy policy = 4; * @return The policy. */ @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy getPolicy() { return policy_ == null ? io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.getDefaultInstance() : policy_; } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy policy = 4; */ @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.PolicyOrBuilder getPolicyOrBuilder() { return policy_ == null ? io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.getDefaultInstance() : policy_; } public static final int INPUT_ATTESTATIONS_FIELD_NUMBER = 5; @SuppressWarnings("serial") private java.util.List inputAttestations_; /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ @java.lang.Override public java.util.List getInputAttestationsList() { return inputAttestations_; } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ @java.lang.Override public java.util.List getInputAttestationsOrBuilderList() { return inputAttestations_; } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ @java.lang.Override public int getInputAttestationsCount() { return inputAttestations_.size(); } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation getInputAttestations(int index) { return inputAttestations_.get(index); } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestationOrBuilder getInputAttestationsOrBuilder( int index) { return inputAttestations_.get(index); } public static final int VERIFICATION_RESULT_FIELD_NUMBER = 6; @SuppressWarnings("serial") private volatile java.lang.Object verificationResult_ = ""; /** * string verification_result = 6 [json_name = "verification_result"]; * @return The verificationResult. */ @java.lang.Override public java.lang.String getVerificationResult() { java.lang.Object ref = verificationResult_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); verificationResult_ = s; return s; } } /** * string verification_result = 6 [json_name = "verification_result"]; * @return The bytes for verificationResult. */ @java.lang.Override public com.google.protobuf.ByteString getVerificationResultBytes() { java.lang.Object ref = verificationResult_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); verificationResult_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int POLICY_LEVEL_FIELD_NUMBER = 7; @SuppressWarnings("serial") private volatile java.lang.Object policyLevel_ = ""; /** * string policy_level = 7 [json_name = "policy_level"]; * @return The policyLevel. */ @java.lang.Override public java.lang.String getPolicyLevel() { java.lang.Object ref = policyLevel_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); policyLevel_ = s; return s; } } /** * string policy_level = 7 [json_name = "policy_level"]; * @return The bytes for policyLevel. */ @java.lang.Override public com.google.protobuf.ByteString getPolicyLevelBytes() { java.lang.Object ref = policyLevel_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); policyLevel_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int DEPENDENCY_LEVELS_FIELD_NUMBER = 8; private static final class DependencyLevelsDefaultEntryHolder { static final com.google.protobuf.MapEntry< java.lang.String, java.lang.Long> defaultEntry = com.google.protobuf.MapEntry .newDefaultInstance( io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_DependencyLevelsEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.UINT64, 0L); } @SuppressWarnings("serial") private com.google.protobuf.MapField< java.lang.String, java.lang.Long> dependencyLevels_; private com.google.protobuf.MapField internalGetDependencyLevels() { if (dependencyLevels_ == null) { return com.google.protobuf.MapField.emptyMapField( DependencyLevelsDefaultEntryHolder.defaultEntry); } return dependencyLevels_; } public int getDependencyLevelsCount() { return internalGetDependencyLevels().getMap().size(); } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ @java.lang.Override public boolean containsDependencyLevels( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetDependencyLevels().getMap().containsKey(key); } /** * Use {@link #getDependencyLevelsMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getDependencyLevels() { return getDependencyLevelsMap(); } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ @java.lang.Override public java.util.Map getDependencyLevelsMap() { return internalGetDependencyLevels().getMap(); } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ @java.lang.Override public long getDependencyLevelsOrDefault( java.lang.String key, long defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDependencyLevels().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ @java.lang.Override public long getDependencyLevelsOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDependencyLevels().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(1, getVerifier()); } if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(2, getTimeVerified()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceUri_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, resourceUri_); } if (((bitField0_ & 0x00000004) != 0)) { output.writeMessage(4, getPolicy()); } for (int i = 0; i < inputAttestations_.size(); i++) { output.writeMessage(5, inputAttestations_.get(i)); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(verificationResult_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 6, verificationResult_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(policyLevel_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 7, policyLevel_); } com.google.protobuf.GeneratedMessageV3 .serializeStringMapTo( output, internalGetDependencyLevels(), DependencyLevelsDefaultEntryHolder.defaultEntry, 8); getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getVerifier()); } if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getTimeVerified()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceUri_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, resourceUri_); } if (((bitField0_ & 0x00000004) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getPolicy()); } for (int i = 0; i < inputAttestations_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(5, inputAttestations_.get(i)); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(verificationResult_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, verificationResult_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(policyLevel_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, policyLevel_); } for (java.util.Map.Entry entry : internalGetDependencyLevels().getMap().entrySet()) { com.google.protobuf.MapEntry dependencyLevels__ = DependencyLevelsDefaultEntryHolder.defaultEntry.newBuilderForType() .setKey(entry.getKey()) .setValue(entry.getValue()) .build(); size += com.google.protobuf.CodedOutputStream .computeMessageSize(8, dependencyLevels__); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary)) { return super.equals(obj); } io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary other = (io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary) obj; if (hasVerifier() != other.hasVerifier()) return false; if (hasVerifier()) { if (!getVerifier() .equals(other.getVerifier())) return false; } if (hasTimeVerified() != other.hasTimeVerified()) return false; if (hasTimeVerified()) { if (!getTimeVerified() .equals(other.getTimeVerified())) return false; } if (!getResourceUri() .equals(other.getResourceUri())) return false; if (hasPolicy() != other.hasPolicy()) return false; if (hasPolicy()) { if (!getPolicy() .equals(other.getPolicy())) return false; } if (!getInputAttestationsList() .equals(other.getInputAttestationsList())) return false; if (!getVerificationResult() .equals(other.getVerificationResult())) return false; if (!getPolicyLevel() .equals(other.getPolicyLevel())) return false; if (!internalGetDependencyLevels().equals( other.internalGetDependencyLevels())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); if (hasVerifier()) { hash = (37 * hash) + VERIFIER_FIELD_NUMBER; hash = (53 * hash) + getVerifier().hashCode(); } if (hasTimeVerified()) { hash = (37 * hash) + TIME_VERIFIED_FIELD_NUMBER; hash = (53 * hash) + getTimeVerified().hashCode(); } hash = (37 * hash) + RESOURCE_URI_FIELD_NUMBER; hash = (53 * hash) + getResourceUri().hashCode(); if (hasPolicy()) { hash = (37 * hash) + POLICY_FIELD_NUMBER; hash = (53 * hash) + getPolicy().hashCode(); } if (getInputAttestationsCount() > 0) { hash = (37 * hash) + INPUT_ATTESTATIONS_FIELD_NUMBER; hash = (53 * hash) + getInputAttestationsList().hashCode(); } hash = (37 * hash) + VERIFICATION_RESULT_FIELD_NUMBER; hash = (53 * hash) + getVerificationResult().hashCode(); hash = (37 * hash) + POLICY_LEVEL_FIELD_NUMBER; hash = (53 * hash) + getPolicyLevel().hashCode(); if (!internalGetDependencyLevels().getMap().isEmpty()) { hash = (37 * hash) + DEPENDENCY_LEVELS_FIELD_NUMBER; hash = (53 * hash) + internalGetDependencyLevels().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** *
     * Proto representation of predicate type https://slsa.dev/verification_summary/v0.2
     * Validation of all fields is left to the users of this proto.
     * 
* * Protobuf type {@code in_toto_attestation.predicates.vsa.v0.VerificationSummary} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.vsa.v0.VerificationSummary) io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummaryOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_descriptor; } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 8: return internalGetDependencyLevels(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMutableMapField( int number) { switch (number) { case 8: return internalGetMutableDependencyLevels(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.class, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Builder.class); } // Construct using io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getVerifierFieldBuilder(); getTimeVerifiedFieldBuilder(); getPolicyFieldBuilder(); getInputAttestationsFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; verifier_ = null; if (verifierBuilder_ != null) { verifierBuilder_.dispose(); verifierBuilder_ = null; } timeVerified_ = null; if (timeVerifiedBuilder_ != null) { timeVerifiedBuilder_.dispose(); timeVerifiedBuilder_ = null; } resourceUri_ = ""; policy_ = null; if (policyBuilder_ != null) { policyBuilder_.dispose(); policyBuilder_ = null; } if (inputAttestationsBuilder_ == null) { inputAttestations_ = java.util.Collections.emptyList(); } else { inputAttestations_ = null; inputAttestationsBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000010); verificationResult_ = ""; policyLevel_ = ""; internalGetMutableDependencyLevels().clear(); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary build() { io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary buildPartial() { io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary result = new io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary(this); buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartialRepeatedFields(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary result) { if (inputAttestationsBuilder_ == null) { if (((bitField0_ & 0x00000010) != 0)) { inputAttestations_ = java.util.Collections.unmodifiableList(inputAttestations_); bitField0_ = (bitField0_ & ~0x00000010); } result.inputAttestations_ = inputAttestations_; } else { result.inputAttestations_ = inputAttestationsBuilder_.build(); } } private void buildPartial0(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary result) { int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { result.verifier_ = verifierBuilder_ == null ? verifier_ : verifierBuilder_.build(); to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000002) != 0)) { result.timeVerified_ = timeVerifiedBuilder_ == null ? timeVerified_ : timeVerifiedBuilder_.build(); to_bitField0_ |= 0x00000002; } if (((from_bitField0_ & 0x00000004) != 0)) { result.resourceUri_ = resourceUri_; } if (((from_bitField0_ & 0x00000008) != 0)) { result.policy_ = policyBuilder_ == null ? policy_ : policyBuilder_.build(); to_bitField0_ |= 0x00000004; } if (((from_bitField0_ & 0x00000020) != 0)) { result.verificationResult_ = verificationResult_; } if (((from_bitField0_ & 0x00000040) != 0)) { result.policyLevel_ = policyLevel_; } if (((from_bitField0_ & 0x00000080) != 0)) { result.dependencyLevels_ = internalGetDependencyLevels(); result.dependencyLevels_.makeImmutable(); } result.bitField0_ |= to_bitField0_; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary) { return mergeFrom((io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary other) { if (other == io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.getDefaultInstance()) return this; if (other.hasVerifier()) { mergeVerifier(other.getVerifier()); } if (other.hasTimeVerified()) { mergeTimeVerified(other.getTimeVerified()); } if (!other.getResourceUri().isEmpty()) { resourceUri_ = other.resourceUri_; bitField0_ |= 0x00000004; onChanged(); } if (other.hasPolicy()) { mergePolicy(other.getPolicy()); } if (inputAttestationsBuilder_ == null) { if (!other.inputAttestations_.isEmpty()) { if (inputAttestations_.isEmpty()) { inputAttestations_ = other.inputAttestations_; bitField0_ = (bitField0_ & ~0x00000010); } else { ensureInputAttestationsIsMutable(); inputAttestations_.addAll(other.inputAttestations_); } onChanged(); } } else { if (!other.inputAttestations_.isEmpty()) { if (inputAttestationsBuilder_.isEmpty()) { inputAttestationsBuilder_.dispose(); inputAttestationsBuilder_ = null; inputAttestations_ = other.inputAttestations_; bitField0_ = (bitField0_ & ~0x00000010); inputAttestationsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getInputAttestationsFieldBuilder() : null; } else { inputAttestationsBuilder_.addAllMessages(other.inputAttestations_); } } } if (!other.getVerificationResult().isEmpty()) { verificationResult_ = other.verificationResult_; bitField0_ |= 0x00000020; onChanged(); } if (!other.getPolicyLevel().isEmpty()) { policyLevel_ = other.policyLevel_; bitField0_ |= 0x00000040; onChanged(); } internalGetMutableDependencyLevels().mergeFrom( other.internalGetDependencyLevels()); bitField0_ |= 0x00000080; this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { input.readMessage( getVerifierFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000001; break; } // case 10 case 18: { input.readMessage( getTimeVerifiedFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000002; break; } // case 18 case 26: { resourceUri_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000004; break; } // case 26 case 34: { input.readMessage( getPolicyFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000008; break; } // case 34 case 42: { io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation m = input.readMessage( io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.parser(), extensionRegistry); if (inputAttestationsBuilder_ == null) { ensureInputAttestationsIsMutable(); inputAttestations_.add(m); } else { inputAttestationsBuilder_.addMessage(m); } break; } // case 42 case 50: { verificationResult_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000020; break; } // case 50 case 58: { policyLevel_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000040; break; } // case 58 case 66: { com.google.protobuf.MapEntry dependencyLevels__ = input.readMessage( DependencyLevelsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); internalGetMutableDependencyLevels().getMutableMap().put( dependencyLevels__.getKey(), dependencyLevels__.getValue()); bitField0_ |= 0x00000080; break; } // case 66 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier verifier_; private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.Builder, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.VerifierOrBuilder> verifierBuilder_; /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier verifier = 1; * @return Whether the verifier field is set. */ public boolean hasVerifier() { return ((bitField0_ & 0x00000001) != 0); } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier verifier = 1; * @return The verifier. */ public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier getVerifier() { if (verifierBuilder_ == null) { return verifier_ == null ? io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.getDefaultInstance() : verifier_; } else { return verifierBuilder_.getMessage(); } } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier verifier = 1; */ public Builder setVerifier(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier value) { if (verifierBuilder_ == null) { if (value == null) { throw new NullPointerException(); } verifier_ = value; } else { verifierBuilder_.setMessage(value); } bitField0_ |= 0x00000001; onChanged(); return this; } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier verifier = 1; */ public Builder setVerifier( io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.Builder builderForValue) { if (verifierBuilder_ == null) { verifier_ = builderForValue.build(); } else { verifierBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000001; onChanged(); return this; } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier verifier = 1; */ public Builder mergeVerifier(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier value) { if (verifierBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0) && verifier_ != null && verifier_ != io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.getDefaultInstance()) { getVerifierBuilder().mergeFrom(value); } else { verifier_ = value; } } else { verifierBuilder_.mergeFrom(value); } if (verifier_ != null) { bitField0_ |= 0x00000001; onChanged(); } return this; } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier verifier = 1; */ public Builder clearVerifier() { bitField0_ = (bitField0_ & ~0x00000001); verifier_ = null; if (verifierBuilder_ != null) { verifierBuilder_.dispose(); verifierBuilder_ = null; } onChanged(); return this; } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier verifier = 1; */ public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.Builder getVerifierBuilder() { bitField0_ |= 0x00000001; onChanged(); return getVerifierFieldBuilder().getBuilder(); } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier verifier = 1; */ public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.VerifierOrBuilder getVerifierOrBuilder() { if (verifierBuilder_ != null) { return verifierBuilder_.getMessageOrBuilder(); } else { return verifier_ == null ? io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.getDefaultInstance() : verifier_; } } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier verifier = 1; */ private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.Builder, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.VerifierOrBuilder> getVerifierFieldBuilder() { if (verifierBuilder_ == null) { verifierBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Verifier.Builder, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.VerifierOrBuilder>( getVerifier(), getParentForChildren(), isClean()); verifier_ = null; } return verifierBuilder_; } private com.google.protobuf.Timestamp timeVerified_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> timeVerifiedBuilder_; /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; * @return Whether the timeVerified field is set. */ public boolean hasTimeVerified() { return ((bitField0_ & 0x00000002) != 0); } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; * @return The timeVerified. */ public com.google.protobuf.Timestamp getTimeVerified() { if (timeVerifiedBuilder_ == null) { return timeVerified_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeVerified_; } else { return timeVerifiedBuilder_.getMessage(); } } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; */ public Builder setTimeVerified(com.google.protobuf.Timestamp value) { if (timeVerifiedBuilder_ == null) { if (value == null) { throw new NullPointerException(); } timeVerified_ = value; } else { timeVerifiedBuilder_.setMessage(value); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; */ public Builder setTimeVerified( com.google.protobuf.Timestamp.Builder builderForValue) { if (timeVerifiedBuilder_ == null) { timeVerified_ = builderForValue.build(); } else { timeVerifiedBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; */ public Builder mergeTimeVerified(com.google.protobuf.Timestamp value) { if (timeVerifiedBuilder_ == null) { if (((bitField0_ & 0x00000002) != 0) && timeVerified_ != null && timeVerified_ != com.google.protobuf.Timestamp.getDefaultInstance()) { getTimeVerifiedBuilder().mergeFrom(value); } else { timeVerified_ = value; } } else { timeVerifiedBuilder_.mergeFrom(value); } if (timeVerified_ != null) { bitField0_ |= 0x00000002; onChanged(); } return this; } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; */ public Builder clearTimeVerified() { bitField0_ = (bitField0_ & ~0x00000002); timeVerified_ = null; if (timeVerifiedBuilder_ != null) { timeVerifiedBuilder_.dispose(); timeVerifiedBuilder_ = null; } onChanged(); return this; } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; */ public com.google.protobuf.Timestamp.Builder getTimeVerifiedBuilder() { bitField0_ |= 0x00000002; onChanged(); return getTimeVerifiedFieldBuilder().getBuilder(); } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; */ public com.google.protobuf.TimestampOrBuilder getTimeVerifiedOrBuilder() { if (timeVerifiedBuilder_ != null) { return timeVerifiedBuilder_.getMessageOrBuilder(); } else { return timeVerified_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeVerified_; } } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> getTimeVerifiedFieldBuilder() { if (timeVerifiedBuilder_ == null) { timeVerifiedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>( getTimeVerified(), getParentForChildren(), isClean()); timeVerified_ = null; } return timeVerifiedBuilder_; } private java.lang.Object resourceUri_ = ""; /** * string resource_uri = 3 [json_name = "resource_uri"]; * @return The resourceUri. */ public java.lang.String getResourceUri() { java.lang.Object ref = resourceUri_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); resourceUri_ = s; return s; } else { return (java.lang.String) ref; } } /** * string resource_uri = 3 [json_name = "resource_uri"]; * @return The bytes for resourceUri. */ public com.google.protobuf.ByteString getResourceUriBytes() { java.lang.Object ref = resourceUri_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); resourceUri_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string resource_uri = 3 [json_name = "resource_uri"]; * @param value The resourceUri to set. * @return This builder for chaining. */ public Builder setResourceUri( java.lang.String value) { if (value == null) { throw new NullPointerException(); } resourceUri_ = value; bitField0_ |= 0x00000004; onChanged(); return this; } /** * string resource_uri = 3 [json_name = "resource_uri"]; * @return This builder for chaining. */ public Builder clearResourceUri() { resourceUri_ = getDefaultInstance().getResourceUri(); bitField0_ = (bitField0_ & ~0x00000004); onChanged(); return this; } /** * string resource_uri = 3 [json_name = "resource_uri"]; * @param value The bytes for resourceUri to set. * @return This builder for chaining. */ public Builder setResourceUriBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); resourceUri_ = value; bitField0_ |= 0x00000004; onChanged(); return this; } private io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy policy_; private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.Builder, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.PolicyOrBuilder> policyBuilder_; /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy policy = 4; * @return Whether the policy field is set. */ public boolean hasPolicy() { return ((bitField0_ & 0x00000008) != 0); } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy policy = 4; * @return The policy. */ public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy getPolicy() { if (policyBuilder_ == null) { return policy_ == null ? io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.getDefaultInstance() : policy_; } else { return policyBuilder_.getMessage(); } } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy policy = 4; */ public Builder setPolicy(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy value) { if (policyBuilder_ == null) { if (value == null) { throw new NullPointerException(); } policy_ = value; } else { policyBuilder_.setMessage(value); } bitField0_ |= 0x00000008; onChanged(); return this; } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy policy = 4; */ public Builder setPolicy( io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.Builder builderForValue) { if (policyBuilder_ == null) { policy_ = builderForValue.build(); } else { policyBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000008; onChanged(); return this; } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy policy = 4; */ public Builder mergePolicy(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy value) { if (policyBuilder_ == null) { if (((bitField0_ & 0x00000008) != 0) && policy_ != null && policy_ != io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.getDefaultInstance()) { getPolicyBuilder().mergeFrom(value); } else { policy_ = value; } } else { policyBuilder_.mergeFrom(value); } if (policy_ != null) { bitField0_ |= 0x00000008; onChanged(); } return this; } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy policy = 4; */ public Builder clearPolicy() { bitField0_ = (bitField0_ & ~0x00000008); policy_ = null; if (policyBuilder_ != null) { policyBuilder_.dispose(); policyBuilder_ = null; } onChanged(); return this; } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy policy = 4; */ public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.Builder getPolicyBuilder() { bitField0_ |= 0x00000008; onChanged(); return getPolicyFieldBuilder().getBuilder(); } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy policy = 4; */ public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.PolicyOrBuilder getPolicyOrBuilder() { if (policyBuilder_ != null) { return policyBuilder_.getMessageOrBuilder(); } else { return policy_ == null ? io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.getDefaultInstance() : policy_; } } /** * .in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy policy = 4; */ private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.Builder, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.PolicyOrBuilder> getPolicyFieldBuilder() { if (policyBuilder_ == null) { policyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.Policy.Builder, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.PolicyOrBuilder>( getPolicy(), getParentForChildren(), isClean()); policy_ = null; } return policyBuilder_; } private java.util.List inputAttestations_ = java.util.Collections.emptyList(); private void ensureInputAttestationsIsMutable() { if (!((bitField0_ & 0x00000010) != 0)) { inputAttestations_ = new java.util.ArrayList(inputAttestations_); bitField0_ |= 0x00000010; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.Builder, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestationOrBuilder> inputAttestationsBuilder_; /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public java.util.List getInputAttestationsList() { if (inputAttestationsBuilder_ == null) { return java.util.Collections.unmodifiableList(inputAttestations_); } else { return inputAttestationsBuilder_.getMessageList(); } } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public int getInputAttestationsCount() { if (inputAttestationsBuilder_ == null) { return inputAttestations_.size(); } else { return inputAttestationsBuilder_.getCount(); } } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation getInputAttestations(int index) { if (inputAttestationsBuilder_ == null) { return inputAttestations_.get(index); } else { return inputAttestationsBuilder_.getMessage(index); } } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public Builder setInputAttestations( int index, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation value) { if (inputAttestationsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureInputAttestationsIsMutable(); inputAttestations_.set(index, value); onChanged(); } else { inputAttestationsBuilder_.setMessage(index, value); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public Builder setInputAttestations( int index, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.Builder builderForValue) { if (inputAttestationsBuilder_ == null) { ensureInputAttestationsIsMutable(); inputAttestations_.set(index, builderForValue.build()); onChanged(); } else { inputAttestationsBuilder_.setMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public Builder addInputAttestations(io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation value) { if (inputAttestationsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureInputAttestationsIsMutable(); inputAttestations_.add(value); onChanged(); } else { inputAttestationsBuilder_.addMessage(value); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public Builder addInputAttestations( int index, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation value) { if (inputAttestationsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureInputAttestationsIsMutable(); inputAttestations_.add(index, value); onChanged(); } else { inputAttestationsBuilder_.addMessage(index, value); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public Builder addInputAttestations( io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.Builder builderForValue) { if (inputAttestationsBuilder_ == null) { ensureInputAttestationsIsMutable(); inputAttestations_.add(builderForValue.build()); onChanged(); } else { inputAttestationsBuilder_.addMessage(builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public Builder addInputAttestations( int index, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.Builder builderForValue) { if (inputAttestationsBuilder_ == null) { ensureInputAttestationsIsMutable(); inputAttestations_.add(index, builderForValue.build()); onChanged(); } else { inputAttestationsBuilder_.addMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public Builder addAllInputAttestations( java.lang.Iterable values) { if (inputAttestationsBuilder_ == null) { ensureInputAttestationsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, inputAttestations_); onChanged(); } else { inputAttestationsBuilder_.addAllMessages(values); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public Builder clearInputAttestations() { if (inputAttestationsBuilder_ == null) { inputAttestations_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000010); onChanged(); } else { inputAttestationsBuilder_.clear(); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public Builder removeInputAttestations(int index) { if (inputAttestationsBuilder_ == null) { ensureInputAttestationsIsMutable(); inputAttestations_.remove(index); onChanged(); } else { inputAttestationsBuilder_.remove(index); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.Builder getInputAttestationsBuilder( int index) { return getInputAttestationsFieldBuilder().getBuilder(index); } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestationOrBuilder getInputAttestationsOrBuilder( int index) { if (inputAttestationsBuilder_ == null) { return inputAttestations_.get(index); } else { return inputAttestationsBuilder_.getMessageOrBuilder(index); } } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public java.util.List getInputAttestationsOrBuilderList() { if (inputAttestationsBuilder_ != null) { return inputAttestationsBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(inputAttestations_); } } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.Builder addInputAttestationsBuilder() { return getInputAttestationsFieldBuilder().addBuilder( io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.getDefaultInstance()); } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.Builder addInputAttestationsBuilder( int index) { return getInputAttestationsFieldBuilder().addBuilder( index, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.getDefaultInstance()); } /** * repeated .in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "input_attestations"]; */ public java.util.List getInputAttestationsBuilderList() { return getInputAttestationsFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.Builder, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestationOrBuilder> getInputAttestationsFieldBuilder() { if (inputAttestationsBuilder_ == null) { inputAttestationsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestation.Builder, io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary.InputAttestationOrBuilder>( inputAttestations_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); inputAttestations_ = null; } return inputAttestationsBuilder_; } private java.lang.Object verificationResult_ = ""; /** * string verification_result = 6 [json_name = "verification_result"]; * @return The verificationResult. */ public java.lang.String getVerificationResult() { java.lang.Object ref = verificationResult_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); verificationResult_ = s; return s; } else { return (java.lang.String) ref; } } /** * string verification_result = 6 [json_name = "verification_result"]; * @return The bytes for verificationResult. */ public com.google.protobuf.ByteString getVerificationResultBytes() { java.lang.Object ref = verificationResult_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); verificationResult_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string verification_result = 6 [json_name = "verification_result"]; * @param value The verificationResult to set. * @return This builder for chaining. */ public Builder setVerificationResult( java.lang.String value) { if (value == null) { throw new NullPointerException(); } verificationResult_ = value; bitField0_ |= 0x00000020; onChanged(); return this; } /** * string verification_result = 6 [json_name = "verification_result"]; * @return This builder for chaining. */ public Builder clearVerificationResult() { verificationResult_ = getDefaultInstance().getVerificationResult(); bitField0_ = (bitField0_ & ~0x00000020); onChanged(); return this; } /** * string verification_result = 6 [json_name = "verification_result"]; * @param value The bytes for verificationResult to set. * @return This builder for chaining. */ public Builder setVerificationResultBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); verificationResult_ = value; bitField0_ |= 0x00000020; onChanged(); return this; } private java.lang.Object policyLevel_ = ""; /** * string policy_level = 7 [json_name = "policy_level"]; * @return The policyLevel. */ public java.lang.String getPolicyLevel() { java.lang.Object ref = policyLevel_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); policyLevel_ = s; return s; } else { return (java.lang.String) ref; } } /** * string policy_level = 7 [json_name = "policy_level"]; * @return The bytes for policyLevel. */ public com.google.protobuf.ByteString getPolicyLevelBytes() { java.lang.Object ref = policyLevel_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); policyLevel_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string policy_level = 7 [json_name = "policy_level"]; * @param value The policyLevel to set. * @return This builder for chaining. */ public Builder setPolicyLevel( java.lang.String value) { if (value == null) { throw new NullPointerException(); } policyLevel_ = value; bitField0_ |= 0x00000040; onChanged(); return this; } /** * string policy_level = 7 [json_name = "policy_level"]; * @return This builder for chaining. */ public Builder clearPolicyLevel() { policyLevel_ = getDefaultInstance().getPolicyLevel(); bitField0_ = (bitField0_ & ~0x00000040); onChanged(); return this; } /** * string policy_level = 7 [json_name = "policy_level"]; * @param value The bytes for policyLevel to set. * @return This builder for chaining. */ public Builder setPolicyLevelBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); policyLevel_ = value; bitField0_ |= 0x00000040; onChanged(); return this; } private com.google.protobuf.MapField< java.lang.String, java.lang.Long> dependencyLevels_; private com.google.protobuf.MapField internalGetDependencyLevels() { if (dependencyLevels_ == null) { return com.google.protobuf.MapField.emptyMapField( DependencyLevelsDefaultEntryHolder.defaultEntry); } return dependencyLevels_; } private com.google.protobuf.MapField internalGetMutableDependencyLevels() { if (dependencyLevels_ == null) { dependencyLevels_ = com.google.protobuf.MapField.newMapField( DependencyLevelsDefaultEntryHolder.defaultEntry); } if (!dependencyLevels_.isMutable()) { dependencyLevels_ = dependencyLevels_.copy(); } bitField0_ |= 0x00000080; onChanged(); return dependencyLevels_; } public int getDependencyLevelsCount() { return internalGetDependencyLevels().getMap().size(); } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ @java.lang.Override public boolean containsDependencyLevels( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetDependencyLevels().getMap().containsKey(key); } /** * Use {@link #getDependencyLevelsMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getDependencyLevels() { return getDependencyLevelsMap(); } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ @java.lang.Override public java.util.Map getDependencyLevelsMap() { return internalGetDependencyLevels().getMap(); } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ @java.lang.Override public long getDependencyLevelsOrDefault( java.lang.String key, long defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDependencyLevels().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ @java.lang.Override public long getDependencyLevelsOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDependencyLevels().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } public Builder clearDependencyLevels() { bitField0_ = (bitField0_ & ~0x00000080); internalGetMutableDependencyLevels().getMutableMap() .clear(); return this; } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ public Builder removeDependencyLevels( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } internalGetMutableDependencyLevels().getMutableMap() .remove(key); return this; } /** * Use alternate mutation accessors instead. */ @java.lang.Deprecated public java.util.Map getMutableDependencyLevels() { bitField0_ |= 0x00000080; return internalGetMutableDependencyLevels().getMutableMap(); } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ public Builder putDependencyLevels( java.lang.String key, long value) { if (key == null) { throw new NullPointerException("map key"); } internalGetMutableDependencyLevels().getMutableMap() .put(key, value); bitField0_ |= 0x00000080; return this; } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependency_levels"]; */ public Builder putAllDependencyLevels( java.util.Map values) { internalGetMutableDependencyLevels().getMutableMap() .putAll(values); bitField0_ |= 0x00000080; return this; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.vsa.v0.VerificationSummary) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.vsa.v0.VerificationSummary) private static final io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary(); } public static io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public VerificationSummary parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v0.Vsa.VerificationSummary getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Verifier_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Verifier_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_DigestEntry_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_DigestEntry_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_DigestEntry_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_DigestEntry_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_DependencyLevelsEntry_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_DependencyLevelsEntry_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { return descriptor; } private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { java.lang.String[] descriptorData = { "\n/in_toto_attestation/predicates/vsa/v0/" + "vsa.proto\022%in_toto_attestation.predicate" + "s.vsa.v0\032\037google/protobuf/timestamp.prot" + "o\"\251\010\n\023VerificationSummary\022U\n\010verifier\030\001 " + "\001(\0132C.in_toto_attestation.predicates.vsa" + ".v0.VerificationSummary.Verifier\022@\n\rtime" + "_verified\030\002 \001(\0132\032.google.protobuf.Timest" + "ampR\rtime_verified\022\"\n\014resource_uri\030\003 \001(\t" + "R\014resource_uri\022Q\n\006policy\030\004 \001(\0132A.in_toto" + "_attestation.predicates.vsa.v0.Verificat" + "ionSummary.Policy\022{\n\022input_attestations\030" + "\005 \003(\0132K.in_toto_attestation.predicates.v" + "sa.v0.VerificationSummary.InputAttestati" + "onR\022input_attestations\0220\n\023verification_r" + "esult\030\006 \001(\tR\023verification_result\022\"\n\014poli" + "cy_level\030\007 \001(\tR\014policy_level\022~\n\021dependen" + "cy_levels\030\010 \003(\0132P.in_toto_attestation.pr" + "edicates.vsa.v0.VerificationSummary.Depe" + "ndencyLevelsEntryR\021dependency_levels\032\026\n\010" + "Verifier\022\n\n\002id\030\001 \001(\t\032\243\001\n\006Policy\022\013\n\003uri\030\001" + " \001(\t\022]\n\006digest\030\002 \003(\0132M.in_toto_attestati" + "on.predicates.vsa.v0.VerificationSummary" + ".Policy.DigestEntry\032-\n\013DigestEntry\022\013\n\003ke" + "y\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\032\267\001\n\020InputAtte" + "station\022\013\n\003uri\030\001 \001(\t\022g\n\006digest\030\002 \003(\0132W.i" + "n_toto_attestation.predicates.vsa.v0.Ver" + "ificationSummary.InputAttestation.Digest" + "Entry\032-\n\013DigestEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005val" + "ue\030\002 \001(\t:\0028\001\0327\n\025DependencyLevelsEntry\022\013\n" + "\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\004:\0028\001Be\n.io.gith" + "ub.intoto.attestation.predicates.vsa.v0Z" + "3github.com/in-toto/attestation/go/predi" + "cates/vsa/v0b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { com.google.protobuf.TimestampProto.getDescriptor(), }); internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_descriptor, new java.lang.String[] { "Verifier", "TimeVerified", "ResourceUri", "Policy", "InputAttestations", "VerificationResult", "PolicyLevel", "DependencyLevels", }); internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Verifier_descriptor = internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_descriptor.getNestedTypes().get(0); internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Verifier_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Verifier_descriptor, new java.lang.String[] { "Id", }); internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_descriptor = internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_descriptor.getNestedTypes().get(1); internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_descriptor, new java.lang.String[] { "Uri", "Digest", }); internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_DigestEntry_descriptor = internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_descriptor.getNestedTypes().get(0); internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_DigestEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_Policy_DigestEntry_descriptor, new java.lang.String[] { "Key", "Value", }); internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_descriptor = internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_descriptor.getNestedTypes().get(2); internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_descriptor, new java.lang.String[] { "Uri", "Digest", }); internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_DigestEntry_descriptor = internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_descriptor.getNestedTypes().get(0); internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_DigestEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_InputAttestation_DigestEntry_descriptor, new java.lang.String[] { "Key", "Value", }); internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_DependencyLevelsEntry_descriptor = internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_descriptor.getNestedTypes().get(3); internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_DependencyLevelsEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_vsa_v0_VerificationSummary_DependencyLevelsEntry_descriptor, new java.lang.String[] { "Key", "Value", }); com.google.protobuf.TimestampProto.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) } golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/vsa/v1/000077500000000000000000000000001470602552500321215ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/predicates/vsa/v1/Vsa.java000066400000000000000000005760361470602552500335360ustar00rootroot00000000000000// Generated by the protocol buffer compiler. DO NOT EDIT! // source: in_toto_attestation/predicates/vsa/v1/vsa.proto package io.github.intoto.attestation.predicates.vsa.v1; public final class Vsa { private Vsa() {} public static void registerAllExtensions( com.google.protobuf.ExtensionRegistryLite registry) { } public static void registerAllExtensions( com.google.protobuf.ExtensionRegistry registry) { registerAllExtensions( (com.google.protobuf.ExtensionRegistryLite) registry); } public interface VerificationSummaryOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.vsa.v1.VerificationSummary) com.google.protobuf.MessageOrBuilder { /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier verifier = 1; * @return Whether the verifier field is set. */ boolean hasVerifier(); /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier verifier = 1; * @return The verifier. */ io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier getVerifier(); /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier verifier = 1; */ io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.VerifierOrBuilder getVerifierOrBuilder(); /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; * @return Whether the timeVerified field is set. */ boolean hasTimeVerified(); /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; * @return The timeVerified. */ com.google.protobuf.Timestamp getTimeVerified(); /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; */ com.google.protobuf.TimestampOrBuilder getTimeVerifiedOrBuilder(); /** * string resource_uri = 3 [json_name = "resourceUri"]; * @return The resourceUri. */ java.lang.String getResourceUri(); /** * string resource_uri = 3 [json_name = "resourceUri"]; * @return The bytes for resourceUri. */ com.google.protobuf.ByteString getResourceUriBytes(); /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy policy = 4; * @return Whether the policy field is set. */ boolean hasPolicy(); /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy policy = 4; * @return The policy. */ io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy getPolicy(); /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy policy = 4; */ io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.PolicyOrBuilder getPolicyOrBuilder(); /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ java.util.List getInputAttestationsList(); /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation getInputAttestations(int index); /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ int getInputAttestationsCount(); /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ java.util.List getInputAttestationsOrBuilderList(); /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestationOrBuilder getInputAttestationsOrBuilder( int index); /** * string verification_result = 6 [json_name = "verificationResult"]; * @return The verificationResult. */ java.lang.String getVerificationResult(); /** * string verification_result = 6 [json_name = "verificationResult"]; * @return The bytes for verificationResult. */ com.google.protobuf.ByteString getVerificationResultBytes(); /** * string verified_levels = 7 [json_name = "verifiedLevels"]; * @return The verifiedLevels. */ java.lang.String getVerifiedLevels(); /** * string verified_levels = 7 [json_name = "verifiedLevels"]; * @return The bytes for verifiedLevels. */ com.google.protobuf.ByteString getVerifiedLevelsBytes(); /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ int getDependencyLevelsCount(); /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ boolean containsDependencyLevels( java.lang.String key); /** * Use {@link #getDependencyLevelsMap()} instead. */ @java.lang.Deprecated java.util.Map getDependencyLevels(); /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ java.util.Map getDependencyLevelsMap(); /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ long getDependencyLevelsOrDefault( java.lang.String key, long defaultValue); /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ long getDependencyLevelsOrThrow( java.lang.String key); /** * string slsa_version = 9 [json_name = "slsaVersion"]; * @return The slsaVersion. */ java.lang.String getSlsaVersion(); /** * string slsa_version = 9 [json_name = "slsaVersion"]; * @return The bytes for slsaVersion. */ com.google.protobuf.ByteString getSlsaVersionBytes(); } /** *
   * Proto representation of predicate type https://slsa.dev/verification_summary/v1
   * Validation of all fields is left to the users of this proto.
   * 
* * Protobuf type {@code in_toto_attestation.predicates.vsa.v1.VerificationSummary} */ public static final class VerificationSummary extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.vsa.v1.VerificationSummary) VerificationSummaryOrBuilder { private static final long serialVersionUID = 0L; // Use VerificationSummary.newBuilder() to construct. private VerificationSummary(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private VerificationSummary() { resourceUri_ = ""; inputAttestations_ = java.util.Collections.emptyList(); verificationResult_ = ""; verifiedLevels_ = ""; slsaVersion_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new VerificationSummary(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_descriptor; } @SuppressWarnings({"rawtypes"}) @java.lang.Override protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 8: return internalGetDependencyLevels(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.class, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Builder.class); } public interface VerifierOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier) com.google.protobuf.MessageOrBuilder { /** * string id = 1; * @return The id. */ java.lang.String getId(); /** * string id = 1; * @return The bytes for id. */ com.google.protobuf.ByteString getIdBytes(); } /** * Protobuf type {@code in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier} */ public static final class Verifier extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier) VerifierOrBuilder { private static final long serialVersionUID = 0L; // Use Verifier.newBuilder() to construct. private Verifier(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Verifier() { id_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new Verifier(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Verifier_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Verifier_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.class, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.Builder.class); } public static final int ID_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object id_ = ""; /** * string id = 1; * @return The id. */ @java.lang.Override public java.lang.String getId() { java.lang.Object ref = id_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); id_ = s; return s; } } /** * string id = 1; * @return The bytes for id. */ @java.lang.Override public com.google.protobuf.ByteString getIdBytes() { java.lang.Object ref = id_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); id_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, id_); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(id_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, id_); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier)) { return super.equals(obj); } io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier other = (io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier) obj; if (!getId() .equals(other.getId())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + ID_FIELD_NUMBER; hash = (53 * hash) + getId().hashCode(); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier) io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.VerifierOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Verifier_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Verifier_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.class, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.Builder.class); } // Construct using io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.newBuilder() private Builder() { } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; id_ = ""; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Verifier_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier build() { io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier buildPartial() { io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier result = new io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartial0(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.id_ = id_; } } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier) { return mergeFrom((io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier other) { if (other == io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.getDefaultInstance()) return this; if (!other.getId().isEmpty()) { id_ = other.id_; bitField0_ |= 0x00000001; onChanged(); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { id_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object id_ = ""; /** * string id = 1; * @return The id. */ public java.lang.String getId() { java.lang.Object ref = id_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); id_ = s; return s; } else { return (java.lang.String) ref; } } /** * string id = 1; * @return The bytes for id. */ public com.google.protobuf.ByteString getIdBytes() { java.lang.Object ref = id_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); id_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string id = 1; * @param value The id to set. * @return This builder for chaining. */ public Builder setId( java.lang.String value) { if (value == null) { throw new NullPointerException(); } id_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** * string id = 1; * @return This builder for chaining. */ public Builder clearId() { id_ = getDefaultInstance().getId(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** * string id = 1; * @param value The bytes for id to set. * @return This builder for chaining. */ public Builder setIdBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); id_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier) private static final io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier(); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public Verifier parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface PolicyOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy) com.google.protobuf.MessageOrBuilder { /** * string uri = 1; * @return The uri. */ java.lang.String getUri(); /** * string uri = 1; * @return The bytes for uri. */ com.google.protobuf.ByteString getUriBytes(); /** * map<string, string> digest = 2; */ int getDigestCount(); /** * map<string, string> digest = 2; */ boolean containsDigest( java.lang.String key); /** * Use {@link #getDigestMap()} instead. */ @java.lang.Deprecated java.util.Map getDigest(); /** * map<string, string> digest = 2; */ java.util.Map getDigestMap(); /** * map<string, string> digest = 2; */ /* nullable */ java.lang.String getDigestOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue); /** * map<string, string> digest = 2; */ java.lang.String getDigestOrThrow( java.lang.String key); } /** * Protobuf type {@code in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy} */ public static final class Policy extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy) PolicyOrBuilder { private static final long serialVersionUID = 0L; // Use Policy.newBuilder() to construct. private Policy(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Policy() { uri_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new Policy(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_descriptor; } @SuppressWarnings({"rawtypes"}) @java.lang.Override protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 2: return internalGetDigest(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.class, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.Builder.class); } public static final int URI_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object uri_ = ""; /** * string uri = 1; * @return The uri. */ @java.lang.Override public java.lang.String getUri() { java.lang.Object ref = uri_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); uri_ = s; return s; } } /** * string uri = 1; * @return The bytes for uri. */ @java.lang.Override public com.google.protobuf.ByteString getUriBytes() { java.lang.Object ref = uri_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); uri_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int DIGEST_FIELD_NUMBER = 2; private static final class DigestDefaultEntryHolder { static final com.google.protobuf.MapEntry< java.lang.String, java.lang.String> defaultEntry = com.google.protobuf.MapEntry .newDefaultInstance( io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_DigestEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.STRING, ""); } @SuppressWarnings("serial") private com.google.protobuf.MapField< java.lang.String, java.lang.String> digest_; private com.google.protobuf.MapField internalGetDigest() { if (digest_ == null) { return com.google.protobuf.MapField.emptyMapField( DigestDefaultEntryHolder.defaultEntry); } return digest_; } public int getDigestCount() { return internalGetDigest().getMap().size(); } /** * map<string, string> digest = 2; */ @java.lang.Override public boolean containsDigest( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetDigest().getMap().containsKey(key); } /** * Use {@link #getDigestMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getDigest() { return getDigestMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public java.util.Map getDigestMap() { return internalGetDigest().getMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public /* nullable */ java.lang.String getDigestOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, string> digest = 2; */ @java.lang.Override public java.lang.String getDigestOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uri_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uri_); } com.google.protobuf.GeneratedMessageV3 .serializeStringMapTo( output, internalGetDigest(), DigestDefaultEntryHolder.defaultEntry, 2); getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uri_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uri_); } for (java.util.Map.Entry entry : internalGetDigest().getMap().entrySet()) { com.google.protobuf.MapEntry digest__ = DigestDefaultEntryHolder.defaultEntry.newBuilderForType() .setKey(entry.getKey()) .setValue(entry.getValue()) .build(); size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, digest__); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy)) { return super.equals(obj); } io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy other = (io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy) obj; if (!getUri() .equals(other.getUri())) return false; if (!internalGetDigest().equals( other.internalGetDigest())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + URI_FIELD_NUMBER; hash = (53 * hash) + getUri().hashCode(); if (!internalGetDigest().getMap().isEmpty()) { hash = (37 * hash) + DIGEST_FIELD_NUMBER; hash = (53 * hash) + internalGetDigest().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy) io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.PolicyOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_descriptor; } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 2: return internalGetDigest(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMutableMapField( int number) { switch (number) { case 2: return internalGetMutableDigest(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.class, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.Builder.class); } // Construct using io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.newBuilder() private Builder() { } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; uri_ = ""; internalGetMutableDigest().clear(); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy build() { io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy buildPartial() { io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy result = new io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartial0(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.uri_ = uri_; } if (((from_bitField0_ & 0x00000002) != 0)) { result.digest_ = internalGetDigest(); result.digest_.makeImmutable(); } } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy) { return mergeFrom((io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy other) { if (other == io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.getDefaultInstance()) return this; if (!other.getUri().isEmpty()) { uri_ = other.uri_; bitField0_ |= 0x00000001; onChanged(); } internalGetMutableDigest().mergeFrom( other.internalGetDigest()); bitField0_ |= 0x00000002; this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { uri_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 case 18: { com.google.protobuf.MapEntry digest__ = input.readMessage( DigestDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); internalGetMutableDigest().getMutableMap().put( digest__.getKey(), digest__.getValue()); bitField0_ |= 0x00000002; break; } // case 18 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object uri_ = ""; /** * string uri = 1; * @return The uri. */ public java.lang.String getUri() { java.lang.Object ref = uri_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); uri_ = s; return s; } else { return (java.lang.String) ref; } } /** * string uri = 1; * @return The bytes for uri. */ public com.google.protobuf.ByteString getUriBytes() { java.lang.Object ref = uri_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); uri_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string uri = 1; * @param value The uri to set. * @return This builder for chaining. */ public Builder setUri( java.lang.String value) { if (value == null) { throw new NullPointerException(); } uri_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** * string uri = 1; * @return This builder for chaining. */ public Builder clearUri() { uri_ = getDefaultInstance().getUri(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** * string uri = 1; * @param value The bytes for uri to set. * @return This builder for chaining. */ public Builder setUriBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); uri_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } private com.google.protobuf.MapField< java.lang.String, java.lang.String> digest_; private com.google.protobuf.MapField internalGetDigest() { if (digest_ == null) { return com.google.protobuf.MapField.emptyMapField( DigestDefaultEntryHolder.defaultEntry); } return digest_; } private com.google.protobuf.MapField internalGetMutableDigest() { if (digest_ == null) { digest_ = com.google.protobuf.MapField.newMapField( DigestDefaultEntryHolder.defaultEntry); } if (!digest_.isMutable()) { digest_ = digest_.copy(); } bitField0_ |= 0x00000002; onChanged(); return digest_; } public int getDigestCount() { return internalGetDigest().getMap().size(); } /** * map<string, string> digest = 2; */ @java.lang.Override public boolean containsDigest( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetDigest().getMap().containsKey(key); } /** * Use {@link #getDigestMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getDigest() { return getDigestMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public java.util.Map getDigestMap() { return internalGetDigest().getMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public /* nullable */ java.lang.String getDigestOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, string> digest = 2; */ @java.lang.Override public java.lang.String getDigestOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } public Builder clearDigest() { bitField0_ = (bitField0_ & ~0x00000002); internalGetMutableDigest().getMutableMap() .clear(); return this; } /** * map<string, string> digest = 2; */ public Builder removeDigest( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } internalGetMutableDigest().getMutableMap() .remove(key); return this; } /** * Use alternate mutation accessors instead. */ @java.lang.Deprecated public java.util.Map getMutableDigest() { bitField0_ |= 0x00000002; return internalGetMutableDigest().getMutableMap(); } /** * map<string, string> digest = 2; */ public Builder putDigest( java.lang.String key, java.lang.String value) { if (key == null) { throw new NullPointerException("map key"); } if (value == null) { throw new NullPointerException("map value"); } internalGetMutableDigest().getMutableMap() .put(key, value); bitField0_ |= 0x00000002; return this; } /** * map<string, string> digest = 2; */ public Builder putAllDigest( java.util.Map values) { internalGetMutableDigest().getMutableMap() .putAll(values); bitField0_ |= 0x00000002; return this; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy) private static final io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy(); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public Policy parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } public interface InputAttestationOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation) com.google.protobuf.MessageOrBuilder { /** * string uri = 1; * @return The uri. */ java.lang.String getUri(); /** * string uri = 1; * @return The bytes for uri. */ com.google.protobuf.ByteString getUriBytes(); /** * map<string, string> digest = 2; */ int getDigestCount(); /** * map<string, string> digest = 2; */ boolean containsDigest( java.lang.String key); /** * Use {@link #getDigestMap()} instead. */ @java.lang.Deprecated java.util.Map getDigest(); /** * map<string, string> digest = 2; */ java.util.Map getDigestMap(); /** * map<string, string> digest = 2; */ /* nullable */ java.lang.String getDigestOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue); /** * map<string, string> digest = 2; */ java.lang.String getDigestOrThrow( java.lang.String key); } /** * Protobuf type {@code in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation} */ public static final class InputAttestation extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation) InputAttestationOrBuilder { private static final long serialVersionUID = 0L; // Use InputAttestation.newBuilder() to construct. private InputAttestation(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private InputAttestation() { uri_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new InputAttestation(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_descriptor; } @SuppressWarnings({"rawtypes"}) @java.lang.Override protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 2: return internalGetDigest(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.class, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.Builder.class); } public static final int URI_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object uri_ = ""; /** * string uri = 1; * @return The uri. */ @java.lang.Override public java.lang.String getUri() { java.lang.Object ref = uri_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); uri_ = s; return s; } } /** * string uri = 1; * @return The bytes for uri. */ @java.lang.Override public com.google.protobuf.ByteString getUriBytes() { java.lang.Object ref = uri_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); uri_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int DIGEST_FIELD_NUMBER = 2; private static final class DigestDefaultEntryHolder { static final com.google.protobuf.MapEntry< java.lang.String, java.lang.String> defaultEntry = com.google.protobuf.MapEntry .newDefaultInstance( io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_DigestEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.STRING, ""); } @SuppressWarnings("serial") private com.google.protobuf.MapField< java.lang.String, java.lang.String> digest_; private com.google.protobuf.MapField internalGetDigest() { if (digest_ == null) { return com.google.protobuf.MapField.emptyMapField( DigestDefaultEntryHolder.defaultEntry); } return digest_; } public int getDigestCount() { return internalGetDigest().getMap().size(); } /** * map<string, string> digest = 2; */ @java.lang.Override public boolean containsDigest( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetDigest().getMap().containsKey(key); } /** * Use {@link #getDigestMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getDigest() { return getDigestMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public java.util.Map getDigestMap() { return internalGetDigest().getMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public /* nullable */ java.lang.String getDigestOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, string> digest = 2; */ @java.lang.Override public java.lang.String getDigestOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uri_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uri_); } com.google.protobuf.GeneratedMessageV3 .serializeStringMapTo( output, internalGetDigest(), DigestDefaultEntryHolder.defaultEntry, 2); getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uri_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uri_); } for (java.util.Map.Entry entry : internalGetDigest().getMap().entrySet()) { com.google.protobuf.MapEntry digest__ = DigestDefaultEntryHolder.defaultEntry.newBuilderForType() .setKey(entry.getKey()) .setValue(entry.getValue()) .build(); size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, digest__); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation)) { return super.equals(obj); } io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation other = (io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation) obj; if (!getUri() .equals(other.getUri())) return false; if (!internalGetDigest().equals( other.internalGetDigest())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + URI_FIELD_NUMBER; hash = (53 * hash) + getUri().hashCode(); if (!internalGetDigest().getMap().isEmpty()) { hash = (37 * hash) + DIGEST_FIELD_NUMBER; hash = (53 * hash) + internalGetDigest().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** * Protobuf type {@code in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation) io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestationOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_descriptor; } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 2: return internalGetDigest(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMutableMapField( int number) { switch (number) { case 2: return internalGetMutableDigest(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.class, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.Builder.class); } // Construct using io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.newBuilder() private Builder() { } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; uri_ = ""; internalGetMutableDigest().clear(); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation build() { io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation buildPartial() { io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation result = new io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartial0(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.uri_ = uri_; } if (((from_bitField0_ & 0x00000002) != 0)) { result.digest_ = internalGetDigest(); result.digest_.makeImmutable(); } } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation) { return mergeFrom((io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation other) { if (other == io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.getDefaultInstance()) return this; if (!other.getUri().isEmpty()) { uri_ = other.uri_; bitField0_ |= 0x00000001; onChanged(); } internalGetMutableDigest().mergeFrom( other.internalGetDigest()); bitField0_ |= 0x00000002; this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { uri_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 case 18: { com.google.protobuf.MapEntry digest__ = input.readMessage( DigestDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); internalGetMutableDigest().getMutableMap().put( digest__.getKey(), digest__.getValue()); bitField0_ |= 0x00000002; break; } // case 18 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object uri_ = ""; /** * string uri = 1; * @return The uri. */ public java.lang.String getUri() { java.lang.Object ref = uri_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); uri_ = s; return s; } else { return (java.lang.String) ref; } } /** * string uri = 1; * @return The bytes for uri. */ public com.google.protobuf.ByteString getUriBytes() { java.lang.Object ref = uri_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); uri_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string uri = 1; * @param value The uri to set. * @return This builder for chaining. */ public Builder setUri( java.lang.String value) { if (value == null) { throw new NullPointerException(); } uri_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** * string uri = 1; * @return This builder for chaining. */ public Builder clearUri() { uri_ = getDefaultInstance().getUri(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** * string uri = 1; * @param value The bytes for uri to set. * @return This builder for chaining. */ public Builder setUriBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); uri_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } private com.google.protobuf.MapField< java.lang.String, java.lang.String> digest_; private com.google.protobuf.MapField internalGetDigest() { if (digest_ == null) { return com.google.protobuf.MapField.emptyMapField( DigestDefaultEntryHolder.defaultEntry); } return digest_; } private com.google.protobuf.MapField internalGetMutableDigest() { if (digest_ == null) { digest_ = com.google.protobuf.MapField.newMapField( DigestDefaultEntryHolder.defaultEntry); } if (!digest_.isMutable()) { digest_ = digest_.copy(); } bitField0_ |= 0x00000002; onChanged(); return digest_; } public int getDigestCount() { return internalGetDigest().getMap().size(); } /** * map<string, string> digest = 2; */ @java.lang.Override public boolean containsDigest( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetDigest().getMap().containsKey(key); } /** * Use {@link #getDigestMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getDigest() { return getDigestMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public java.util.Map getDigestMap() { return internalGetDigest().getMap(); } /** * map<string, string> digest = 2; */ @java.lang.Override public /* nullable */ java.lang.String getDigestOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, string> digest = 2; */ @java.lang.Override public java.lang.String getDigestOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } public Builder clearDigest() { bitField0_ = (bitField0_ & ~0x00000002); internalGetMutableDigest().getMutableMap() .clear(); return this; } /** * map<string, string> digest = 2; */ public Builder removeDigest( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } internalGetMutableDigest().getMutableMap() .remove(key); return this; } /** * Use alternate mutation accessors instead. */ @java.lang.Deprecated public java.util.Map getMutableDigest() { bitField0_ |= 0x00000002; return internalGetMutableDigest().getMutableMap(); } /** * map<string, string> digest = 2; */ public Builder putDigest( java.lang.String key, java.lang.String value) { if (key == null) { throw new NullPointerException("map key"); } if (value == null) { throw new NullPointerException("map value"); } internalGetMutableDigest().getMutableMap() .put(key, value); bitField0_ |= 0x00000002; return this; } /** * map<string, string> digest = 2; */ public Builder putAllDigest( java.util.Map values) { internalGetMutableDigest().getMutableMap() .putAll(values); bitField0_ |= 0x00000002; return this; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation) private static final io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation(); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public InputAttestation parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private int bitField0_; public static final int VERIFIER_FIELD_NUMBER = 1; private io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier verifier_; /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier verifier = 1; * @return Whether the verifier field is set. */ @java.lang.Override public boolean hasVerifier() { return ((bitField0_ & 0x00000001) != 0); } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier verifier = 1; * @return The verifier. */ @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier getVerifier() { return verifier_ == null ? io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.getDefaultInstance() : verifier_; } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier verifier = 1; */ @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.VerifierOrBuilder getVerifierOrBuilder() { return verifier_ == null ? io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.getDefaultInstance() : verifier_; } public static final int TIME_VERIFIED_FIELD_NUMBER = 2; private com.google.protobuf.Timestamp timeVerified_; /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; * @return Whether the timeVerified field is set. */ @java.lang.Override public boolean hasTimeVerified() { return ((bitField0_ & 0x00000002) != 0); } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; * @return The timeVerified. */ @java.lang.Override public com.google.protobuf.Timestamp getTimeVerified() { return timeVerified_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeVerified_; } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; */ @java.lang.Override public com.google.protobuf.TimestampOrBuilder getTimeVerifiedOrBuilder() { return timeVerified_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeVerified_; } public static final int RESOURCE_URI_FIELD_NUMBER = 3; @SuppressWarnings("serial") private volatile java.lang.Object resourceUri_ = ""; /** * string resource_uri = 3 [json_name = "resourceUri"]; * @return The resourceUri. */ @java.lang.Override public java.lang.String getResourceUri() { java.lang.Object ref = resourceUri_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); resourceUri_ = s; return s; } } /** * string resource_uri = 3 [json_name = "resourceUri"]; * @return The bytes for resourceUri. */ @java.lang.Override public com.google.protobuf.ByteString getResourceUriBytes() { java.lang.Object ref = resourceUri_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); resourceUri_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int POLICY_FIELD_NUMBER = 4; private io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy policy_; /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy policy = 4; * @return Whether the policy field is set. */ @java.lang.Override public boolean hasPolicy() { return ((bitField0_ & 0x00000004) != 0); } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy policy = 4; * @return The policy. */ @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy getPolicy() { return policy_ == null ? io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.getDefaultInstance() : policy_; } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy policy = 4; */ @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.PolicyOrBuilder getPolicyOrBuilder() { return policy_ == null ? io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.getDefaultInstance() : policy_; } public static final int INPUT_ATTESTATIONS_FIELD_NUMBER = 5; @SuppressWarnings("serial") private java.util.List inputAttestations_; /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ @java.lang.Override public java.util.List getInputAttestationsList() { return inputAttestations_; } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ @java.lang.Override public java.util.List getInputAttestationsOrBuilderList() { return inputAttestations_; } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ @java.lang.Override public int getInputAttestationsCount() { return inputAttestations_.size(); } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation getInputAttestations(int index) { return inputAttestations_.get(index); } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestationOrBuilder getInputAttestationsOrBuilder( int index) { return inputAttestations_.get(index); } public static final int VERIFICATION_RESULT_FIELD_NUMBER = 6; @SuppressWarnings("serial") private volatile java.lang.Object verificationResult_ = ""; /** * string verification_result = 6 [json_name = "verificationResult"]; * @return The verificationResult. */ @java.lang.Override public java.lang.String getVerificationResult() { java.lang.Object ref = verificationResult_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); verificationResult_ = s; return s; } } /** * string verification_result = 6 [json_name = "verificationResult"]; * @return The bytes for verificationResult. */ @java.lang.Override public com.google.protobuf.ByteString getVerificationResultBytes() { java.lang.Object ref = verificationResult_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); verificationResult_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int VERIFIED_LEVELS_FIELD_NUMBER = 7; @SuppressWarnings("serial") private volatile java.lang.Object verifiedLevels_ = ""; /** * string verified_levels = 7 [json_name = "verifiedLevels"]; * @return The verifiedLevels. */ @java.lang.Override public java.lang.String getVerifiedLevels() { java.lang.Object ref = verifiedLevels_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); verifiedLevels_ = s; return s; } } /** * string verified_levels = 7 [json_name = "verifiedLevels"]; * @return The bytes for verifiedLevels. */ @java.lang.Override public com.google.protobuf.ByteString getVerifiedLevelsBytes() { java.lang.Object ref = verifiedLevels_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); verifiedLevels_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int DEPENDENCY_LEVELS_FIELD_NUMBER = 8; private static final class DependencyLevelsDefaultEntryHolder { static final com.google.protobuf.MapEntry< java.lang.String, java.lang.Long> defaultEntry = com.google.protobuf.MapEntry .newDefaultInstance( io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_DependencyLevelsEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.UINT64, 0L); } @SuppressWarnings("serial") private com.google.protobuf.MapField< java.lang.String, java.lang.Long> dependencyLevels_; private com.google.protobuf.MapField internalGetDependencyLevels() { if (dependencyLevels_ == null) { return com.google.protobuf.MapField.emptyMapField( DependencyLevelsDefaultEntryHolder.defaultEntry); } return dependencyLevels_; } public int getDependencyLevelsCount() { return internalGetDependencyLevels().getMap().size(); } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ @java.lang.Override public boolean containsDependencyLevels( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetDependencyLevels().getMap().containsKey(key); } /** * Use {@link #getDependencyLevelsMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getDependencyLevels() { return getDependencyLevelsMap(); } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ @java.lang.Override public java.util.Map getDependencyLevelsMap() { return internalGetDependencyLevels().getMap(); } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ @java.lang.Override public long getDependencyLevelsOrDefault( java.lang.String key, long defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDependencyLevels().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ @java.lang.Override public long getDependencyLevelsOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDependencyLevels().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } public static final int SLSA_VERSION_FIELD_NUMBER = 9; @SuppressWarnings("serial") private volatile java.lang.Object slsaVersion_ = ""; /** * string slsa_version = 9 [json_name = "slsaVersion"]; * @return The slsaVersion. */ @java.lang.Override public java.lang.String getSlsaVersion() { java.lang.Object ref = slsaVersion_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); slsaVersion_ = s; return s; } } /** * string slsa_version = 9 [json_name = "slsaVersion"]; * @return The bytes for slsaVersion. */ @java.lang.Override public com.google.protobuf.ByteString getSlsaVersionBytes() { java.lang.Object ref = slsaVersion_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); slsaVersion_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(1, getVerifier()); } if (((bitField0_ & 0x00000002) != 0)) { output.writeMessage(2, getTimeVerified()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceUri_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, resourceUri_); } if (((bitField0_ & 0x00000004) != 0)) { output.writeMessage(4, getPolicy()); } for (int i = 0; i < inputAttestations_.size(); i++) { output.writeMessage(5, inputAttestations_.get(i)); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(verificationResult_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 6, verificationResult_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(verifiedLevels_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 7, verifiedLevels_); } com.google.protobuf.GeneratedMessageV3 .serializeStringMapTo( output, internalGetDependencyLevels(), DependencyLevelsDefaultEntryHolder.defaultEntry, 8); if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(slsaVersion_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 9, slsaVersion_); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(1, getVerifier()); } if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, getTimeVerified()); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceUri_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, resourceUri_); } if (((bitField0_ & 0x00000004) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getPolicy()); } for (int i = 0; i < inputAttestations_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(5, inputAttestations_.get(i)); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(verificationResult_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, verificationResult_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(verifiedLevels_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, verifiedLevels_); } for (java.util.Map.Entry entry : internalGetDependencyLevels().getMap().entrySet()) { com.google.protobuf.MapEntry dependencyLevels__ = DependencyLevelsDefaultEntryHolder.defaultEntry.newBuilderForType() .setKey(entry.getKey()) .setValue(entry.getValue()) .build(); size += com.google.protobuf.CodedOutputStream .computeMessageSize(8, dependencyLevels__); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(slsaVersion_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, slsaVersion_); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary)) { return super.equals(obj); } io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary other = (io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary) obj; if (hasVerifier() != other.hasVerifier()) return false; if (hasVerifier()) { if (!getVerifier() .equals(other.getVerifier())) return false; } if (hasTimeVerified() != other.hasTimeVerified()) return false; if (hasTimeVerified()) { if (!getTimeVerified() .equals(other.getTimeVerified())) return false; } if (!getResourceUri() .equals(other.getResourceUri())) return false; if (hasPolicy() != other.hasPolicy()) return false; if (hasPolicy()) { if (!getPolicy() .equals(other.getPolicy())) return false; } if (!getInputAttestationsList() .equals(other.getInputAttestationsList())) return false; if (!getVerificationResult() .equals(other.getVerificationResult())) return false; if (!getVerifiedLevels() .equals(other.getVerifiedLevels())) return false; if (!internalGetDependencyLevels().equals( other.internalGetDependencyLevels())) return false; if (!getSlsaVersion() .equals(other.getSlsaVersion())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); if (hasVerifier()) { hash = (37 * hash) + VERIFIER_FIELD_NUMBER; hash = (53 * hash) + getVerifier().hashCode(); } if (hasTimeVerified()) { hash = (37 * hash) + TIME_VERIFIED_FIELD_NUMBER; hash = (53 * hash) + getTimeVerified().hashCode(); } hash = (37 * hash) + RESOURCE_URI_FIELD_NUMBER; hash = (53 * hash) + getResourceUri().hashCode(); if (hasPolicy()) { hash = (37 * hash) + POLICY_FIELD_NUMBER; hash = (53 * hash) + getPolicy().hashCode(); } if (getInputAttestationsCount() > 0) { hash = (37 * hash) + INPUT_ATTESTATIONS_FIELD_NUMBER; hash = (53 * hash) + getInputAttestationsList().hashCode(); } hash = (37 * hash) + VERIFICATION_RESULT_FIELD_NUMBER; hash = (53 * hash) + getVerificationResult().hashCode(); hash = (37 * hash) + VERIFIED_LEVELS_FIELD_NUMBER; hash = (53 * hash) + getVerifiedLevels().hashCode(); if (!internalGetDependencyLevels().getMap().isEmpty()) { hash = (37 * hash) + DEPENDENCY_LEVELS_FIELD_NUMBER; hash = (53 * hash) + internalGetDependencyLevels().hashCode(); } hash = (37 * hash) + SLSA_VERSION_FIELD_NUMBER; hash = (53 * hash) + getSlsaVersion().hashCode(); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** *
     * Proto representation of predicate type https://slsa.dev/verification_summary/v1
     * Validation of all fields is left to the users of this proto.
     * 
* * Protobuf type {@code in_toto_attestation.predicates.vsa.v1.VerificationSummary} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.predicates.vsa.v1.VerificationSummary) io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummaryOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_descriptor; } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 8: return internalGetDependencyLevels(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMutableMapField( int number) { switch (number) { case 8: return internalGetMutableDependencyLevels(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.class, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Builder.class); } // Construct using io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getVerifierFieldBuilder(); getTimeVerifiedFieldBuilder(); getPolicyFieldBuilder(); getInputAttestationsFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; verifier_ = null; if (verifierBuilder_ != null) { verifierBuilder_.dispose(); verifierBuilder_ = null; } timeVerified_ = null; if (timeVerifiedBuilder_ != null) { timeVerifiedBuilder_.dispose(); timeVerifiedBuilder_ = null; } resourceUri_ = ""; policy_ = null; if (policyBuilder_ != null) { policyBuilder_.dispose(); policyBuilder_ = null; } if (inputAttestationsBuilder_ == null) { inputAttestations_ = java.util.Collections.emptyList(); } else { inputAttestations_ = null; inputAttestationsBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000010); verificationResult_ = ""; verifiedLevels_ = ""; internalGetMutableDependencyLevels().clear(); slsaVersion_ = ""; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_descriptor; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary getDefaultInstanceForType() { return io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary build() { io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary buildPartial() { io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary result = new io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary(this); buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartialRepeatedFields(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary result) { if (inputAttestationsBuilder_ == null) { if (((bitField0_ & 0x00000010) != 0)) { inputAttestations_ = java.util.Collections.unmodifiableList(inputAttestations_); bitField0_ = (bitField0_ & ~0x00000010); } result.inputAttestations_ = inputAttestations_; } else { result.inputAttestations_ = inputAttestationsBuilder_.build(); } } private void buildPartial0(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary result) { int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { result.verifier_ = verifierBuilder_ == null ? verifier_ : verifierBuilder_.build(); to_bitField0_ |= 0x00000001; } if (((from_bitField0_ & 0x00000002) != 0)) { result.timeVerified_ = timeVerifiedBuilder_ == null ? timeVerified_ : timeVerifiedBuilder_.build(); to_bitField0_ |= 0x00000002; } if (((from_bitField0_ & 0x00000004) != 0)) { result.resourceUri_ = resourceUri_; } if (((from_bitField0_ & 0x00000008) != 0)) { result.policy_ = policyBuilder_ == null ? policy_ : policyBuilder_.build(); to_bitField0_ |= 0x00000004; } if (((from_bitField0_ & 0x00000020) != 0)) { result.verificationResult_ = verificationResult_; } if (((from_bitField0_ & 0x00000040) != 0)) { result.verifiedLevels_ = verifiedLevels_; } if (((from_bitField0_ & 0x00000080) != 0)) { result.dependencyLevels_ = internalGetDependencyLevels(); result.dependencyLevels_.makeImmutable(); } if (((from_bitField0_ & 0x00000100) != 0)) { result.slsaVersion_ = slsaVersion_; } result.bitField0_ |= to_bitField0_; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary) { return mergeFrom((io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary other) { if (other == io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.getDefaultInstance()) return this; if (other.hasVerifier()) { mergeVerifier(other.getVerifier()); } if (other.hasTimeVerified()) { mergeTimeVerified(other.getTimeVerified()); } if (!other.getResourceUri().isEmpty()) { resourceUri_ = other.resourceUri_; bitField0_ |= 0x00000004; onChanged(); } if (other.hasPolicy()) { mergePolicy(other.getPolicy()); } if (inputAttestationsBuilder_ == null) { if (!other.inputAttestations_.isEmpty()) { if (inputAttestations_.isEmpty()) { inputAttestations_ = other.inputAttestations_; bitField0_ = (bitField0_ & ~0x00000010); } else { ensureInputAttestationsIsMutable(); inputAttestations_.addAll(other.inputAttestations_); } onChanged(); } } else { if (!other.inputAttestations_.isEmpty()) { if (inputAttestationsBuilder_.isEmpty()) { inputAttestationsBuilder_.dispose(); inputAttestationsBuilder_ = null; inputAttestations_ = other.inputAttestations_; bitField0_ = (bitField0_ & ~0x00000010); inputAttestationsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getInputAttestationsFieldBuilder() : null; } else { inputAttestationsBuilder_.addAllMessages(other.inputAttestations_); } } } if (!other.getVerificationResult().isEmpty()) { verificationResult_ = other.verificationResult_; bitField0_ |= 0x00000020; onChanged(); } if (!other.getVerifiedLevels().isEmpty()) { verifiedLevels_ = other.verifiedLevels_; bitField0_ |= 0x00000040; onChanged(); } internalGetMutableDependencyLevels().mergeFrom( other.internalGetDependencyLevels()); bitField0_ |= 0x00000080; if (!other.getSlsaVersion().isEmpty()) { slsaVersion_ = other.slsaVersion_; bitField0_ |= 0x00000100; onChanged(); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { input.readMessage( getVerifierFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000001; break; } // case 10 case 18: { input.readMessage( getTimeVerifiedFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000002; break; } // case 18 case 26: { resourceUri_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000004; break; } // case 26 case 34: { input.readMessage( getPolicyFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000008; break; } // case 34 case 42: { io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation m = input.readMessage( io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.parser(), extensionRegistry); if (inputAttestationsBuilder_ == null) { ensureInputAttestationsIsMutable(); inputAttestations_.add(m); } else { inputAttestationsBuilder_.addMessage(m); } break; } // case 42 case 50: { verificationResult_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000020; break; } // case 50 case 58: { verifiedLevels_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000040; break; } // case 58 case 66: { com.google.protobuf.MapEntry dependencyLevels__ = input.readMessage( DependencyLevelsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); internalGetMutableDependencyLevels().getMutableMap().put( dependencyLevels__.getKey(), dependencyLevels__.getValue()); bitField0_ |= 0x00000080; break; } // case 66 case 74: { slsaVersion_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000100; break; } // case 74 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier verifier_; private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.Builder, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.VerifierOrBuilder> verifierBuilder_; /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier verifier = 1; * @return Whether the verifier field is set. */ public boolean hasVerifier() { return ((bitField0_ & 0x00000001) != 0); } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier verifier = 1; * @return The verifier. */ public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier getVerifier() { if (verifierBuilder_ == null) { return verifier_ == null ? io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.getDefaultInstance() : verifier_; } else { return verifierBuilder_.getMessage(); } } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier verifier = 1; */ public Builder setVerifier(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier value) { if (verifierBuilder_ == null) { if (value == null) { throw new NullPointerException(); } verifier_ = value; } else { verifierBuilder_.setMessage(value); } bitField0_ |= 0x00000001; onChanged(); return this; } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier verifier = 1; */ public Builder setVerifier( io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.Builder builderForValue) { if (verifierBuilder_ == null) { verifier_ = builderForValue.build(); } else { verifierBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000001; onChanged(); return this; } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier verifier = 1; */ public Builder mergeVerifier(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier value) { if (verifierBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0) && verifier_ != null && verifier_ != io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.getDefaultInstance()) { getVerifierBuilder().mergeFrom(value); } else { verifier_ = value; } } else { verifierBuilder_.mergeFrom(value); } if (verifier_ != null) { bitField0_ |= 0x00000001; onChanged(); } return this; } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier verifier = 1; */ public Builder clearVerifier() { bitField0_ = (bitField0_ & ~0x00000001); verifier_ = null; if (verifierBuilder_ != null) { verifierBuilder_.dispose(); verifierBuilder_ = null; } onChanged(); return this; } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier verifier = 1; */ public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.Builder getVerifierBuilder() { bitField0_ |= 0x00000001; onChanged(); return getVerifierFieldBuilder().getBuilder(); } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier verifier = 1; */ public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.VerifierOrBuilder getVerifierOrBuilder() { if (verifierBuilder_ != null) { return verifierBuilder_.getMessageOrBuilder(); } else { return verifier_ == null ? io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.getDefaultInstance() : verifier_; } } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier verifier = 1; */ private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.Builder, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.VerifierOrBuilder> getVerifierFieldBuilder() { if (verifierBuilder_ == null) { verifierBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Verifier.Builder, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.VerifierOrBuilder>( getVerifier(), getParentForChildren(), isClean()); verifier_ = null; } return verifierBuilder_; } private com.google.protobuf.Timestamp timeVerified_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> timeVerifiedBuilder_; /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; * @return Whether the timeVerified field is set. */ public boolean hasTimeVerified() { return ((bitField0_ & 0x00000002) != 0); } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; * @return The timeVerified. */ public com.google.protobuf.Timestamp getTimeVerified() { if (timeVerifiedBuilder_ == null) { return timeVerified_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeVerified_; } else { return timeVerifiedBuilder_.getMessage(); } } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; */ public Builder setTimeVerified(com.google.protobuf.Timestamp value) { if (timeVerifiedBuilder_ == null) { if (value == null) { throw new NullPointerException(); } timeVerified_ = value; } else { timeVerifiedBuilder_.setMessage(value); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; */ public Builder setTimeVerified( com.google.protobuf.Timestamp.Builder builderForValue) { if (timeVerifiedBuilder_ == null) { timeVerified_ = builderForValue.build(); } else { timeVerifiedBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000002; onChanged(); return this; } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; */ public Builder mergeTimeVerified(com.google.protobuf.Timestamp value) { if (timeVerifiedBuilder_ == null) { if (((bitField0_ & 0x00000002) != 0) && timeVerified_ != null && timeVerified_ != com.google.protobuf.Timestamp.getDefaultInstance()) { getTimeVerifiedBuilder().mergeFrom(value); } else { timeVerified_ = value; } } else { timeVerifiedBuilder_.mergeFrom(value); } if (timeVerified_ != null) { bitField0_ |= 0x00000002; onChanged(); } return this; } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; */ public Builder clearTimeVerified() { bitField0_ = (bitField0_ & ~0x00000002); timeVerified_ = null; if (timeVerifiedBuilder_ != null) { timeVerifiedBuilder_.dispose(); timeVerifiedBuilder_ = null; } onChanged(); return this; } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; */ public com.google.protobuf.Timestamp.Builder getTimeVerifiedBuilder() { bitField0_ |= 0x00000002; onChanged(); return getTimeVerifiedFieldBuilder().getBuilder(); } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; */ public com.google.protobuf.TimestampOrBuilder getTimeVerifiedOrBuilder() { if (timeVerifiedBuilder_ != null) { return timeVerifiedBuilder_.getMessageOrBuilder(); } else { return timeVerified_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : timeVerified_; } } /** * .google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder> getTimeVerifiedFieldBuilder() { if (timeVerifiedBuilder_ == null) { timeVerifiedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Timestamp, com.google.protobuf.Timestamp.Builder, com.google.protobuf.TimestampOrBuilder>( getTimeVerified(), getParentForChildren(), isClean()); timeVerified_ = null; } return timeVerifiedBuilder_; } private java.lang.Object resourceUri_ = ""; /** * string resource_uri = 3 [json_name = "resourceUri"]; * @return The resourceUri. */ public java.lang.String getResourceUri() { java.lang.Object ref = resourceUri_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); resourceUri_ = s; return s; } else { return (java.lang.String) ref; } } /** * string resource_uri = 3 [json_name = "resourceUri"]; * @return The bytes for resourceUri. */ public com.google.protobuf.ByteString getResourceUriBytes() { java.lang.Object ref = resourceUri_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); resourceUri_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string resource_uri = 3 [json_name = "resourceUri"]; * @param value The resourceUri to set. * @return This builder for chaining. */ public Builder setResourceUri( java.lang.String value) { if (value == null) { throw new NullPointerException(); } resourceUri_ = value; bitField0_ |= 0x00000004; onChanged(); return this; } /** * string resource_uri = 3 [json_name = "resourceUri"]; * @return This builder for chaining. */ public Builder clearResourceUri() { resourceUri_ = getDefaultInstance().getResourceUri(); bitField0_ = (bitField0_ & ~0x00000004); onChanged(); return this; } /** * string resource_uri = 3 [json_name = "resourceUri"]; * @param value The bytes for resourceUri to set. * @return This builder for chaining. */ public Builder setResourceUriBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); resourceUri_ = value; bitField0_ |= 0x00000004; onChanged(); return this; } private io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy policy_; private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.Builder, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.PolicyOrBuilder> policyBuilder_; /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy policy = 4; * @return Whether the policy field is set. */ public boolean hasPolicy() { return ((bitField0_ & 0x00000008) != 0); } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy policy = 4; * @return The policy. */ public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy getPolicy() { if (policyBuilder_ == null) { return policy_ == null ? io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.getDefaultInstance() : policy_; } else { return policyBuilder_.getMessage(); } } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy policy = 4; */ public Builder setPolicy(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy value) { if (policyBuilder_ == null) { if (value == null) { throw new NullPointerException(); } policy_ = value; } else { policyBuilder_.setMessage(value); } bitField0_ |= 0x00000008; onChanged(); return this; } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy policy = 4; */ public Builder setPolicy( io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.Builder builderForValue) { if (policyBuilder_ == null) { policy_ = builderForValue.build(); } else { policyBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000008; onChanged(); return this; } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy policy = 4; */ public Builder mergePolicy(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy value) { if (policyBuilder_ == null) { if (((bitField0_ & 0x00000008) != 0) && policy_ != null && policy_ != io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.getDefaultInstance()) { getPolicyBuilder().mergeFrom(value); } else { policy_ = value; } } else { policyBuilder_.mergeFrom(value); } if (policy_ != null) { bitField0_ |= 0x00000008; onChanged(); } return this; } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy policy = 4; */ public Builder clearPolicy() { bitField0_ = (bitField0_ & ~0x00000008); policy_ = null; if (policyBuilder_ != null) { policyBuilder_.dispose(); policyBuilder_ = null; } onChanged(); return this; } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy policy = 4; */ public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.Builder getPolicyBuilder() { bitField0_ |= 0x00000008; onChanged(); return getPolicyFieldBuilder().getBuilder(); } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy policy = 4; */ public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.PolicyOrBuilder getPolicyOrBuilder() { if (policyBuilder_ != null) { return policyBuilder_.getMessageOrBuilder(); } else { return policy_ == null ? io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.getDefaultInstance() : policy_; } } /** * .in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy policy = 4; */ private com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.Builder, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.PolicyOrBuilder> getPolicyFieldBuilder() { if (policyBuilder_ == null) { policyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.Policy.Builder, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.PolicyOrBuilder>( getPolicy(), getParentForChildren(), isClean()); policy_ = null; } return policyBuilder_; } private java.util.List inputAttestations_ = java.util.Collections.emptyList(); private void ensureInputAttestationsIsMutable() { if (!((bitField0_ & 0x00000010) != 0)) { inputAttestations_ = new java.util.ArrayList(inputAttestations_); bitField0_ |= 0x00000010; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.Builder, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestationOrBuilder> inputAttestationsBuilder_; /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public java.util.List getInputAttestationsList() { if (inputAttestationsBuilder_ == null) { return java.util.Collections.unmodifiableList(inputAttestations_); } else { return inputAttestationsBuilder_.getMessageList(); } } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public int getInputAttestationsCount() { if (inputAttestationsBuilder_ == null) { return inputAttestations_.size(); } else { return inputAttestationsBuilder_.getCount(); } } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation getInputAttestations(int index) { if (inputAttestationsBuilder_ == null) { return inputAttestations_.get(index); } else { return inputAttestationsBuilder_.getMessage(index); } } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public Builder setInputAttestations( int index, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation value) { if (inputAttestationsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureInputAttestationsIsMutable(); inputAttestations_.set(index, value); onChanged(); } else { inputAttestationsBuilder_.setMessage(index, value); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public Builder setInputAttestations( int index, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.Builder builderForValue) { if (inputAttestationsBuilder_ == null) { ensureInputAttestationsIsMutable(); inputAttestations_.set(index, builderForValue.build()); onChanged(); } else { inputAttestationsBuilder_.setMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public Builder addInputAttestations(io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation value) { if (inputAttestationsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureInputAttestationsIsMutable(); inputAttestations_.add(value); onChanged(); } else { inputAttestationsBuilder_.addMessage(value); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public Builder addInputAttestations( int index, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation value) { if (inputAttestationsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureInputAttestationsIsMutable(); inputAttestations_.add(index, value); onChanged(); } else { inputAttestationsBuilder_.addMessage(index, value); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public Builder addInputAttestations( io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.Builder builderForValue) { if (inputAttestationsBuilder_ == null) { ensureInputAttestationsIsMutable(); inputAttestations_.add(builderForValue.build()); onChanged(); } else { inputAttestationsBuilder_.addMessage(builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public Builder addInputAttestations( int index, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.Builder builderForValue) { if (inputAttestationsBuilder_ == null) { ensureInputAttestationsIsMutable(); inputAttestations_.add(index, builderForValue.build()); onChanged(); } else { inputAttestationsBuilder_.addMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public Builder addAllInputAttestations( java.lang.Iterable values) { if (inputAttestationsBuilder_ == null) { ensureInputAttestationsIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, inputAttestations_); onChanged(); } else { inputAttestationsBuilder_.addAllMessages(values); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public Builder clearInputAttestations() { if (inputAttestationsBuilder_ == null) { inputAttestations_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000010); onChanged(); } else { inputAttestationsBuilder_.clear(); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public Builder removeInputAttestations(int index) { if (inputAttestationsBuilder_ == null) { ensureInputAttestationsIsMutable(); inputAttestations_.remove(index); onChanged(); } else { inputAttestationsBuilder_.remove(index); } return this; } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.Builder getInputAttestationsBuilder( int index) { return getInputAttestationsFieldBuilder().getBuilder(index); } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestationOrBuilder getInputAttestationsOrBuilder( int index) { if (inputAttestationsBuilder_ == null) { return inputAttestations_.get(index); } else { return inputAttestationsBuilder_.getMessageOrBuilder(index); } } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public java.util.List getInputAttestationsOrBuilderList() { if (inputAttestationsBuilder_ != null) { return inputAttestationsBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(inputAttestations_); } } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.Builder addInputAttestationsBuilder() { return getInputAttestationsFieldBuilder().addBuilder( io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.getDefaultInstance()); } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.Builder addInputAttestationsBuilder( int index) { return getInputAttestationsFieldBuilder().addBuilder( index, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.getDefaultInstance()); } /** * repeated .in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; */ public java.util.List getInputAttestationsBuilderList() { return getInputAttestationsFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.Builder, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestationOrBuilder> getInputAttestationsFieldBuilder() { if (inputAttestationsBuilder_ == null) { inputAttestationsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestation.Builder, io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary.InputAttestationOrBuilder>( inputAttestations_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); inputAttestations_ = null; } return inputAttestationsBuilder_; } private java.lang.Object verificationResult_ = ""; /** * string verification_result = 6 [json_name = "verificationResult"]; * @return The verificationResult. */ public java.lang.String getVerificationResult() { java.lang.Object ref = verificationResult_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); verificationResult_ = s; return s; } else { return (java.lang.String) ref; } } /** * string verification_result = 6 [json_name = "verificationResult"]; * @return The bytes for verificationResult. */ public com.google.protobuf.ByteString getVerificationResultBytes() { java.lang.Object ref = verificationResult_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); verificationResult_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string verification_result = 6 [json_name = "verificationResult"]; * @param value The verificationResult to set. * @return This builder for chaining. */ public Builder setVerificationResult( java.lang.String value) { if (value == null) { throw new NullPointerException(); } verificationResult_ = value; bitField0_ |= 0x00000020; onChanged(); return this; } /** * string verification_result = 6 [json_name = "verificationResult"]; * @return This builder for chaining. */ public Builder clearVerificationResult() { verificationResult_ = getDefaultInstance().getVerificationResult(); bitField0_ = (bitField0_ & ~0x00000020); onChanged(); return this; } /** * string verification_result = 6 [json_name = "verificationResult"]; * @param value The bytes for verificationResult to set. * @return This builder for chaining. */ public Builder setVerificationResultBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); verificationResult_ = value; bitField0_ |= 0x00000020; onChanged(); return this; } private java.lang.Object verifiedLevels_ = ""; /** * string verified_levels = 7 [json_name = "verifiedLevels"]; * @return The verifiedLevels. */ public java.lang.String getVerifiedLevels() { java.lang.Object ref = verifiedLevels_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); verifiedLevels_ = s; return s; } else { return (java.lang.String) ref; } } /** * string verified_levels = 7 [json_name = "verifiedLevels"]; * @return The bytes for verifiedLevels. */ public com.google.protobuf.ByteString getVerifiedLevelsBytes() { java.lang.Object ref = verifiedLevels_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); verifiedLevels_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string verified_levels = 7 [json_name = "verifiedLevels"]; * @param value The verifiedLevels to set. * @return This builder for chaining. */ public Builder setVerifiedLevels( java.lang.String value) { if (value == null) { throw new NullPointerException(); } verifiedLevels_ = value; bitField0_ |= 0x00000040; onChanged(); return this; } /** * string verified_levels = 7 [json_name = "verifiedLevels"]; * @return This builder for chaining. */ public Builder clearVerifiedLevels() { verifiedLevels_ = getDefaultInstance().getVerifiedLevels(); bitField0_ = (bitField0_ & ~0x00000040); onChanged(); return this; } /** * string verified_levels = 7 [json_name = "verifiedLevels"]; * @param value The bytes for verifiedLevels to set. * @return This builder for chaining. */ public Builder setVerifiedLevelsBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); verifiedLevels_ = value; bitField0_ |= 0x00000040; onChanged(); return this; } private com.google.protobuf.MapField< java.lang.String, java.lang.Long> dependencyLevels_; private com.google.protobuf.MapField internalGetDependencyLevels() { if (dependencyLevels_ == null) { return com.google.protobuf.MapField.emptyMapField( DependencyLevelsDefaultEntryHolder.defaultEntry); } return dependencyLevels_; } private com.google.protobuf.MapField internalGetMutableDependencyLevels() { if (dependencyLevels_ == null) { dependencyLevels_ = com.google.protobuf.MapField.newMapField( DependencyLevelsDefaultEntryHolder.defaultEntry); } if (!dependencyLevels_.isMutable()) { dependencyLevels_ = dependencyLevels_.copy(); } bitField0_ |= 0x00000080; onChanged(); return dependencyLevels_; } public int getDependencyLevelsCount() { return internalGetDependencyLevels().getMap().size(); } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ @java.lang.Override public boolean containsDependencyLevels( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetDependencyLevels().getMap().containsKey(key); } /** * Use {@link #getDependencyLevelsMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getDependencyLevels() { return getDependencyLevelsMap(); } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ @java.lang.Override public java.util.Map getDependencyLevelsMap() { return internalGetDependencyLevels().getMap(); } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ @java.lang.Override public long getDependencyLevelsOrDefault( java.lang.String key, long defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDependencyLevels().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ @java.lang.Override public long getDependencyLevelsOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDependencyLevels().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } public Builder clearDependencyLevels() { bitField0_ = (bitField0_ & ~0x00000080); internalGetMutableDependencyLevels().getMutableMap() .clear(); return this; } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ public Builder removeDependencyLevels( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } internalGetMutableDependencyLevels().getMutableMap() .remove(key); return this; } /** * Use alternate mutation accessors instead. */ @java.lang.Deprecated public java.util.Map getMutableDependencyLevels() { bitField0_ |= 0x00000080; return internalGetMutableDependencyLevels().getMutableMap(); } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ public Builder putDependencyLevels( java.lang.String key, long value) { if (key == null) { throw new NullPointerException("map key"); } internalGetMutableDependencyLevels().getMutableMap() .put(key, value); bitField0_ |= 0x00000080; return this; } /** * map<string, uint64> dependency_levels = 8 [json_name = "dependencyLevels"]; */ public Builder putAllDependencyLevels( java.util.Map values) { internalGetMutableDependencyLevels().getMutableMap() .putAll(values); bitField0_ |= 0x00000080; return this; } private java.lang.Object slsaVersion_ = ""; /** * string slsa_version = 9 [json_name = "slsaVersion"]; * @return The slsaVersion. */ public java.lang.String getSlsaVersion() { java.lang.Object ref = slsaVersion_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); slsaVersion_ = s; return s; } else { return (java.lang.String) ref; } } /** * string slsa_version = 9 [json_name = "slsaVersion"]; * @return The bytes for slsaVersion. */ public com.google.protobuf.ByteString getSlsaVersionBytes() { java.lang.Object ref = slsaVersion_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); slsaVersion_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string slsa_version = 9 [json_name = "slsaVersion"]; * @param value The slsaVersion to set. * @return This builder for chaining. */ public Builder setSlsaVersion( java.lang.String value) { if (value == null) { throw new NullPointerException(); } slsaVersion_ = value; bitField0_ |= 0x00000100; onChanged(); return this; } /** * string slsa_version = 9 [json_name = "slsaVersion"]; * @return This builder for chaining. */ public Builder clearSlsaVersion() { slsaVersion_ = getDefaultInstance().getSlsaVersion(); bitField0_ = (bitField0_ & ~0x00000100); onChanged(); return this; } /** * string slsa_version = 9 [json_name = "slsaVersion"]; * @param value The bytes for slsaVersion to set. * @return This builder for chaining. */ public Builder setSlsaVersionBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); slsaVersion_ = value; bitField0_ |= 0x00000100; onChanged(); return this; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.predicates.vsa.v1.VerificationSummary) } // @@protoc_insertion_point(class_scope:in_toto_attestation.predicates.vsa.v1.VerificationSummary) private static final io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary(); } public static io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public VerificationSummary parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.predicates.vsa.v1.Vsa.VerificationSummary getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Verifier_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Verifier_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_DigestEntry_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_DigestEntry_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_DigestEntry_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_DigestEntry_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_DependencyLevelsEntry_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_DependencyLevelsEntry_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { return descriptor; } private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { java.lang.String[] descriptorData = { "\n/in_toto_attestation/predicates/vsa/v1/" + "vsa.proto\022%in_toto_attestation.predicate" + "s.vsa.v1\032\037google/protobuf/timestamp.prot" + "o\"\314\010\n\023VerificationSummary\022U\n\010verifier\030\001 " + "\001(\0132C.in_toto_attestation.predicates.vsa" + ".v1.VerificationSummary.Verifier\022?\n\rtime" + "_verified\030\002 \001(\0132\032.google.protobuf.Timest" + "ampR\014timeVerified\022!\n\014resource_uri\030\003 \001(\tR" + "\013resourceUri\022Q\n\006policy\030\004 \001(\0132A.in_toto_a" + "ttestation.predicates.vsa.v1.Verificatio" + "nSummary.Policy\022z\n\022input_attestations\030\005 " + "\003(\0132K.in_toto_attestation.predicates.vsa" + ".v1.VerificationSummary.InputAttestation" + "R\021inputAttestations\022/\n\023verification_resu" + "lt\030\006 \001(\tR\022verificationResult\022\'\n\017verified" + "_levels\030\007 \001(\tR\016verifiedLevels\022}\n\021depende" + "ncy_levels\030\010 \003(\0132P.in_toto_attestation.p" + "redicates.vsa.v1.VerificationSummary.Dep" + "endencyLevelsEntryR\020dependencyLevels\022!\n\014" + "slsa_version\030\t \001(\tR\013slsaVersion\032\026\n\010Verif" + "ier\022\n\n\002id\030\001 \001(\t\032\243\001\n\006Policy\022\013\n\003uri\030\001 \001(\t\022" + "]\n\006digest\030\002 \003(\0132M.in_toto_attestation.pr" + "edicates.vsa.v1.VerificationSummary.Poli" + "cy.DigestEntry\032-\n\013DigestEntry\022\013\n\003key\030\001 \001" + "(\t\022\r\n\005value\030\002 \001(\t:\0028\001\032\267\001\n\020InputAttestati" + "on\022\013\n\003uri\030\001 \001(\t\022g\n\006digest\030\002 \003(\0132W.in_tot" + "o_attestation.predicates.vsa.v1.Verifica" + "tionSummary.InputAttestation.DigestEntry" + "\032-\n\013DigestEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 " + "\001(\t:\0028\001\0327\n\025DependencyLevelsEntry\022\013\n\003key\030" + "\001 \001(\t\022\r\n\005value\030\002 \001(\004:\0028\001Be\n.io.github.in" + "toto.attestation.predicates.vsa.v1Z3gith" + "ub.com/in-toto/attestation/go/predicates" + "/vsa/v1b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { com.google.protobuf.TimestampProto.getDescriptor(), }); internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_descriptor, new java.lang.String[] { "Verifier", "TimeVerified", "ResourceUri", "Policy", "InputAttestations", "VerificationResult", "VerifiedLevels", "DependencyLevels", "SlsaVersion", }); internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Verifier_descriptor = internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_descriptor.getNestedTypes().get(0); internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Verifier_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Verifier_descriptor, new java.lang.String[] { "Id", }); internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_descriptor = internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_descriptor.getNestedTypes().get(1); internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_descriptor, new java.lang.String[] { "Uri", "Digest", }); internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_DigestEntry_descriptor = internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_descriptor.getNestedTypes().get(0); internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_DigestEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_Policy_DigestEntry_descriptor, new java.lang.String[] { "Key", "Value", }); internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_descriptor = internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_descriptor.getNestedTypes().get(2); internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_descriptor, new java.lang.String[] { "Uri", "Digest", }); internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_DigestEntry_descriptor = internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_descriptor.getNestedTypes().get(0); internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_DigestEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_InputAttestation_DigestEntry_descriptor, new java.lang.String[] { "Key", "Value", }); internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_DependencyLevelsEntry_descriptor = internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_descriptor.getNestedTypes().get(3); internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_DependencyLevelsEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_predicates_vsa_v1_VerificationSummary_DependencyLevelsEntry_descriptor, new java.lang.String[] { "Key", "Value", }); com.google.protobuf.TimestampProto.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) } golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/v1/000077500000000000000000000000001470602552500272055ustar00rootroot00000000000000ResourceDescriptorOuterClass.java000066400000000000000000002040661470602552500356340ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/v1// Generated by the protocol buffer compiler. DO NOT EDIT! // source: in_toto_attestation/v1/resource_descriptor.proto package io.github.intoto.attestation.v1; public final class ResourceDescriptorOuterClass { private ResourceDescriptorOuterClass() {} public static void registerAllExtensions( com.google.protobuf.ExtensionRegistryLite registry) { } public static void registerAllExtensions( com.google.protobuf.ExtensionRegistry registry) { registerAllExtensions( (com.google.protobuf.ExtensionRegistryLite) registry); } public interface ResourceDescriptorOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.v1.ResourceDescriptor) com.google.protobuf.MessageOrBuilder { /** * string name = 1; * @return The name. */ java.lang.String getName(); /** * string name = 1; * @return The bytes for name. */ com.google.protobuf.ByteString getNameBytes(); /** * string uri = 2; * @return The uri. */ java.lang.String getUri(); /** * string uri = 2; * @return The bytes for uri. */ com.google.protobuf.ByteString getUriBytes(); /** * map<string, string> digest = 3; */ int getDigestCount(); /** * map<string, string> digest = 3; */ boolean containsDigest( java.lang.String key); /** * Use {@link #getDigestMap()} instead. */ @java.lang.Deprecated java.util.Map getDigest(); /** * map<string, string> digest = 3; */ java.util.Map getDigestMap(); /** * map<string, string> digest = 3; */ /* nullable */ java.lang.String getDigestOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue); /** * map<string, string> digest = 3; */ java.lang.String getDigestOrThrow( java.lang.String key); /** * bytes content = 4; * @return The content. */ com.google.protobuf.ByteString getContent(); /** * string download_location = 5; * @return The downloadLocation. */ java.lang.String getDownloadLocation(); /** * string download_location = 5; * @return The bytes for downloadLocation. */ com.google.protobuf.ByteString getDownloadLocationBytes(); /** * string media_type = 6; * @return The mediaType. */ java.lang.String getMediaType(); /** * string media_type = 6; * @return The bytes for mediaType. */ com.google.protobuf.ByteString getMediaTypeBytes(); /** *
     * Per the Struct protobuf spec, this type corresponds to
     * a JSON Object, which is truly a map<string, Value> under the hood.
     * So, the Struct a) is still consistent with our specification for
     * the `annotations` field, and b) has native support in some language
     * bindings making their use easier in implementations.
     * See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct
     * 
* * .google.protobuf.Struct annotations = 7; * @return Whether the annotations field is set. */ boolean hasAnnotations(); /** *
     * Per the Struct protobuf spec, this type corresponds to
     * a JSON Object, which is truly a map<string, Value> under the hood.
     * So, the Struct a) is still consistent with our specification for
     * the `annotations` field, and b) has native support in some language
     * bindings making their use easier in implementations.
     * See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct
     * 
* * .google.protobuf.Struct annotations = 7; * @return The annotations. */ com.google.protobuf.Struct getAnnotations(); /** *
     * Per the Struct protobuf spec, this type corresponds to
     * a JSON Object, which is truly a map<string, Value> under the hood.
     * So, the Struct a) is still consistent with our specification for
     * the `annotations` field, and b) has native support in some language
     * bindings making their use easier in implementations.
     * See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct
     * 
* * .google.protobuf.Struct annotations = 7; */ com.google.protobuf.StructOrBuilder getAnnotationsOrBuilder(); } /** *
   * Proto representation of the in-toto v1 ResourceDescriptor.
   * https://github.com/in-toto/attestation/blob/main/spec/v1/resource_descriptor.md
   * Validation of all fields is left to the users of this proto.
   * 
* * Protobuf type {@code in_toto_attestation.v1.ResourceDescriptor} */ public static final class ResourceDescriptor extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.v1.ResourceDescriptor) ResourceDescriptorOrBuilder { private static final long serialVersionUID = 0L; // Use ResourceDescriptor.newBuilder() to construct. private ResourceDescriptor(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private ResourceDescriptor() { name_ = ""; uri_ = ""; content_ = com.google.protobuf.ByteString.EMPTY; downloadLocation_ = ""; mediaType_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new ResourceDescriptor(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.internal_static_in_toto_attestation_v1_ResourceDescriptor_descriptor; } @SuppressWarnings({"rawtypes"}) @java.lang.Override protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 3: return internalGetDigest(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.internal_static_in_toto_attestation_v1_ResourceDescriptor_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.class, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder.class); } private int bitField0_; public static final int NAME_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object name_ = ""; /** * string name = 1; * @return The name. */ @java.lang.Override public java.lang.String getName() { java.lang.Object ref = name_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); name_ = s; return s; } } /** * string name = 1; * @return The bytes for name. */ @java.lang.Override public com.google.protobuf.ByteString getNameBytes() { java.lang.Object ref = name_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); name_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int URI_FIELD_NUMBER = 2; @SuppressWarnings("serial") private volatile java.lang.Object uri_ = ""; /** * string uri = 2; * @return The uri. */ @java.lang.Override public java.lang.String getUri() { java.lang.Object ref = uri_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); uri_ = s; return s; } } /** * string uri = 2; * @return The bytes for uri. */ @java.lang.Override public com.google.protobuf.ByteString getUriBytes() { java.lang.Object ref = uri_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); uri_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int DIGEST_FIELD_NUMBER = 3; private static final class DigestDefaultEntryHolder { static final com.google.protobuf.MapEntry< java.lang.String, java.lang.String> defaultEntry = com.google.protobuf.MapEntry .newDefaultInstance( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.internal_static_in_toto_attestation_v1_ResourceDescriptor_DigestEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.STRING, ""); } @SuppressWarnings("serial") private com.google.protobuf.MapField< java.lang.String, java.lang.String> digest_; private com.google.protobuf.MapField internalGetDigest() { if (digest_ == null) { return com.google.protobuf.MapField.emptyMapField( DigestDefaultEntryHolder.defaultEntry); } return digest_; } public int getDigestCount() { return internalGetDigest().getMap().size(); } /** * map<string, string> digest = 3; */ @java.lang.Override public boolean containsDigest( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetDigest().getMap().containsKey(key); } /** * Use {@link #getDigestMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getDigest() { return getDigestMap(); } /** * map<string, string> digest = 3; */ @java.lang.Override public java.util.Map getDigestMap() { return internalGetDigest().getMap(); } /** * map<string, string> digest = 3; */ @java.lang.Override public /* nullable */ java.lang.String getDigestOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, string> digest = 3; */ @java.lang.Override public java.lang.String getDigestOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } public static final int CONTENT_FIELD_NUMBER = 4; private com.google.protobuf.ByteString content_ = com.google.protobuf.ByteString.EMPTY; /** * bytes content = 4; * @return The content. */ @java.lang.Override public com.google.protobuf.ByteString getContent() { return content_; } public static final int DOWNLOAD_LOCATION_FIELD_NUMBER = 5; @SuppressWarnings("serial") private volatile java.lang.Object downloadLocation_ = ""; /** * string download_location = 5; * @return The downloadLocation. */ @java.lang.Override public java.lang.String getDownloadLocation() { java.lang.Object ref = downloadLocation_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); downloadLocation_ = s; return s; } } /** * string download_location = 5; * @return The bytes for downloadLocation. */ @java.lang.Override public com.google.protobuf.ByteString getDownloadLocationBytes() { java.lang.Object ref = downloadLocation_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); downloadLocation_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int MEDIA_TYPE_FIELD_NUMBER = 6; @SuppressWarnings("serial") private volatile java.lang.Object mediaType_ = ""; /** * string media_type = 6; * @return The mediaType. */ @java.lang.Override public java.lang.String getMediaType() { java.lang.Object ref = mediaType_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); mediaType_ = s; return s; } } /** * string media_type = 6; * @return The bytes for mediaType. */ @java.lang.Override public com.google.protobuf.ByteString getMediaTypeBytes() { java.lang.Object ref = mediaType_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); mediaType_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int ANNOTATIONS_FIELD_NUMBER = 7; private com.google.protobuf.Struct annotations_; /** *
     * Per the Struct protobuf spec, this type corresponds to
     * a JSON Object, which is truly a map<string, Value> under the hood.
     * So, the Struct a) is still consistent with our specification for
     * the `annotations` field, and b) has native support in some language
     * bindings making their use easier in implementations.
     * See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct
     * 
* * .google.protobuf.Struct annotations = 7; * @return Whether the annotations field is set. */ @java.lang.Override public boolean hasAnnotations() { return ((bitField0_ & 0x00000001) != 0); } /** *
     * Per the Struct protobuf spec, this type corresponds to
     * a JSON Object, which is truly a map<string, Value> under the hood.
     * So, the Struct a) is still consistent with our specification for
     * the `annotations` field, and b) has native support in some language
     * bindings making their use easier in implementations.
     * See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct
     * 
* * .google.protobuf.Struct annotations = 7; * @return The annotations. */ @java.lang.Override public com.google.protobuf.Struct getAnnotations() { return annotations_ == null ? com.google.protobuf.Struct.getDefaultInstance() : annotations_; } /** *
     * Per the Struct protobuf spec, this type corresponds to
     * a JSON Object, which is truly a map<string, Value> under the hood.
     * So, the Struct a) is still consistent with our specification for
     * the `annotations` field, and b) has native support in some language
     * bindings making their use easier in implementations.
     * See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct
     * 
* * .google.protobuf.Struct annotations = 7; */ @java.lang.Override public com.google.protobuf.StructOrBuilder getAnnotationsOrBuilder() { return annotations_ == null ? com.google.protobuf.Struct.getDefaultInstance() : annotations_; } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uri_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, uri_); } com.google.protobuf.GeneratedMessageV3 .serializeStringMapTo( output, internalGetDigest(), DigestDefaultEntryHolder.defaultEntry, 3); if (!content_.isEmpty()) { output.writeBytes(4, content_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(downloadLocation_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 5, downloadLocation_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mediaType_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 6, mediaType_); } if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(7, getAnnotations()); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uri_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, uri_); } for (java.util.Map.Entry entry : internalGetDigest().getMap().entrySet()) { com.google.protobuf.MapEntry digest__ = DigestDefaultEntryHolder.defaultEntry.newBuilderForType() .setKey(entry.getKey()) .setValue(entry.getValue()) .build(); size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, digest__); } if (!content_.isEmpty()) { size += com.google.protobuf.CodedOutputStream .computeBytesSize(4, content_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(downloadLocation_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, downloadLocation_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(mediaType_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, mediaType_); } if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(7, getAnnotations()); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor)) { return super.equals(obj); } io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor other = (io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor) obj; if (!getName() .equals(other.getName())) return false; if (!getUri() .equals(other.getUri())) return false; if (!internalGetDigest().equals( other.internalGetDigest())) return false; if (!getContent() .equals(other.getContent())) return false; if (!getDownloadLocation() .equals(other.getDownloadLocation())) return false; if (!getMediaType() .equals(other.getMediaType())) return false; if (hasAnnotations() != other.hasAnnotations()) return false; if (hasAnnotations()) { if (!getAnnotations() .equals(other.getAnnotations())) return false; } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + NAME_FIELD_NUMBER; hash = (53 * hash) + getName().hashCode(); hash = (37 * hash) + URI_FIELD_NUMBER; hash = (53 * hash) + getUri().hashCode(); if (!internalGetDigest().getMap().isEmpty()) { hash = (37 * hash) + DIGEST_FIELD_NUMBER; hash = (53 * hash) + internalGetDigest().hashCode(); } hash = (37 * hash) + CONTENT_FIELD_NUMBER; hash = (53 * hash) + getContent().hashCode(); hash = (37 * hash) + DOWNLOAD_LOCATION_FIELD_NUMBER; hash = (53 * hash) + getDownloadLocation().hashCode(); hash = (37 * hash) + MEDIA_TYPE_FIELD_NUMBER; hash = (53 * hash) + getMediaType().hashCode(); if (hasAnnotations()) { hash = (37 * hash) + ANNOTATIONS_FIELD_NUMBER; hash = (53 * hash) + getAnnotations().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** *
     * Proto representation of the in-toto v1 ResourceDescriptor.
     * https://github.com/in-toto/attestation/blob/main/spec/v1/resource_descriptor.md
     * Validation of all fields is left to the users of this proto.
     * 
* * Protobuf type {@code in_toto_attestation.v1.ResourceDescriptor} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.v1.ResourceDescriptor) io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.internal_static_in_toto_attestation_v1_ResourceDescriptor_descriptor; } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMapField( int number) { switch (number) { case 3: return internalGetDigest(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @SuppressWarnings({"rawtypes"}) protected com.google.protobuf.MapField internalGetMutableMapField( int number) { switch (number) { case 3: return internalGetMutableDigest(); default: throw new RuntimeException( "Invalid map field number: " + number); } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.internal_static_in_toto_attestation_v1_ResourceDescriptor_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.class, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder.class); } // Construct using io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getAnnotationsFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; name_ = ""; uri_ = ""; internalGetMutableDigest().clear(); content_ = com.google.protobuf.ByteString.EMPTY; downloadLocation_ = ""; mediaType_ = ""; annotations_ = null; if (annotationsBuilder_ != null) { annotationsBuilder_.dispose(); annotationsBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.internal_static_in_toto_attestation_v1_ResourceDescriptor_descriptor; } @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getDefaultInstanceForType() { return io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor build() { io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor buildPartial() { io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor result = new io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartial0(io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.name_ = name_; } if (((from_bitField0_ & 0x00000002) != 0)) { result.uri_ = uri_; } if (((from_bitField0_ & 0x00000004) != 0)) { result.digest_ = internalGetDigest(); result.digest_.makeImmutable(); } if (((from_bitField0_ & 0x00000008) != 0)) { result.content_ = content_; } if (((from_bitField0_ & 0x00000010) != 0)) { result.downloadLocation_ = downloadLocation_; } if (((from_bitField0_ & 0x00000020) != 0)) { result.mediaType_ = mediaType_; } int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000040) != 0)) { result.annotations_ = annotationsBuilder_ == null ? annotations_ : annotationsBuilder_.build(); to_bitField0_ |= 0x00000001; } result.bitField0_ |= to_bitField0_; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor) { return mergeFrom((io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor other) { if (other == io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()) return this; if (!other.getName().isEmpty()) { name_ = other.name_; bitField0_ |= 0x00000001; onChanged(); } if (!other.getUri().isEmpty()) { uri_ = other.uri_; bitField0_ |= 0x00000002; onChanged(); } internalGetMutableDigest().mergeFrom( other.internalGetDigest()); bitField0_ |= 0x00000004; if (other.getContent() != com.google.protobuf.ByteString.EMPTY) { setContent(other.getContent()); } if (!other.getDownloadLocation().isEmpty()) { downloadLocation_ = other.downloadLocation_; bitField0_ |= 0x00000010; onChanged(); } if (!other.getMediaType().isEmpty()) { mediaType_ = other.mediaType_; bitField0_ |= 0x00000020; onChanged(); } if (other.hasAnnotations()) { mergeAnnotations(other.getAnnotations()); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { name_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 case 18: { uri_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000002; break; } // case 18 case 26: { com.google.protobuf.MapEntry digest__ = input.readMessage( DigestDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); internalGetMutableDigest().getMutableMap().put( digest__.getKey(), digest__.getValue()); bitField0_ |= 0x00000004; break; } // case 26 case 34: { content_ = input.readBytes(); bitField0_ |= 0x00000008; break; } // case 34 case 42: { downloadLocation_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000010; break; } // case 42 case 50: { mediaType_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000020; break; } // case 50 case 58: { input.readMessage( getAnnotationsFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000040; break; } // case 58 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object name_ = ""; /** * string name = 1; * @return The name. */ public java.lang.String getName() { java.lang.Object ref = name_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); name_ = s; return s; } else { return (java.lang.String) ref; } } /** * string name = 1; * @return The bytes for name. */ public com.google.protobuf.ByteString getNameBytes() { java.lang.Object ref = name_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); name_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string name = 1; * @param value The name to set. * @return This builder for chaining. */ public Builder setName( java.lang.String value) { if (value == null) { throw new NullPointerException(); } name_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** * string name = 1; * @return This builder for chaining. */ public Builder clearName() { name_ = getDefaultInstance().getName(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** * string name = 1; * @param value The bytes for name to set. * @return This builder for chaining. */ public Builder setNameBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); name_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } private java.lang.Object uri_ = ""; /** * string uri = 2; * @return The uri. */ public java.lang.String getUri() { java.lang.Object ref = uri_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); uri_ = s; return s; } else { return (java.lang.String) ref; } } /** * string uri = 2; * @return The bytes for uri. */ public com.google.protobuf.ByteString getUriBytes() { java.lang.Object ref = uri_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); uri_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string uri = 2; * @param value The uri to set. * @return This builder for chaining. */ public Builder setUri( java.lang.String value) { if (value == null) { throw new NullPointerException(); } uri_ = value; bitField0_ |= 0x00000002; onChanged(); return this; } /** * string uri = 2; * @return This builder for chaining. */ public Builder clearUri() { uri_ = getDefaultInstance().getUri(); bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } /** * string uri = 2; * @param value The bytes for uri to set. * @return This builder for chaining. */ public Builder setUriBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); uri_ = value; bitField0_ |= 0x00000002; onChanged(); return this; } private com.google.protobuf.MapField< java.lang.String, java.lang.String> digest_; private com.google.protobuf.MapField internalGetDigest() { if (digest_ == null) { return com.google.protobuf.MapField.emptyMapField( DigestDefaultEntryHolder.defaultEntry); } return digest_; } private com.google.protobuf.MapField internalGetMutableDigest() { if (digest_ == null) { digest_ = com.google.protobuf.MapField.newMapField( DigestDefaultEntryHolder.defaultEntry); } if (!digest_.isMutable()) { digest_ = digest_.copy(); } bitField0_ |= 0x00000004; onChanged(); return digest_; } public int getDigestCount() { return internalGetDigest().getMap().size(); } /** * map<string, string> digest = 3; */ @java.lang.Override public boolean containsDigest( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } return internalGetDigest().getMap().containsKey(key); } /** * Use {@link #getDigestMap()} instead. */ @java.lang.Override @java.lang.Deprecated public java.util.Map getDigest() { return getDigestMap(); } /** * map<string, string> digest = 3; */ @java.lang.Override public java.util.Map getDigestMap() { return internalGetDigest().getMap(); } /** * map<string, string> digest = 3; */ @java.lang.Override public /* nullable */ java.lang.String getDigestOrDefault( java.lang.String key, /* nullable */ java.lang.String defaultValue) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; } /** * map<string, string> digest = 3; */ @java.lang.Override public java.lang.String getDigestOrThrow( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } java.util.Map map = internalGetDigest().getMap(); if (!map.containsKey(key)) { throw new java.lang.IllegalArgumentException(); } return map.get(key); } public Builder clearDigest() { bitField0_ = (bitField0_ & ~0x00000004); internalGetMutableDigest().getMutableMap() .clear(); return this; } /** * map<string, string> digest = 3; */ public Builder removeDigest( java.lang.String key) { if (key == null) { throw new NullPointerException("map key"); } internalGetMutableDigest().getMutableMap() .remove(key); return this; } /** * Use alternate mutation accessors instead. */ @java.lang.Deprecated public java.util.Map getMutableDigest() { bitField0_ |= 0x00000004; return internalGetMutableDigest().getMutableMap(); } /** * map<string, string> digest = 3; */ public Builder putDigest( java.lang.String key, java.lang.String value) { if (key == null) { throw new NullPointerException("map key"); } if (value == null) { throw new NullPointerException("map value"); } internalGetMutableDigest().getMutableMap() .put(key, value); bitField0_ |= 0x00000004; return this; } /** * map<string, string> digest = 3; */ public Builder putAllDigest( java.util.Map values) { internalGetMutableDigest().getMutableMap() .putAll(values); bitField0_ |= 0x00000004; return this; } private com.google.protobuf.ByteString content_ = com.google.protobuf.ByteString.EMPTY; /** * bytes content = 4; * @return The content. */ @java.lang.Override public com.google.protobuf.ByteString getContent() { return content_; } /** * bytes content = 4; * @param value The content to set. * @return This builder for chaining. */ public Builder setContent(com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } content_ = value; bitField0_ |= 0x00000008; onChanged(); return this; } /** * bytes content = 4; * @return This builder for chaining. */ public Builder clearContent() { bitField0_ = (bitField0_ & ~0x00000008); content_ = getDefaultInstance().getContent(); onChanged(); return this; } private java.lang.Object downloadLocation_ = ""; /** * string download_location = 5; * @return The downloadLocation. */ public java.lang.String getDownloadLocation() { java.lang.Object ref = downloadLocation_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); downloadLocation_ = s; return s; } else { return (java.lang.String) ref; } } /** * string download_location = 5; * @return The bytes for downloadLocation. */ public com.google.protobuf.ByteString getDownloadLocationBytes() { java.lang.Object ref = downloadLocation_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); downloadLocation_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string download_location = 5; * @param value The downloadLocation to set. * @return This builder for chaining. */ public Builder setDownloadLocation( java.lang.String value) { if (value == null) { throw new NullPointerException(); } downloadLocation_ = value; bitField0_ |= 0x00000010; onChanged(); return this; } /** * string download_location = 5; * @return This builder for chaining. */ public Builder clearDownloadLocation() { downloadLocation_ = getDefaultInstance().getDownloadLocation(); bitField0_ = (bitField0_ & ~0x00000010); onChanged(); return this; } /** * string download_location = 5; * @param value The bytes for downloadLocation to set. * @return This builder for chaining. */ public Builder setDownloadLocationBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); downloadLocation_ = value; bitField0_ |= 0x00000010; onChanged(); return this; } private java.lang.Object mediaType_ = ""; /** * string media_type = 6; * @return The mediaType. */ public java.lang.String getMediaType() { java.lang.Object ref = mediaType_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); mediaType_ = s; return s; } else { return (java.lang.String) ref; } } /** * string media_type = 6; * @return The bytes for mediaType. */ public com.google.protobuf.ByteString getMediaTypeBytes() { java.lang.Object ref = mediaType_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); mediaType_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string media_type = 6; * @param value The mediaType to set. * @return This builder for chaining. */ public Builder setMediaType( java.lang.String value) { if (value == null) { throw new NullPointerException(); } mediaType_ = value; bitField0_ |= 0x00000020; onChanged(); return this; } /** * string media_type = 6; * @return This builder for chaining. */ public Builder clearMediaType() { mediaType_ = getDefaultInstance().getMediaType(); bitField0_ = (bitField0_ & ~0x00000020); onChanged(); return this; } /** * string media_type = 6; * @param value The bytes for mediaType to set. * @return This builder for chaining. */ public Builder setMediaTypeBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); mediaType_ = value; bitField0_ |= 0x00000020; onChanged(); return this; } private com.google.protobuf.Struct annotations_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> annotationsBuilder_; /** *
       * Per the Struct protobuf spec, this type corresponds to
       * a JSON Object, which is truly a map<string, Value> under the hood.
       * So, the Struct a) is still consistent with our specification for
       * the `annotations` field, and b) has native support in some language
       * bindings making their use easier in implementations.
       * See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct
       * 
* * .google.protobuf.Struct annotations = 7; * @return Whether the annotations field is set. */ public boolean hasAnnotations() { return ((bitField0_ & 0x00000040) != 0); } /** *
       * Per the Struct protobuf spec, this type corresponds to
       * a JSON Object, which is truly a map<string, Value> under the hood.
       * So, the Struct a) is still consistent with our specification for
       * the `annotations` field, and b) has native support in some language
       * bindings making their use easier in implementations.
       * See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct
       * 
* * .google.protobuf.Struct annotations = 7; * @return The annotations. */ public com.google.protobuf.Struct getAnnotations() { if (annotationsBuilder_ == null) { return annotations_ == null ? com.google.protobuf.Struct.getDefaultInstance() : annotations_; } else { return annotationsBuilder_.getMessage(); } } /** *
       * Per the Struct protobuf spec, this type corresponds to
       * a JSON Object, which is truly a map<string, Value> under the hood.
       * So, the Struct a) is still consistent with our specification for
       * the `annotations` field, and b) has native support in some language
       * bindings making their use easier in implementations.
       * See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct
       * 
* * .google.protobuf.Struct annotations = 7; */ public Builder setAnnotations(com.google.protobuf.Struct value) { if (annotationsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } annotations_ = value; } else { annotationsBuilder_.setMessage(value); } bitField0_ |= 0x00000040; onChanged(); return this; } /** *
       * Per the Struct protobuf spec, this type corresponds to
       * a JSON Object, which is truly a map<string, Value> under the hood.
       * So, the Struct a) is still consistent with our specification for
       * the `annotations` field, and b) has native support in some language
       * bindings making their use easier in implementations.
       * See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct
       * 
* * .google.protobuf.Struct annotations = 7; */ public Builder setAnnotations( com.google.protobuf.Struct.Builder builderForValue) { if (annotationsBuilder_ == null) { annotations_ = builderForValue.build(); } else { annotationsBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000040; onChanged(); return this; } /** *
       * Per the Struct protobuf spec, this type corresponds to
       * a JSON Object, which is truly a map<string, Value> under the hood.
       * So, the Struct a) is still consistent with our specification for
       * the `annotations` field, and b) has native support in some language
       * bindings making their use easier in implementations.
       * See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct
       * 
* * .google.protobuf.Struct annotations = 7; */ public Builder mergeAnnotations(com.google.protobuf.Struct value) { if (annotationsBuilder_ == null) { if (((bitField0_ & 0x00000040) != 0) && annotations_ != null && annotations_ != com.google.protobuf.Struct.getDefaultInstance()) { getAnnotationsBuilder().mergeFrom(value); } else { annotations_ = value; } } else { annotationsBuilder_.mergeFrom(value); } if (annotations_ != null) { bitField0_ |= 0x00000040; onChanged(); } return this; } /** *
       * Per the Struct protobuf spec, this type corresponds to
       * a JSON Object, which is truly a map<string, Value> under the hood.
       * So, the Struct a) is still consistent with our specification for
       * the `annotations` field, and b) has native support in some language
       * bindings making their use easier in implementations.
       * See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct
       * 
* * .google.protobuf.Struct annotations = 7; */ public Builder clearAnnotations() { bitField0_ = (bitField0_ & ~0x00000040); annotations_ = null; if (annotationsBuilder_ != null) { annotationsBuilder_.dispose(); annotationsBuilder_ = null; } onChanged(); return this; } /** *
       * Per the Struct protobuf spec, this type corresponds to
       * a JSON Object, which is truly a map<string, Value> under the hood.
       * So, the Struct a) is still consistent with our specification for
       * the `annotations` field, and b) has native support in some language
       * bindings making their use easier in implementations.
       * See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct
       * 
* * .google.protobuf.Struct annotations = 7; */ public com.google.protobuf.Struct.Builder getAnnotationsBuilder() { bitField0_ |= 0x00000040; onChanged(); return getAnnotationsFieldBuilder().getBuilder(); } /** *
       * Per the Struct protobuf spec, this type corresponds to
       * a JSON Object, which is truly a map<string, Value> under the hood.
       * So, the Struct a) is still consistent with our specification for
       * the `annotations` field, and b) has native support in some language
       * bindings making their use easier in implementations.
       * See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct
       * 
* * .google.protobuf.Struct annotations = 7; */ public com.google.protobuf.StructOrBuilder getAnnotationsOrBuilder() { if (annotationsBuilder_ != null) { return annotationsBuilder_.getMessageOrBuilder(); } else { return annotations_ == null ? com.google.protobuf.Struct.getDefaultInstance() : annotations_; } } /** *
       * Per the Struct protobuf spec, this type corresponds to
       * a JSON Object, which is truly a map<string, Value> under the hood.
       * So, the Struct a) is still consistent with our specification for
       * the `annotations` field, and b) has native support in some language
       * bindings making their use easier in implementations.
       * See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct
       * 
* * .google.protobuf.Struct annotations = 7; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> getAnnotationsFieldBuilder() { if (annotationsBuilder_ == null) { annotationsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder>( getAnnotations(), getParentForChildren(), isClean()); annotations_ = null; } return annotationsBuilder_; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.v1.ResourceDescriptor) } // @@protoc_insertion_point(class_scope:in_toto_attestation.v1.ResourceDescriptor) private static final io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor(); } public static io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public ResourceDescriptor parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_v1_ResourceDescriptor_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_v1_ResourceDescriptor_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_v1_ResourceDescriptor_DigestEntry_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_v1_ResourceDescriptor_DigestEntry_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { return descriptor; } private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { java.lang.String[] descriptorData = { "\n0in_toto_attestation/v1/resource_descri" + "ptor.proto\022\026in_toto_attestation.v1\032\034goog" + "le/protobuf/struct.proto\"\224\002\n\022ResourceDes" + "criptor\022\014\n\004name\030\001 \001(\t\022\013\n\003uri\030\002 \001(\t\022F\n\006di" + "gest\030\003 \003(\01326.in_toto_attestation.v1.Reso" + "urceDescriptor.DigestEntry\022\017\n\007content\030\004 " + "\001(\014\022\031\n\021download_location\030\005 \001(\t\022\022\n\nmedia_" + "type\030\006 \001(\t\022,\n\013annotations\030\007 \001(\0132\027.google" + ".protobuf.Struct\032-\n\013DigestEntry\022\013\n\003key\030\001" + " \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001BG\n\037io.github.int" + "oto.attestation.v1Z$github.com/in-toto/a" + "ttestation/go/v1b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { com.google.protobuf.StructProto.getDescriptor(), }); internal_static_in_toto_attestation_v1_ResourceDescriptor_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_in_toto_attestation_v1_ResourceDescriptor_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_v1_ResourceDescriptor_descriptor, new java.lang.String[] { "Name", "Uri", "Digest", "Content", "DownloadLocation", "MediaType", "Annotations", }); internal_static_in_toto_attestation_v1_ResourceDescriptor_DigestEntry_descriptor = internal_static_in_toto_attestation_v1_ResourceDescriptor_descriptor.getNestedTypes().get(0); internal_static_in_toto_attestation_v1_ResourceDescriptor_DigestEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_v1_ResourceDescriptor_DigestEntry_descriptor, new java.lang.String[] { "Key", "Value", }); com.google.protobuf.StructProto.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) } StatementOuterClass.java000066400000000000000000001457421470602552500337570ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/java/io/github/intoto/attestation/v1// Generated by the protocol buffer compiler. DO NOT EDIT! // source: in_toto_attestation/v1/statement.proto package io.github.intoto.attestation.v1; public final class StatementOuterClass { private StatementOuterClass() {} public static void registerAllExtensions( com.google.protobuf.ExtensionRegistryLite registry) { } public static void registerAllExtensions( com.google.protobuf.ExtensionRegistry registry) { registerAllExtensions( (com.google.protobuf.ExtensionRegistryLite) registry); } public interface StatementOrBuilder extends // @@protoc_insertion_point(interface_extends:in_toto_attestation.v1.Statement) com.google.protobuf.MessageOrBuilder { /** *
     * Expected to always be "https://in-toto.io/Statement/v1"
     * 
* * string type = 1 [json_name = "_type"]; * @return The type. */ java.lang.String getType(); /** *
     * Expected to always be "https://in-toto.io/Statement/v1"
     * 
* * string type = 1 [json_name = "_type"]; * @return The bytes for type. */ com.google.protobuf.ByteString getTypeBytes(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ java.util.List getSubjectList(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getSubject(int index); /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ int getSubjectCount(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ java.util.List getSubjectOrBuilderList(); /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getSubjectOrBuilder( int index); /** * string predicate_type = 3; * @return The predicateType. */ java.lang.String getPredicateType(); /** * string predicate_type = 3; * @return The bytes for predicateType. */ com.google.protobuf.ByteString getPredicateTypeBytes(); /** * .google.protobuf.Struct predicate = 4; * @return Whether the predicate field is set. */ boolean hasPredicate(); /** * .google.protobuf.Struct predicate = 4; * @return The predicate. */ com.google.protobuf.Struct getPredicate(); /** * .google.protobuf.Struct predicate = 4; */ com.google.protobuf.StructOrBuilder getPredicateOrBuilder(); } /** *
   * Proto representation of the in-toto v1 Statement.
   * https://github.com/in-toto/attestation/tree/main/spec/v1
   * Validation of all fields is left to the users of this proto.
   * 
* * Protobuf type {@code in_toto_attestation.v1.Statement} */ public static final class Statement extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:in_toto_attestation.v1.Statement) StatementOrBuilder { private static final long serialVersionUID = 0L; // Use Statement.newBuilder() to construct. private Statement(com.google.protobuf.GeneratedMessageV3.Builder builder) { super(builder); } private Statement() { type_ = ""; subject_ = java.util.Collections.emptyList(); predicateType_ = ""; } @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( UnusedPrivateParameter unused) { return new Statement(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.v1.StatementOuterClass.internal_static_in_toto_attestation_v1_Statement_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.v1.StatementOuterClass.internal_static_in_toto_attestation_v1_Statement_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.v1.StatementOuterClass.Statement.class, io.github.intoto.attestation.v1.StatementOuterClass.Statement.Builder.class); } private int bitField0_; public static final int TYPE_FIELD_NUMBER = 1; @SuppressWarnings("serial") private volatile java.lang.Object type_ = ""; /** *
     * Expected to always be "https://in-toto.io/Statement/v1"
     * 
* * string type = 1 [json_name = "_type"]; * @return The type. */ @java.lang.Override public java.lang.String getType() { java.lang.Object ref = type_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); type_ = s; return s; } } /** *
     * Expected to always be "https://in-toto.io/Statement/v1"
     * 
* * string type = 1 [json_name = "_type"]; * @return The bytes for type. */ @java.lang.Override public com.google.protobuf.ByteString getTypeBytes() { java.lang.Object ref = type_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); type_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int SUBJECT_FIELD_NUMBER = 2; @SuppressWarnings("serial") private java.util.List subject_; /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ @java.lang.Override public java.util.List getSubjectList() { return subject_; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ @java.lang.Override public java.util.List getSubjectOrBuilderList() { return subject_; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ @java.lang.Override public int getSubjectCount() { return subject_.size(); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getSubject(int index) { return subject_.get(index); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ @java.lang.Override public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getSubjectOrBuilder( int index) { return subject_.get(index); } public static final int PREDICATE_TYPE_FIELD_NUMBER = 3; @SuppressWarnings("serial") private volatile java.lang.Object predicateType_ = ""; /** * string predicate_type = 3; * @return The predicateType. */ @java.lang.Override public java.lang.String getPredicateType() { java.lang.Object ref = predicateType_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); predicateType_ = s; return s; } } /** * string predicate_type = 3; * @return The bytes for predicateType. */ @java.lang.Override public com.google.protobuf.ByteString getPredicateTypeBytes() { java.lang.Object ref = predicateType_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); predicateType_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } public static final int PREDICATE_FIELD_NUMBER = 4; private com.google.protobuf.Struct predicate_; /** * .google.protobuf.Struct predicate = 4; * @return Whether the predicate field is set. */ @java.lang.Override public boolean hasPredicate() { return ((bitField0_ & 0x00000001) != 0); } /** * .google.protobuf.Struct predicate = 4; * @return The predicate. */ @java.lang.Override public com.google.protobuf.Struct getPredicate() { return predicate_ == null ? com.google.protobuf.Struct.getDefaultInstance() : predicate_; } /** * .google.protobuf.Struct predicate = 4; */ @java.lang.Override public com.google.protobuf.StructOrBuilder getPredicateOrBuilder() { return predicate_ == null ? com.google.protobuf.Struct.getDefaultInstance() : predicate_; } private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { byte isInitialized = memoizedIsInitialized; if (isInitialized == 1) return true; if (isInitialized == 0) return false; memoizedIsInitialized = 1; return true; } @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(type_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, type_); } for (int i = 0; i < subject_.size(); i++) { output.writeMessage(2, subject_.get(i)); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(predicateType_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, predicateType_); } if (((bitField0_ & 0x00000001) != 0)) { output.writeMessage(4, getPredicate()); } getUnknownFields().writeTo(output); } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(type_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, type_); } for (int i = 0; i < subject_.size(); i++) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(2, subject_.get(i)); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(predicateType_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, predicateType_); } if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getPredicate()); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @java.lang.Override public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } if (!(obj instanceof io.github.intoto.attestation.v1.StatementOuterClass.Statement)) { return super.equals(obj); } io.github.intoto.attestation.v1.StatementOuterClass.Statement other = (io.github.intoto.attestation.v1.StatementOuterClass.Statement) obj; if (!getType() .equals(other.getType())) return false; if (!getSubjectList() .equals(other.getSubjectList())) return false; if (!getPredicateType() .equals(other.getPredicateType())) return false; if (hasPredicate() != other.hasPredicate()) return false; if (hasPredicate()) { if (!getPredicate() .equals(other.getPredicate())) return false; } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @java.lang.Override public int hashCode() { if (memoizedHashCode != 0) { return memoizedHashCode; } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + TYPE_FIELD_NUMBER; hash = (53 * hash) + getType().hashCode(); if (getSubjectCount() > 0) { hash = (37 * hash) + SUBJECT_FIELD_NUMBER; hash = (53 * hash) + getSubjectList().hashCode(); } hash = (37 * hash) + PREDICATE_TYPE_FIELD_NUMBER; hash = (53 * hash) + getPredicateType().hashCode(); if (hasPredicate()) { hash = (37 * hash) + PREDICATE_FIELD_NUMBER; hash = (53 * hash) + getPredicate().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } public static io.github.intoto.attestation.v1.StatementOuterClass.Statement parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.v1.StatementOuterClass.Statement parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.v1.StatementOuterClass.Statement parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.v1.StatementOuterClass.Statement parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.v1.StatementOuterClass.Statement parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } public static io.github.intoto.attestation.v1.StatementOuterClass.Statement parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } public static io.github.intoto.attestation.v1.StatementOuterClass.Statement parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.v1.StatementOuterClass.Statement parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.v1.StatementOuterClass.Statement parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input); } public static io.github.intoto.attestation.v1.StatementOuterClass.Statement parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } public static io.github.intoto.attestation.v1.StatementOuterClass.Statement parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input); } public static io.github.intoto.attestation.v1.StatementOuterClass.Statement parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3 .parseWithIOException(PARSER, input, extensionRegistry); } @java.lang.Override public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } public static Builder newBuilder(io.github.intoto.attestation.v1.StatementOuterClass.Statement prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override public Builder toBuilder() { return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /** *
     * Proto representation of the in-toto v1 Statement.
     * https://github.com/in-toto/attestation/tree/main/spec/v1
     * Validation of all fields is left to the users of this proto.
     * 
* * Protobuf type {@code in_toto_attestation.v1.Statement} */ public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder implements // @@protoc_insertion_point(builder_implements:in_toto_attestation.v1.Statement) io.github.intoto.attestation.v1.StatementOuterClass.StatementOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return io.github.intoto.attestation.v1.StatementOuterClass.internal_static_in_toto_attestation_v1_Statement_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return io.github.intoto.attestation.v1.StatementOuterClass.internal_static_in_toto_attestation_v1_Statement_fieldAccessorTable .ensureFieldAccessorsInitialized( io.github.intoto.attestation.v1.StatementOuterClass.Statement.class, io.github.intoto.attestation.v1.StatementOuterClass.Statement.Builder.class); } // Construct using io.github.intoto.attestation.v1.StatementOuterClass.Statement.newBuilder() private Builder() { maybeForceBuilderInitialization(); } private Builder( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); maybeForceBuilderInitialization(); } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessageV3 .alwaysUseFieldBuilders) { getSubjectFieldBuilder(); getPredicateFieldBuilder(); } } @java.lang.Override public Builder clear() { super.clear(); bitField0_ = 0; type_ = ""; if (subjectBuilder_ == null) { subject_ = java.util.Collections.emptyList(); } else { subject_ = null; subjectBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000002); predicateType_ = ""; predicate_ = null; if (predicateBuilder_ != null) { predicateBuilder_.dispose(); predicateBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { return io.github.intoto.attestation.v1.StatementOuterClass.internal_static_in_toto_attestation_v1_Statement_descriptor; } @java.lang.Override public io.github.intoto.attestation.v1.StatementOuterClass.Statement getDefaultInstanceForType() { return io.github.intoto.attestation.v1.StatementOuterClass.Statement.getDefaultInstance(); } @java.lang.Override public io.github.intoto.attestation.v1.StatementOuterClass.Statement build() { io.github.intoto.attestation.v1.StatementOuterClass.Statement result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } return result; } @java.lang.Override public io.github.intoto.attestation.v1.StatementOuterClass.Statement buildPartial() { io.github.intoto.attestation.v1.StatementOuterClass.Statement result = new io.github.intoto.attestation.v1.StatementOuterClass.Statement(this); buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } private void buildPartialRepeatedFields(io.github.intoto.attestation.v1.StatementOuterClass.Statement result) { if (subjectBuilder_ == null) { if (((bitField0_ & 0x00000002) != 0)) { subject_ = java.util.Collections.unmodifiableList(subject_); bitField0_ = (bitField0_ & ~0x00000002); } result.subject_ = subject_; } else { result.subject_ = subjectBuilder_.build(); } } private void buildPartial0(io.github.intoto.attestation.v1.StatementOuterClass.Statement result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.type_ = type_; } if (((from_bitField0_ & 0x00000004) != 0)) { result.predicateType_ = predicateType_; } int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000008) != 0)) { result.predicate_ = predicateBuilder_ == null ? predicate_ : predicateBuilder_.build(); to_bitField0_ |= 0x00000001; } result.bitField0_ |= to_bitField0_; } @java.lang.Override public Builder clone() { return super.clone(); } @java.lang.Override public Builder setField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.setField(field, value); } @java.lang.Override public Builder clearField( com.google.protobuf.Descriptors.FieldDescriptor field) { return super.clearField(field); } @java.lang.Override public Builder clearOneof( com.google.protobuf.Descriptors.OneofDescriptor oneof) { return super.clearOneof(oneof); } @java.lang.Override public Builder setRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { return super.setRepeatedField(field, index, value); } @java.lang.Override public Builder addRepeatedField( com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { return super.addRepeatedField(field, value); } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof io.github.intoto.attestation.v1.StatementOuterClass.Statement) { return mergeFrom((io.github.intoto.attestation.v1.StatementOuterClass.Statement)other); } else { super.mergeFrom(other); return this; } } public Builder mergeFrom(io.github.intoto.attestation.v1.StatementOuterClass.Statement other) { if (other == io.github.intoto.attestation.v1.StatementOuterClass.Statement.getDefaultInstance()) return this; if (!other.getType().isEmpty()) { type_ = other.type_; bitField0_ |= 0x00000001; onChanged(); } if (subjectBuilder_ == null) { if (!other.subject_.isEmpty()) { if (subject_.isEmpty()) { subject_ = other.subject_; bitField0_ = (bitField0_ & ~0x00000002); } else { ensureSubjectIsMutable(); subject_.addAll(other.subject_); } onChanged(); } } else { if (!other.subject_.isEmpty()) { if (subjectBuilder_.isEmpty()) { subjectBuilder_.dispose(); subjectBuilder_ = null; subject_ = other.subject_; bitField0_ = (bitField0_ & ~0x00000002); subjectBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSubjectFieldBuilder() : null; } else { subjectBuilder_.addAllMessages(other.subject_); } } } if (!other.getPredicateType().isEmpty()) { predicateType_ = other.predicateType_; bitField0_ |= 0x00000004; onChanged(); } if (other.hasPredicate()) { mergePredicate(other.getPredicate()); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @java.lang.Override public final boolean isInitialized() { return true; } @java.lang.Override public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { if (extensionRegistry == null) { throw new java.lang.NullPointerException(); } try { boolean done = false; while (!done) { int tag = input.readTag(); switch (tag) { case 0: done = true; break; case 10: { type_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 case 18: { io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor m = input.readMessage( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.parser(), extensionRegistry); if (subjectBuilder_ == null) { ensureSubjectIsMutable(); subject_.add(m); } else { subjectBuilder_.addMessage(m); } break; } // case 18 case 26: { predicateType_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000004; break; } // case 26 case 34: { input.readMessage( getPredicateFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000008; break; } // case 34 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag } break; } // default: } // switch (tag) } // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.unwrapIOException(); } finally { onChanged(); } // finally return this; } private int bitField0_; private java.lang.Object type_ = ""; /** *
       * Expected to always be "https://in-toto.io/Statement/v1"
       * 
* * string type = 1 [json_name = "_type"]; * @return The type. */ public java.lang.String getType() { java.lang.Object ref = type_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); type_ = s; return s; } else { return (java.lang.String) ref; } } /** *
       * Expected to always be "https://in-toto.io/Statement/v1"
       * 
* * string type = 1 [json_name = "_type"]; * @return The bytes for type. */ public com.google.protobuf.ByteString getTypeBytes() { java.lang.Object ref = type_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); type_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** *
       * Expected to always be "https://in-toto.io/Statement/v1"
       * 
* * string type = 1 [json_name = "_type"]; * @param value The type to set. * @return This builder for chaining. */ public Builder setType( java.lang.String value) { if (value == null) { throw new NullPointerException(); } type_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** *
       * Expected to always be "https://in-toto.io/Statement/v1"
       * 
* * string type = 1 [json_name = "_type"]; * @return This builder for chaining. */ public Builder clearType() { type_ = getDefaultInstance().getType(); bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** *
       * Expected to always be "https://in-toto.io/Statement/v1"
       * 
* * string type = 1 [json_name = "_type"]; * @param value The bytes for type to set. * @return This builder for chaining. */ public Builder setTypeBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); type_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } private java.util.List subject_ = java.util.Collections.emptyList(); private void ensureSubjectIsMutable() { if (!((bitField0_ & 0x00000002) != 0)) { subject_ = new java.util.ArrayList(subject_); bitField0_ |= 0x00000002; } } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> subjectBuilder_; /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public java.util.List getSubjectList() { if (subjectBuilder_ == null) { return java.util.Collections.unmodifiableList(subject_); } else { return subjectBuilder_.getMessageList(); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public int getSubjectCount() { if (subjectBuilder_ == null) { return subject_.size(); } else { return subjectBuilder_.getCount(); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor getSubject(int index) { if (subjectBuilder_ == null) { return subject_.get(index); } else { return subjectBuilder_.getMessage(index); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public Builder setSubject( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (subjectBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureSubjectIsMutable(); subject_.set(index, value); onChanged(); } else { subjectBuilder_.setMessage(index, value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public Builder setSubject( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (subjectBuilder_ == null) { ensureSubjectIsMutable(); subject_.set(index, builderForValue.build()); onChanged(); } else { subjectBuilder_.setMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public Builder addSubject(io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (subjectBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureSubjectIsMutable(); subject_.add(value); onChanged(); } else { subjectBuilder_.addMessage(value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public Builder addSubject( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor value) { if (subjectBuilder_ == null) { if (value == null) { throw new NullPointerException(); } ensureSubjectIsMutable(); subject_.add(index, value); onChanged(); } else { subjectBuilder_.addMessage(index, value); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public Builder addSubject( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (subjectBuilder_ == null) { ensureSubjectIsMutable(); subject_.add(builderForValue.build()); onChanged(); } else { subjectBuilder_.addMessage(builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public Builder addSubject( int index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder builderForValue) { if (subjectBuilder_ == null) { ensureSubjectIsMutable(); subject_.add(index, builderForValue.build()); onChanged(); } else { subjectBuilder_.addMessage(index, builderForValue.build()); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public Builder addAllSubject( java.lang.Iterable values) { if (subjectBuilder_ == null) { ensureSubjectIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( values, subject_); onChanged(); } else { subjectBuilder_.addAllMessages(values); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public Builder clearSubject() { if (subjectBuilder_ == null) { subject_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000002); onChanged(); } else { subjectBuilder_.clear(); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public Builder removeSubject(int index) { if (subjectBuilder_ == null) { ensureSubjectIsMutable(); subject_.remove(index); onChanged(); } else { subjectBuilder_.remove(index); } return this; } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder getSubjectBuilder( int index) { return getSubjectFieldBuilder().getBuilder(index); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder getSubjectOrBuilder( int index) { if (subjectBuilder_ == null) { return subject_.get(index); } else { return subjectBuilder_.getMessageOrBuilder(index); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public java.util.List getSubjectOrBuilderList() { if (subjectBuilder_ != null) { return subjectBuilder_.getMessageOrBuilderList(); } else { return java.util.Collections.unmodifiableList(subject_); } } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder addSubjectBuilder() { return getSubjectFieldBuilder().addBuilder( io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder addSubjectBuilder( int index) { return getSubjectFieldBuilder().addBuilder( index, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.getDefaultInstance()); } /** * repeated .in_toto_attestation.v1.ResourceDescriptor subject = 2; */ public java.util.List getSubjectBuilderList() { return getSubjectFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder> getSubjectFieldBuilder() { if (subjectBuilder_ == null) { subjectBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptor.Builder, io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.ResourceDescriptorOrBuilder>( subject_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); subject_ = null; } return subjectBuilder_; } private java.lang.Object predicateType_ = ""; /** * string predicate_type = 3; * @return The predicateType. */ public java.lang.String getPredicateType() { java.lang.Object ref = predicateType_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); predicateType_ = s; return s; } else { return (java.lang.String) ref; } } /** * string predicate_type = 3; * @return The bytes for predicateType. */ public com.google.protobuf.ByteString getPredicateTypeBytes() { java.lang.Object ref = predicateType_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8( (java.lang.String) ref); predicateType_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } /** * string predicate_type = 3; * @param value The predicateType to set. * @return This builder for chaining. */ public Builder setPredicateType( java.lang.String value) { if (value == null) { throw new NullPointerException(); } predicateType_ = value; bitField0_ |= 0x00000004; onChanged(); return this; } /** * string predicate_type = 3; * @return This builder for chaining. */ public Builder clearPredicateType() { predicateType_ = getDefaultInstance().getPredicateType(); bitField0_ = (bitField0_ & ~0x00000004); onChanged(); return this; } /** * string predicate_type = 3; * @param value The bytes for predicateType to set. * @return This builder for chaining. */ public Builder setPredicateTypeBytes( com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); predicateType_ = value; bitField0_ |= 0x00000004; onChanged(); return this; } private com.google.protobuf.Struct predicate_; private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> predicateBuilder_; /** * .google.protobuf.Struct predicate = 4; * @return Whether the predicate field is set. */ public boolean hasPredicate() { return ((bitField0_ & 0x00000008) != 0); } /** * .google.protobuf.Struct predicate = 4; * @return The predicate. */ public com.google.protobuf.Struct getPredicate() { if (predicateBuilder_ == null) { return predicate_ == null ? com.google.protobuf.Struct.getDefaultInstance() : predicate_; } else { return predicateBuilder_.getMessage(); } } /** * .google.protobuf.Struct predicate = 4; */ public Builder setPredicate(com.google.protobuf.Struct value) { if (predicateBuilder_ == null) { if (value == null) { throw new NullPointerException(); } predicate_ = value; } else { predicateBuilder_.setMessage(value); } bitField0_ |= 0x00000008; onChanged(); return this; } /** * .google.protobuf.Struct predicate = 4; */ public Builder setPredicate( com.google.protobuf.Struct.Builder builderForValue) { if (predicateBuilder_ == null) { predicate_ = builderForValue.build(); } else { predicateBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000008; onChanged(); return this; } /** * .google.protobuf.Struct predicate = 4; */ public Builder mergePredicate(com.google.protobuf.Struct value) { if (predicateBuilder_ == null) { if (((bitField0_ & 0x00000008) != 0) && predicate_ != null && predicate_ != com.google.protobuf.Struct.getDefaultInstance()) { getPredicateBuilder().mergeFrom(value); } else { predicate_ = value; } } else { predicateBuilder_.mergeFrom(value); } if (predicate_ != null) { bitField0_ |= 0x00000008; onChanged(); } return this; } /** * .google.protobuf.Struct predicate = 4; */ public Builder clearPredicate() { bitField0_ = (bitField0_ & ~0x00000008); predicate_ = null; if (predicateBuilder_ != null) { predicateBuilder_.dispose(); predicateBuilder_ = null; } onChanged(); return this; } /** * .google.protobuf.Struct predicate = 4; */ public com.google.protobuf.Struct.Builder getPredicateBuilder() { bitField0_ |= 0x00000008; onChanged(); return getPredicateFieldBuilder().getBuilder(); } /** * .google.protobuf.Struct predicate = 4; */ public com.google.protobuf.StructOrBuilder getPredicateOrBuilder() { if (predicateBuilder_ != null) { return predicateBuilder_.getMessageOrBuilder(); } else { return predicate_ == null ? com.google.protobuf.Struct.getDefaultInstance() : predicate_; } } /** * .google.protobuf.Struct predicate = 4; */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder> getPredicateFieldBuilder() { if (predicateBuilder_ == null) { predicateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Struct, com.google.protobuf.Struct.Builder, com.google.protobuf.StructOrBuilder>( getPredicate(), getParentForChildren(), isClean()); predicate_ = null; } return predicateBuilder_; } @java.lang.Override public final Builder setUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); } @java.lang.Override public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } // @@protoc_insertion_point(builder_scope:in_toto_attestation.v1.Statement) } // @@protoc_insertion_point(class_scope:in_toto_attestation.v1.Statement) private static final io.github.intoto.attestation.v1.StatementOuterClass.Statement DEFAULT_INSTANCE; static { DEFAULT_INSTANCE = new io.github.intoto.attestation.v1.StatementOuterClass.Statement(); } public static io.github.intoto.attestation.v1.StatementOuterClass.Statement getDefaultInstance() { return DEFAULT_INSTANCE; } private static final com.google.protobuf.Parser PARSER = new com.google.protobuf.AbstractParser() { @java.lang.Override public Statement parsePartialFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); } catch (com.google.protobuf.InvalidProtocolBufferException e) { throw e.setUnfinishedMessage(builder.buildPartial()); } catch (com.google.protobuf.UninitializedMessageException e) { throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); } catch (java.io.IOException e) { throw new com.google.protobuf.InvalidProtocolBufferException(e) .setUnfinishedMessage(builder.buildPartial()); } return builder.buildPartial(); } }; public static com.google.protobuf.Parser parser() { return PARSER; } @java.lang.Override public com.google.protobuf.Parser getParserForType() { return PARSER; } @java.lang.Override public io.github.intoto.attestation.v1.StatementOuterClass.Statement getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } private static final com.google.protobuf.Descriptors.Descriptor internal_static_in_toto_attestation_v1_Statement_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_in_toto_attestation_v1_Statement_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { return descriptor; } private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { java.lang.String[] descriptorData = { "\n&in_toto_attestation/v1/statement.proto" + "\022\026in_toto_attestation.v1\032\034google/protobu" + "f/struct.proto\0320in_toto_attestation/v1/r" + "esource_descriptor.proto\"\241\001\n\tStatement\022\023" + "\n\004type\030\001 \001(\tR\005_type\022;\n\007subject\030\002 \003(\0132*.i" + "n_toto_attestation.v1.ResourceDescriptor" + "\022\026\n\016predicate_type\030\003 \001(\t\022*\n\tpredicate\030\004 " + "\001(\0132\027.google.protobuf.StructBG\n\037io.githu" + "b.intoto.attestation.v1Z$github.com/in-t" + "oto/attestation/go/v1b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { com.google.protobuf.StructProto.getDescriptor(), io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.getDescriptor(), }); internal_static_in_toto_attestation_v1_Statement_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_in_toto_attestation_v1_Statement_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_in_toto_attestation_v1_Statement_descriptor, new java.lang.String[] { "Type", "Subject", "PredicateType", "Predicate", }); com.google.protobuf.StructProto.getDescriptor(); io.github.intoto.attestation.v1.ResourceDescriptorOuterClass.getDescriptor(); } // @@protoc_insertion_point(outer_class_scope) } golang-github-in-toto-attestation-1.1.0/package-lock.json000066400000000000000000001257241470602552500234210ustar00rootroot00000000000000{ "name": "attestation", "lockfileVersion": 2, "requires": true, "packages": { "": { "dependencies": { "markdownlint-cli": "^0.40.0" } }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { "node": ">=12" } }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "optional": true, "engines": { "node": ">=14" } }, "node_modules/ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/commander": { "version": "12.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", "engines": { "node": ">=18" } }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" }, "engines": { "node": ">= 8" } }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "engines": { "node": ">=4.0.0" } }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "engines": { "node": ">=0.12" }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" }, "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/get-stdin": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/glob": { "version": "10.3.12", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.6", "minimatch": "^9.0.1", "minipass": "^7.0.4", "path-scurry": "^1.10.2" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "engines": { "node": ">= 4" } }, "node_modules/ini": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { "node": ">=8" } }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/jackspeak": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/isaacs" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/jsonc-parser": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==" }, "node_modules/jsonpointer": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/linkify-it": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dependencies": { "uc.micro": "^2.0.0" } }, "node_modules/lru-cache": { "version": "10.2.2", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "engines": { "node": "14 || >=16.14" } }, "node_modules/markdown-it": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" }, "bin": { "markdown-it": "bin/markdown-it.mjs" } }, "node_modules/markdownlint": { "version": "0.34.0", "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.34.0.tgz", "integrity": "sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==", "dependencies": { "markdown-it": "14.1.0", "markdownlint-micromark": "0.1.9" }, "engines": { "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/DavidAnson" } }, "node_modules/markdownlint-cli": { "version": "0.40.0", "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.40.0.tgz", "integrity": "sha512-JXhI3dRQcaqwiFYpPz6VJ7aKYheD53GmTz9y4D/d0F1MbZDGOp9pqKlbOfUX/pHP/iAoeiE4wYRmk8/kjLakxA==", "dependencies": { "commander": "~12.0.0", "get-stdin": "~9.0.0", "glob": "~10.3.12", "ignore": "~5.3.1", "js-yaml": "^4.1.0", "jsonc-parser": "~3.2.1", "jsonpointer": "5.0.1", "markdownlint": "~0.34.0", "minimatch": "~9.0.4", "run-con": "~1.3.2", "toml": "~3.0.0" }, "bin": { "markdownlint": "markdownlint.js" }, "engines": { "node": ">=18" } }, "node_modules/markdownlint-micromark": { "version": "0.1.9", "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.9.tgz", "integrity": "sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==", "engines": { "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/DavidAnson" } }, "node_modules/mdurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==" }, "node_modules/minimatch": { "version": "9.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "engines": { "node": ">=8" } }, "node_modules/path-scurry": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/punycode.js": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", "engines": { "node": ">=6" } }, "node_modules/run-con": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz", "integrity": "sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==", "dependencies": { "deep-extend": "^0.6.0", "ini": "~4.1.0", "minimist": "^1.2.8", "strip-json-comments": "~3.1.1" }, "bin": { "run-con": "cli.js" } }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dependencies": { "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "engines": { "node": ">=8" } }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/string-width-cjs/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dependencies": { "ansi-regex": "^6.0.1" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/toml": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" }, "node_modules/uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } } }, "dependencies": { "@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "requires": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "optional": true }, "ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" }, "ansi-styles": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "requires": { "balanced-match": "^1.0.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "commander": { "version": "12.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==" }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" }, "eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" }, "foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "requires": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" } }, "get-stdin": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==" }, "glob": { "version": "10.3.12", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", "requires": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.6", "minimatch": "^9.0.1", "minipass": "^7.0.4", "path-scurry": "^1.10.2" } }, "ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==" }, "ini": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==" }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "jackspeak": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "requires": { "@isaacs/cliui": "^8.0.2", "@pkgjs/parseargs": "^0.11.0" } }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { "argparse": "^2.0.1" } }, "jsonc-parser": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==" }, "jsonpointer": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==" }, "linkify-it": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "requires": { "uc.micro": "^2.0.0" } }, "lru-cache": { "version": "10.2.2", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==" }, "markdown-it": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "requires": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" } }, "markdownlint": { "version": "0.34.0", "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.34.0.tgz", "integrity": "sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==", "requires": { "markdown-it": "14.1.0", "markdownlint-micromark": "0.1.9" } }, "markdownlint-cli": { "version": "0.40.0", "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.40.0.tgz", "integrity": "sha512-JXhI3dRQcaqwiFYpPz6VJ7aKYheD53GmTz9y4D/d0F1MbZDGOp9pqKlbOfUX/pHP/iAoeiE4wYRmk8/kjLakxA==", "requires": { "commander": "~12.0.0", "get-stdin": "~9.0.0", "glob": "~10.3.12", "ignore": "~5.3.1", "js-yaml": "^4.1.0", "jsonc-parser": "~3.2.1", "jsonpointer": "5.0.1", "markdownlint": "~0.34.0", "minimatch": "~9.0.4", "run-con": "~1.3.2", "toml": "~3.0.0" } }, "markdownlint-micromark": { "version": "0.1.9", "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.9.tgz", "integrity": "sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==" }, "mdurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==" }, "minimatch": { "version": "9.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "requires": { "brace-expansion": "^2.0.1" } }, "minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" }, "minipass": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==" }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" }, "path-scurry": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", "requires": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "punycode.js": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==" }, "run-con": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz", "integrity": "sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==", "requires": { "deep-extend": "^0.6.0", "ini": "~4.1.0", "minimist": "^1.2.8", "strip-json-comments": "~3.1.1" } }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "requires": { "shebang-regex": "^3.0.0" } }, "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" }, "signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" }, "string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "requires": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "string-width-cjs": { "version": "npm:string-width@4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" }, "dependencies": { "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { "ansi-regex": "^5.0.1" } } } }, "strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "requires": { "ansi-regex": "^6.0.1" } }, "strip-ansi-cjs": { "version": "npm:strip-ansi@6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { "ansi-regex": "^5.0.1" }, "dependencies": { "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" } } }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" }, "toml": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" }, "uc.micro": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "requires": { "isexe": "^2.0.0" } }, "wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "requires": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "wrap-ansi-cjs": { "version": "npm:wrap-ansi@7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "dependencies": { "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { "color-convert": "^2.0.1" } }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { "ansi-regex": "^5.0.1" } } } } } } golang-github-in-toto-attestation-1.1.0/package.json000066400000000000000000000002251470602552500224570ustar00rootroot00000000000000{ "scripts": { "lint": "markdownlint .", "format": "markdownlint . --fix" }, "dependencies": { "markdownlint-cli": "^0.40.0" } } golang-github-in-toto-attestation-1.1.0/protos/000077500000000000000000000000001470602552500215205ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/Makefile000066400000000000000000000007671470602552500231720ustar00rootroot00000000000000# Creates the go libs in the go/ directory. go: protoc --go_out=../go --go_opt=module=github.com/in-toto/attestation/go $(shell find ./in_toto_attestation -name "*.proto") # Creates the python libs in the python/ directory. python: protoc --python_out=../python $(shell find ./in_toto_attestation -name "*.proto") make -C ../python reformat # Creates the java libs in the java/ directory. java: protoc --java_out=../java $(shell find ./in_toto_attestation -name "*.proto") .PHONY: go python java golang-github-in-toto-attestation-1.1.0/protos/README.md000066400000000000000000000037461470602552500230110ustar00rootroot00000000000000# in-toto attestation protobuf definitions To ensure all in-toto libraries use the same common data format as defined by the in-toto Attestation Framework spec, we provide protobuf definitions. These enable us to pre-generate bindings for different languages that use the same underlying spec format. **DISCLAIMER**: The protobuf definitions and language bindings will not be considered stable before the v1.1 tagged release. Use at your own risk. ## Predicates with protobuf definitions In addition to the core in-toto attestation spec, the following attestation predicates have protobuf definitions: - [in-toto Link]: Generic predicate that records a software supply chain step. - [SLSA Provenance]: Describes how an artifact or set of artifacts was produced. - [SLSA Verification Summary]: SLSA verification decision about a software artifact. - [SCAI]: Evidence-based assertions about software artifact and supply chain attributes. - [Test Result]: Expresses the result of a test run in the software supply chain. ## Supported language bindings We currently support bindings for the following languages: - [go] - [python] - [java] ## Usage We outline the package names to import the protobufs or language bindings in your project. To use any `.proto` definitions in this repo in your protobufs, import the following packages as needed: - in-toto attestation layers: `in_toto_attestation/v1` - attestation predicates: `in_toto_attestation/predicates` ## Building the language bindings Please read our protos [documentation] for instructions on building and testing the supported language bindings. [SCAI]: in_toto_attestation/predicates/scai/ [SLSA Provenance]: in_toto_attestation/predicates/provenance/ [SLSA Verification Summary]: in_toto_attestation/predicates/vsa/ [in-toto Link]: in_toto_attestation/predicates/link/ [Test Result]: in_toto_attestation/predicates/test_result/ [documentation]: ../docs/protos.md [go]: ../go/ [python]: ../python/ [java]: ../java/ golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/000077500000000000000000000000001470602552500256125ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/000077500000000000000000000000001470602552500277355ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/link/000077500000000000000000000000001470602552500306725ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/link/v0/000077500000000000000000000000001470602552500312175ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/link/v0/link.proto000066400000000000000000000010471470602552500332430ustar00rootroot00000000000000 syntax = "proto3"; package in_toto_attestation.predicates.link.v0; import "in_toto_attestation/v1/resource_descriptor.proto"; import "google/protobuf/struct.proto"; option go_package = "github.com/in-toto/attestation/go/predicates/link/v0"; option java_package = "io.github.intoto.attestation.predicates.link.v0"; message Link { string name = 1; repeated string command = 2; repeated in_toto_attestation.v1.ResourceDescriptor materials = 3; google.protobuf.Struct byproducts = 4; google.protobuf.Struct environment = 5; } golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/provenance/000077500000000000000000000000001470602552500320755ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/provenance/v1/000077500000000000000000000000001470602552500324235ustar00rootroot00000000000000provenance.proto000066400000000000000000000025771470602552500356040ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/provenance/v1// Keep in sync with schema at https://github.com/slsa-framework/slsa/blob/main/docs/provenance/schema/v1/provenance.proto syntax = "proto3"; package in_toto_attestation.predicates.provenance.v1; import "in_toto_attestation/v1/resource_descriptor.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; option go_package = "github.com/in-toto/attestation/go/predicates/provenance/v1"; option java_package = "io.github.intoto.attestation.predicates.provenance.v1"; // Proto representation of predicate type https://slsa.dev/provenance/v1 // Validation of all fields is left to the users of this proto. message Provenance { BuildDefinition build_definition = 1; RunDetails run_details = 2; } message BuildDefinition { string build_type = 1; google.protobuf.Struct external_parameters = 2; google.protobuf.Struct internal_parameters = 3; repeated in_toto_attestation.v1.ResourceDescriptor resolved_dependencies = 4; } message RunDetails { Builder builder = 1; BuildMetadata metadata = 2; repeated in_toto_attestation.v1.ResourceDescriptor byproducts = 3; } message Builder { string id = 1; map version = 2; repeated in_toto_attestation.v1.ResourceDescriptor builder_dependencies = 3; } message BuildMetadata { string invocation_id = 1; google.protobuf.Timestamp started_on = 2; google.protobuf.Timestamp finished_on = 3; } golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/release/000077500000000000000000000000001470602552500313555ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/release/v0/000077500000000000000000000000001470602552500317025ustar00rootroot00000000000000release.proto000066400000000000000000000004551470602552500343340ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/release/v0syntax = "proto3"; package in_toto_attestation.predicates.release.v0; option go_package = "github.com/in-toto/attestation/go/predicates/release/v0"; option java_package = "io.github.intoto.attestation.predicates.release.v0"; message Release { string purl = 1; optional string release_id = 2; } golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/scai/000077500000000000000000000000001470602552500306545ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/scai/v0/000077500000000000000000000000001470602552500312015ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/scai/v0/scai.proto000066400000000000000000000016071470602552500332110ustar00rootroot00000000000000// Protobuf definition for the SCAI Attribute Report predicate // (predicateType = https://in-toto.io/attestation/scai/attribute-report/v0.2) // // Validation of all fields is left to the users of this proto. syntax = "proto3"; package in_toto_attestation.predicates.scai.v0; import "google/protobuf/struct.proto"; import "in_toto_attestation/v1/resource_descriptor.proto"; option go_package = "github.com/in-toto/attestation/go/predicates/scai/v0"; option java_package = "io.github.intoto.attestation.predicates.scai.v0"; message AttributeAssertion { string attribute = 1; // required in_toto_attestation.v1.ResourceDescriptor target = 2; google.protobuf.Struct conditions = 3; in_toto_attestation.v1.ResourceDescriptor evidence = 4; } message AttributeReport { repeated AttributeAssertion attributes = 1; in_toto_attestation.v1.ResourceDescriptor producer = 2; } golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/test_result/000077500000000000000000000000001470602552500323125ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/test_result/v0/000077500000000000000000000000001470602552500326375ustar00rootroot00000000000000test_result.proto000066400000000000000000000010601470602552500362170ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/test_result/v0 syntax = "proto3"; package in_toto_attestation.predicates.test_result.v0; import "in_toto_attestation/v1/resource_descriptor.proto"; option go_package = "github.com/in-toto/attestation/go/predicates/test_result/v0"; option java_package = "io.github.intoto.attestation.predicates.test_result.v0"; message TestResult { string result = 1; repeated in_toto_attestation.v1.ResourceDescriptor configuration = 2; string url = 3; repeated string passed_tests = 4; repeated string warned_tests = 5; repeated string failed_tests = 6; } golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/vsa/000077500000000000000000000000001470602552500305265ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/vsa/v0/000077500000000000000000000000001470602552500310535ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/vsa/v0/vsa.proto000066400000000000000000000021511470602552500327300ustar00rootroot00000000000000syntax = "proto3"; package in_toto_attestation.predicates.vsa.v0; import "google/protobuf/timestamp.proto"; option go_package = "github.com/in-toto/attestation/go/predicates/vsa/v0"; option java_package = "io.github.intoto.attestation.predicates.vsa.v0"; // Proto representation of predicate type https://slsa.dev/verification_summary/v0.2 // Validation of all fields is left to the users of this proto. message VerificationSummary { message Verifier { string id = 1; } Verifier verifier = 1; google.protobuf.Timestamp time_verified = 2 [json_name = "time_verified"]; string resource_uri = 3 [json_name = "resource_uri"]; message Policy { string uri = 1; map digest = 2; } Policy policy = 4; message InputAttestation { string uri = 1; map digest = 2; } repeated InputAttestation input_attestations = 5 [json_name = "input_attestations"]; string verification_result = 6 [json_name = "verification_result"]; string policy_level = 7 [json_name = "policy_level"]; map dependency_levels = 8 [json_name = "dependency_levels"]; } golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/vsa/v1/000077500000000000000000000000001470602552500310545ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/predicates/vsa/v1/vsa.proto000066400000000000000000000022361470602552500327350ustar00rootroot00000000000000syntax = "proto3"; package in_toto_attestation.predicates.vsa.v1; import "google/protobuf/timestamp.proto"; option go_package = "github.com/in-toto/attestation/go/predicates/vsa/v1"; option java_package = "io.github.intoto.attestation.predicates.vsa.v1"; // Proto representation of predicate type https://slsa.dev/verification_summary/v1 // Validation of all fields is left to the users of this proto. message VerificationSummary { message Verifier { string id = 1; } Verifier verifier = 1; google.protobuf.Timestamp time_verified = 2 [json_name = "timeVerified"]; string resource_uri = 3 [json_name = "resourceUri"]; message Policy { string uri = 1; map digest = 2; } Policy policy = 4; message InputAttestation { string uri = 1; map digest = 2; } repeated InputAttestation input_attestations = 5 [json_name = "inputAttestations"]; string verification_result = 6 [json_name = "verificationResult"]; string verified_levels = 7 [json_name = "verifiedLevels"]; map dependency_levels = 8 [json_name = "dependencyLevels"]; string slsa_version = 9 [json_name = "slsaVersion"]; } golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/v1/000077500000000000000000000000001470602552500261405ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/v1/resource_descriptor.proto000066400000000000000000000020511470602552500333100ustar00rootroot00000000000000syntax = "proto3"; package in_toto_attestation.v1; import "google/protobuf/struct.proto"; option go_package = "github.com/in-toto/attestation/go/v1"; option java_package = "io.github.intoto.attestation.v1"; // Proto representation of the in-toto v1 ResourceDescriptor. // https://github.com/in-toto/attestation/blob/main/spec/v1/resource_descriptor.md // Validation of all fields is left to the users of this proto. message ResourceDescriptor { string name = 1; string uri = 2; map digest = 3; bytes content = 4; string download_location = 5; string media_type = 6; // Per the Struct protobuf spec, this type corresponds to // a JSON Object, which is truly a map under the hood. // So, the Struct a) is still consistent with our specification for // the `annotations` field, and b) has native support in some language // bindings making their use easier in implementations. // See: https://pkg.go.dev/google.golang.org/protobuf/types/known/structpb#Struct google.protobuf.Struct annotations = 7; } golang-github-in-toto-attestation-1.1.0/protos/in_toto_attestation/v1/statement.proto000066400000000000000000000013061470602552500312310ustar00rootroot00000000000000syntax = "proto3"; package in_toto_attestation.v1; import "google/protobuf/struct.proto"; import "in_toto_attestation/v1/resource_descriptor.proto"; option go_package = "github.com/in-toto/attestation/go/v1"; option java_package = "io.github.intoto.attestation.v1"; // Proto representation of the in-toto v1 Statement. // https://github.com/in-toto/attestation/tree/main/spec/v1 // Validation of all fields is left to the users of this proto. message Statement { // Expected to always be "https://in-toto.io/Statement/v1" string type = 1 [json_name = "_type"]; repeated in_toto_attestation.v1.ResourceDescriptor subject = 2; string predicate_type = 3; google.protobuf.Struct predicate = 4; } golang-github-in-toto-attestation-1.1.0/python/000077500000000000000000000000001470602552500215135ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/Makefile000066400000000000000000000027211470602552500231550ustar00rootroot00000000000000SHELL := /bin/bash PY_MODULE := in_toto_attestation ALL_PY_SRCS := $(shell find $(PY_MODULE) tests -name '*.py') # Optionally overriden by the user, if they're using a virtual environment manager. VENV ?= env VENV_STAMP = $(VENV)/pyvenv.cfg # On Windows, venv scripts/shims are under `Scripts` instead of `bin`. VENV_BIN := $(VENV)/bin ifeq ($(OS),Windows_NT) VENV_BIN := $(VENV)/Scripts endif # Optionally overridden by the user in the `release` target. BUMP_ARGS := # Optionally overridden by the user/CI, to limit the installation to a specific # subset of development dependencies. INSTALL_EXTRA := dev .PHONY: all all: @echo "Run my targets individually!" .PHONY: dev dev: $(VENV_STAMP) $(VENV_STAMP): pyproject.toml python -m venv $(VENV) $(VENV_BIN)/python -m pip install --upgrade pip $(VENV_BIN)/python -m pip install -e .[$(INSTALL_EXTRA)] .PHONY: lint lint: $(VENV_STAMP) . $(VENV_BIN)/activate && \ ruff format --check $(ALL_PY_SRCS) && \ ruff $(ALL_PY_SRCS) && \ mypy $(PY_MODULE) .PHONY: reformat reformat: $(VENV_STAMP) . $(VENV_BIN)/activate && \ ruff format $(ALL_PY_SRCS) && \ ruff --fix $(ALL_PY_SRCS) .PHONY: test tests test tests: $(VENV_STAMP) . $(VENV_BIN)/activate && \ pytest --cov=$(PY_MODULE) $(T) $(TEST_ARGS) && \ python -m coverage report -m $(COV_ARGS) .PHONY: package package: $(VENV_STAMP) . $(VENV_BIN)/activate && \ python -m build .PHONY: edit edit: $(EDITOR) $(ALL_PY_SRCS) .PHONY: clean clean: rm -r $(VENV) golang-github-in-toto-attestation-1.1.0/python/README.md000066400000000000000000000016651470602552500230020ustar00rootroot00000000000000# Python implementation of in-toto attestations This package contains Python bindings for in-toto/attestation. Its contents are autogenerated using [protobuf definitions](https://github.com/in-toto/attestation/tree/main/protos). For more information, see the [in-toto Attestation Framework](https://github.com/in-toto/attestation). ## Usage Install via `pip install in-toto-attestation`. The Python bindings for the attestation layers and predicates are provided in the `in_toto_attestation.v1` and `in_toto_attestation.predicates` packages, respectively. Please note that our package names use the term "attestation" in the _singular_. ## Testing See the [testing docs] for info and instructions for testing this implementation. ## Versioning At the moment, this library is versioned <1.0 as we work towards stabilizing the protobuf definitions and the available predicates. [testing docs]: ../docs/testing.md#testing-the-python-bindings golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/000077500000000000000000000000001470602552500256055ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/__init__.py000066400000000000000000000000221470602552500277100ustar00rootroot00000000000000version = "0.9.3" golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/000077500000000000000000000000001470602552500277305ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/link/000077500000000000000000000000001470602552500306655ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/link/v0/000077500000000000000000000000001470602552500312125ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/link/v0/link_pb2.py000066400000000000000000000036571470602552500332770ustar00rootroot00000000000000# Generated by the protocol buffer compiler. DO NOT EDIT! # source: in_toto_attestation/predicates/link/v0/link.proto """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 from in_toto_attestation.v1 import ( resource_descriptor_pb2 as in__toto__attestation_dot_v1_dot_resource__descriptor__pb2, ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( b'\n1in_toto_attestation/predicates/link/v0/link.proto\x12&in_toto_attestation.predicates.link.v0\x1a\x30in_toto_attestation/v1/resource_descriptor.proto\x1a\x1cgoogle/protobuf/struct.proto"\xbf\x01\n\x04Link\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x02 \x03(\t\x12=\n\tmaterials\x18\x03 \x03(\x0b\x32*.in_toto_attestation.v1.ResourceDescriptor\x12+\n\nbyproducts\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\x12,\n\x0b\x65nvironment\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructBg\n/io.github.intoto.attestation.predicates.link.v0Z4github.com/in-toto/attestation/go/predicates/link/v0b\x06proto3' ) _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages( DESCRIPTOR, "in_toto_attestation.predicates.link.v0.link_pb2", _globals ) if _descriptor._USE_C_DESCRIPTORS == False: _globals["DESCRIPTOR"]._options = None _globals[ "DESCRIPTOR" ]._serialized_options = b"\n/io.github.intoto.attestation.predicates.link.v0Z4github.com/in-toto/attestation/go/predicates/link/v0" _globals["_LINK"]._serialized_start = 174 _globals["_LINK"]._serialized_end = 365 # @@protoc_insertion_point(module_scope) golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/provenance/000077500000000000000000000000001470602552500320705ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/provenance/v1/000077500000000000000000000000001470602552500324165ustar00rootroot00000000000000provenance_pb2.py000066400000000000000000000076221470602552500356230ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/provenance/v1# Generated by the protocol buffer compiler. DO NOT EDIT! # source: in_toto_attestation/predicates/provenance/v1/provenance.proto """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from in_toto_attestation.v1 import ( resource_descriptor_pb2 as in__toto__attestation_dot_v1_dot_resource__descriptor__pb2, ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( b'\n=in_toto_attestation/predicates/provenance/v1/provenance.proto\x12,in_toto_attestation.predicates.provenance.v1\x1a\x30in_toto_attestation/v1/resource_descriptor.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xb4\x01\n\nProvenance\x12W\n\x10\x62uild_definition\x18\x01 \x01(\x0b\x32=.in_toto_attestation.predicates.provenance.v1.BuildDefinition\x12M\n\x0brun_details\x18\x02 \x01(\x0b\x32\x38.in_toto_attestation.predicates.provenance.v1.RunDetails"\xdc\x01\n\x0f\x42uildDefinition\x12\x12\n\nbuild_type\x18\x01 \x01(\t\x12\x34\n\x13\x65xternal_parameters\x18\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x34\n\x13internal_parameters\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12I\n\x15resolved_dependencies\x18\x04 \x03(\x0b\x32*.in_toto_attestation.v1.ResourceDescriptor"\xe3\x01\n\nRunDetails\x12\x46\n\x07\x62uilder\x18\x01 \x01(\x0b\x32\x35.in_toto_attestation.predicates.provenance.v1.Builder\x12M\n\x08metadata\x18\x02 \x01(\x0b\x32;.in_toto_attestation.predicates.provenance.v1.BuildMetadata\x12>\n\nbyproducts\x18\x03 \x03(\x0b\x32*.in_toto_attestation.v1.ResourceDescriptor"\xe4\x01\n\x07\x42uilder\x12\n\n\x02id\x18\x01 \x01(\t\x12S\n\x07version\x18\x02 \x03(\x0b\x32\x42.in_toto_attestation.predicates.provenance.v1.Builder.VersionEntry\x12H\n\x14\x62uilder_dependencies\x18\x03 \x03(\x0b\x32*.in_toto_attestation.v1.ResourceDescriptor\x1a.\n\x0cVersionEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"\x87\x01\n\rBuildMetadata\x12\x15\n\rinvocation_id\x18\x01 \x01(\t\x12.\n\nstarted_on\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0b\x66inished_on\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampBs\n5io.github.intoto.attestation.predicates.provenance.v1Z:github.com/in-toto/attestation/go/predicates/provenance/v1b\x06proto3' ) _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages( DESCRIPTOR, "in_toto_attestation.predicates.provenance.v1.provenance_pb2", _globals ) if _descriptor._USE_C_DESCRIPTORS == False: _globals["DESCRIPTOR"]._options = None _globals[ "DESCRIPTOR" ]._serialized_options = b"\n5io.github.intoto.attestation.predicates.provenance.v1Z:github.com/in-toto/attestation/go/predicates/provenance/v1" _globals["_BUILDER_VERSIONENTRY"]._options = None _globals["_BUILDER_VERSIONENTRY"]._serialized_options = b"8\001" _globals["_PROVENANCE"]._serialized_start = 225 _globals["_PROVENANCE"]._serialized_end = 405 _globals["_BUILDDEFINITION"]._serialized_start = 408 _globals["_BUILDDEFINITION"]._serialized_end = 628 _globals["_RUNDETAILS"]._serialized_start = 631 _globals["_RUNDETAILS"]._serialized_end = 858 _globals["_BUILDER"]._serialized_start = 861 _globals["_BUILDER"]._serialized_end = 1089 _globals["_BUILDER_VERSIONENTRY"]._serialized_start = 1043 _globals["_BUILDER_VERSIONENTRY"]._serialized_end = 1089 _globals["_BUILDMETADATA"]._serialized_start = 1092 _globals["_BUILDMETADATA"]._serialized_end = 1227 # @@protoc_insertion_point(module_scope) golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/release/000077500000000000000000000000001470602552500313505ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/release/v0/000077500000000000000000000000001470602552500316755ustar00rootroot00000000000000release_pb2.py000066400000000000000000000027511470602552500343600ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/release/v0# Generated by the protocol buffer compiler. DO NOT EDIT! # source: in_toto_attestation/predicates/release/v0/release.proto """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( b'\n7in_toto_attestation/predicates/release/v0/release.proto\x12)in_toto_attestation.predicates.release.v0"?\n\x07Release\x12\x0c\n\x04purl\x18\x01 \x01(\t\x12\x17\n\nrelease_id\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_release_idBm\n2io.github.intoto.attestation.predicates.release.v0Z7github.com/in-toto/attestation/go/predicates/release/v0b\x06proto3' ) _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages( DESCRIPTOR, "in_toto_attestation.predicates.release.v0.release_pb2", _globals ) if _descriptor._USE_C_DESCRIPTORS == False: _globals["DESCRIPTOR"]._options = None _globals[ "DESCRIPTOR" ]._serialized_options = b"\n2io.github.intoto.attestation.predicates.release.v0Z7github.com/in-toto/attestation/go/predicates/release/v0" _globals["_RELEASE"]._serialized_start = 102 _globals["_RELEASE"]._serialized_end = 165 # @@protoc_insertion_point(module_scope) golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/scai/000077500000000000000000000000001470602552500306475ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/scai/v0/000077500000000000000000000000001470602552500311745ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/scai/v0/scai.py000066400000000000000000000053201470602552500324650ustar00rootroot00000000000000# Wrapper class for in-toto attestation SCAI predicate protos. import in_toto_attestation.predicates.scai.v0.scai_pb2 as scaipb from in_toto_attestation.v1.resource_descriptor import ResourceDescriptor SCAI_PREDICATE_TYPE = "https://in-toto.io/attestation/scai/attribute-report/" SCAI_PREDICATE_VERSION = "v0.2" class AttributeAssertion: def __init__(self, attribute, target=None, conditions=None, evidence=None) -> None: self.pb = scaipb.AttributeAssertion() # type: ignore[attr-defined] self.pb.attribute = attribute if target: self.pb.target.CopyFrom(target) if conditions: self.pb.conditions.update(conditions) if evidence: self.pb.evidence.CopyFrom(evidence) @staticmethod def copy_from_pb(proto: type[scaipb.AttributeAssertion]) -> "AttributeAssertion": # type: ignore[name-defined] assertion = AttributeAssertion("tmp-attr") assertion.pb.CopyFrom(proto) return assertion def validate(self) -> None: if len(self.pb.attribute) == 0: raise ValueError("The attribute field is required") # check any resource descriptors are valid if self.pb.target.ByteSize() > 0: rd = ResourceDescriptor.copy_from_pb(self.pb.target) rd.validate() if self.pb.evidence.ByteSize() > 0: rd = ResourceDescriptor.copy_from_pb(self.pb.evidence) rd.validate() class AttributeReport: def __init__(self, attributes: list, producer=None) -> None: self.pb = scaipb.AttributeReport() # type: ignore[attr-defined] self.pb.attributes.extend(attributes) if producer: self.pb.producer.CopyFrom(producer) @staticmethod def copy_from_pb(proto: type[scaipb.AttributeReport]) -> "AttributeReport": # type: ignore[name-defined] report = AttributeReport([None]) report.pb.CopyFrom(proto) return report def validate(self) -> None: if len(self.pb.attributes) == 0: raise ValueError("The attributes field is required") # check any attribute assertions are valid attributes = self.pb.attributes for i, attrpb in enumerate(attributes): assertion = AttributeAssertion.copy_from_pb(attrpb) try: assertion.validate() except ValueError as e: # return index in the attributes list in case of failure: # can't assume any other fields in attribute assertion are set raise ValueError(f"Invalid attributes field (index: {i})") from e if self.pb.producer.ByteSize() > 0: rd = ResourceDescriptor.copy_from_pb(self.pb.producer) rd.validate() golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/scai/v0/scai_pb2.py000066400000000000000000000044141470602552500332330ustar00rootroot00000000000000# Generated by the protocol buffer compiler. DO NOT EDIT! # source: in_toto_attestation/predicates/scai/v0/scai.proto """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 from in_toto_attestation.v1 import ( resource_descriptor_pb2 as in__toto__attestation_dot_v1_dot_resource__descriptor__pb2, ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( b'\n1in_toto_attestation/predicates/scai/v0/scai.proto\x12&in_toto_attestation.predicates.scai.v0\x1a\x1cgoogle/protobuf/struct.proto\x1a\x30in_toto_attestation/v1/resource_descriptor.proto"\xce\x01\n\x12\x41ttributeAssertion\x12\x11\n\tattribute\x18\x01 \x01(\t\x12:\n\x06target\x18\x02 \x01(\x0b\x32*.in_toto_attestation.v1.ResourceDescriptor\x12+\n\nconditions\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\x12<\n\x08\x65vidence\x18\x04 \x01(\x0b\x32*.in_toto_attestation.v1.ResourceDescriptor"\x9f\x01\n\x0f\x41ttributeReport\x12N\n\nattributes\x18\x01 \x03(\x0b\x32:.in_toto_attestation.predicates.scai.v0.AttributeAssertion\x12<\n\x08producer\x18\x02 \x01(\x0b\x32*.in_toto_attestation.v1.ResourceDescriptorBg\n/io.github.intoto.attestation.predicates.scai.v0Z4github.com/in-toto/attestation/go/predicates/scai/v0b\x06proto3' ) _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages( DESCRIPTOR, "in_toto_attestation.predicates.scai.v0.scai_pb2", _globals ) if _descriptor._USE_C_DESCRIPTORS == False: _globals["DESCRIPTOR"]._options = None _globals[ "DESCRIPTOR" ]._serialized_options = b"\n/io.github.intoto.attestation.predicates.scai.v0Z4github.com/in-toto/attestation/go/predicates/scai/v0" _globals["_ATTRIBUTEASSERTION"]._serialized_start = 174 _globals["_ATTRIBUTEASSERTION"]._serialized_end = 380 _globals["_ATTRIBUTEREPORT"]._serialized_start = 383 _globals["_ATTRIBUTEREPORT"]._serialized_end = 542 # @@protoc_insertion_point(module_scope) golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/test_result/000077500000000000000000000000001470602552500323055ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/test_result/v0/000077500000000000000000000000001470602552500326325ustar00rootroot00000000000000test_result_pb2.py000066400000000000000000000036321470602552500362510ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/test_result/v0# Generated by the protocol buffer compiler. DO NOT EDIT! # source: in_toto_attestation/predicates/test_result/v0/test_result.proto """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() from in_toto_attestation.v1 import ( resource_descriptor_pb2 as in__toto__attestation_dot_v1_dot_resource__descriptor__pb2, ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( b'\n?in_toto_attestation/predicates/test_result/v0/test_result.proto\x12-in_toto_attestation.predicates.test_result.v0\x1a\x30in_toto_attestation/v1/resource_descriptor.proto"\xae\x01\n\nTestResult\x12\x0e\n\x06result\x18\x01 \x01(\t\x12\x41\n\rconfiguration\x18\x02 \x03(\x0b\x32*.in_toto_attestation.v1.ResourceDescriptor\x12\x0b\n\x03url\x18\x03 \x01(\t\x12\x14\n\x0cpassed_tests\x18\x04 \x03(\t\x12\x14\n\x0cwarned_tests\x18\x05 \x03(\t\x12\x14\n\x0c\x66\x61iled_tests\x18\x06 \x03(\tBu\n6io.github.intoto.attestation.predicates.test_result.v0Z;github.com/in-toto/attestation/go/predicates/test_result/v0b\x06proto3' ) _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages( DESCRIPTOR, "in_toto_attestation.predicates.test_result.v0.test_result_pb2", _globals, ) if _descriptor._USE_C_DESCRIPTORS == False: _globals["DESCRIPTOR"]._options = None _globals[ "DESCRIPTOR" ]._serialized_options = b"\n6io.github.intoto.attestation.predicates.test_result.v0Z;github.com/in-toto/attestation/go/predicates/test_result/v0" _globals["_TESTRESULT"]._serialized_start = 165 _globals["_TESTRESULT"]._serialized_end = 339 # @@protoc_insertion_point(module_scope) golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/vsa/000077500000000000000000000000001470602552500305215ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/vsa/v0/000077500000000000000000000000001470602552500310465ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/vsa/v0/vsa_pb2.py000066400000000000000000000107331470602552500327600ustar00rootroot00000000000000# Generated by the protocol buffer compiler. DO NOT EDIT! # source: in_toto_attestation/predicates/vsa/v0/vsa.proto """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( b'\n/in_toto_attestation/predicates/vsa/v0/vsa.proto\x12%in_toto_attestation.predicates.vsa.v0\x1a\x1fgoogle/protobuf/timestamp.proto"\xa9\x08\n\x13VerificationSummary\x12U\n\x08verifier\x18\x01 \x01(\x0b\x32\x43.in_toto_attestation.predicates.vsa.v0.VerificationSummary.Verifier\x12@\n\rtime_verified\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\rtime_verified\x12"\n\x0cresource_uri\x18\x03 \x01(\tR\x0cresource_uri\x12Q\n\x06policy\x18\x04 \x01(\x0b\x32\x41.in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy\x12{\n\x12input_attestations\x18\x05 \x03(\x0b\x32K.in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestationR\x12input_attestations\x12\x30\n\x13verification_result\x18\x06 \x01(\tR\x13verification_result\x12"\n\x0cpolicy_level\x18\x07 \x01(\tR\x0cpolicy_level\x12~\n\x11\x64\x65pendency_levels\x18\x08 \x03(\x0b\x32P.in_toto_attestation.predicates.vsa.v0.VerificationSummary.DependencyLevelsEntryR\x11\x64\x65pendency_levels\x1a\x16\n\x08Verifier\x12\n\n\x02id\x18\x01 \x01(\t\x1a\xa3\x01\n\x06Policy\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12]\n\x06\x64igest\x18\x02 \x03(\x0b\x32M.in_toto_attestation.predicates.vsa.v0.VerificationSummary.Policy.DigestEntry\x1a-\n\x0b\x44igestEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\xb7\x01\n\x10InputAttestation\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12g\n\x06\x64igest\x18\x02 \x03(\x0b\x32W.in_toto_attestation.predicates.vsa.v0.VerificationSummary.InputAttestation.DigestEntry\x1a-\n\x0b\x44igestEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x37\n\x15\x44\x65pendencyLevelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x42\x65\n.io.github.intoto.attestation.predicates.vsa.v0Z3github.com/in-toto/attestation/go/predicates/vsa/v0b\x06proto3' ) _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages( DESCRIPTOR, "in_toto_attestation.predicates.vsa.v0.vsa_pb2", _globals ) if _descriptor._USE_C_DESCRIPTORS == False: _globals["DESCRIPTOR"]._options = None _globals[ "DESCRIPTOR" ]._serialized_options = b"\n.io.github.intoto.attestation.predicates.vsa.v0Z3github.com/in-toto/attestation/go/predicates/vsa/v0" _globals["_VERIFICATIONSUMMARY_POLICY_DIGESTENTRY"]._options = None _globals["_VERIFICATIONSUMMARY_POLICY_DIGESTENTRY"]._serialized_options = b"8\001" _globals["_VERIFICATIONSUMMARY_INPUTATTESTATION_DIGESTENTRY"]._options = None _globals[ "_VERIFICATIONSUMMARY_INPUTATTESTATION_DIGESTENTRY" ]._serialized_options = b"8\001" _globals["_VERIFICATIONSUMMARY_DEPENDENCYLEVELSENTRY"]._options = None _globals[ "_VERIFICATIONSUMMARY_DEPENDENCYLEVELSENTRY" ]._serialized_options = b"8\001" _globals["_VERIFICATIONSUMMARY"]._serialized_start = 124 _globals["_VERIFICATIONSUMMARY"]._serialized_end = 1189 _globals["_VERIFICATIONSUMMARY_VERIFIER"]._serialized_start = 758 _globals["_VERIFICATIONSUMMARY_VERIFIER"]._serialized_end = 780 _globals["_VERIFICATIONSUMMARY_POLICY"]._serialized_start = 783 _globals["_VERIFICATIONSUMMARY_POLICY"]._serialized_end = 946 _globals["_VERIFICATIONSUMMARY_POLICY_DIGESTENTRY"]._serialized_start = 901 _globals["_VERIFICATIONSUMMARY_POLICY_DIGESTENTRY"]._serialized_end = 946 _globals["_VERIFICATIONSUMMARY_INPUTATTESTATION"]._serialized_start = 949 _globals["_VERIFICATIONSUMMARY_INPUTATTESTATION"]._serialized_end = 1132 _globals[ "_VERIFICATIONSUMMARY_INPUTATTESTATION_DIGESTENTRY" ]._serialized_start = 901 _globals["_VERIFICATIONSUMMARY_INPUTATTESTATION_DIGESTENTRY"]._serialized_end = 946 _globals["_VERIFICATIONSUMMARY_DEPENDENCYLEVELSENTRY"]._serialized_start = 1134 _globals["_VERIFICATIONSUMMARY_DEPENDENCYLEVELSENTRY"]._serialized_end = 1189 # @@protoc_insertion_point(module_scope) golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/vsa/v1/000077500000000000000000000000001470602552500310475ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/predicates/vsa/v1/vsa_pb2.py000066400000000000000000000110201470602552500327470ustar00rootroot00000000000000# Generated by the protocol buffer compiler. DO NOT EDIT! # source: in_toto_attestation/predicates/vsa/v1/vsa.proto """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( b"\n/in_toto_attestation/predicates/vsa/v1/vsa.proto\x12%in_toto_attestation.predicates.vsa.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\xcc\x08\n\x13VerificationSummary\x12U\n\x08verifier\x18\x01 \x01(\x0b\x32\x43.in_toto_attestation.predicates.vsa.v1.VerificationSummary.Verifier\x12?\n\rtime_verified\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0ctimeVerified\x12!\n\x0cresource_uri\x18\x03 \x01(\tR\x0bresourceUri\x12Q\n\x06policy\x18\x04 \x01(\x0b\x32\x41.in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy\x12z\n\x12input_attestations\x18\x05 \x03(\x0b\x32K.in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestationR\x11inputAttestations\x12/\n\x13verification_result\x18\x06 \x01(\tR\x12verificationResult\x12'\n\x0fverified_levels\x18\x07 \x01(\tR\x0everifiedLevels\x12}\n\x11\x64\x65pendency_levels\x18\x08 \x03(\x0b\x32P.in_toto_attestation.predicates.vsa.v1.VerificationSummary.DependencyLevelsEntryR\x10\x64\x65pendencyLevels\x12!\n\x0cslsa_version\x18\t \x01(\tR\x0bslsaVersion\x1a\x16\n\x08Verifier\x12\n\n\x02id\x18\x01 \x01(\t\x1a\xa3\x01\n\x06Policy\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12]\n\x06\x64igest\x18\x02 \x03(\x0b\x32M.in_toto_attestation.predicates.vsa.v1.VerificationSummary.Policy.DigestEntry\x1a-\n\x0b\x44igestEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\xb7\x01\n\x10InputAttestation\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12g\n\x06\x64igest\x18\x02 \x03(\x0b\x32W.in_toto_attestation.predicates.vsa.v1.VerificationSummary.InputAttestation.DigestEntry\x1a-\n\x0b\x44igestEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x37\n\x15\x44\x65pendencyLevelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x42\x65\n.io.github.intoto.attestation.predicates.vsa.v1Z3github.com/in-toto/attestation/go/predicates/vsa/v1b\x06proto3" ) _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages( DESCRIPTOR, "in_toto_attestation.predicates.vsa.v1.vsa_pb2", _globals ) if _descriptor._USE_C_DESCRIPTORS == False: _globals["DESCRIPTOR"]._options = None _globals[ "DESCRIPTOR" ]._serialized_options = b"\n.io.github.intoto.attestation.predicates.vsa.v1Z3github.com/in-toto/attestation/go/predicates/vsa/v1" _globals["_VERIFICATIONSUMMARY_POLICY_DIGESTENTRY"]._options = None _globals["_VERIFICATIONSUMMARY_POLICY_DIGESTENTRY"]._serialized_options = b"8\001" _globals["_VERIFICATIONSUMMARY_INPUTATTESTATION_DIGESTENTRY"]._options = None _globals[ "_VERIFICATIONSUMMARY_INPUTATTESTATION_DIGESTENTRY" ]._serialized_options = b"8\001" _globals["_VERIFICATIONSUMMARY_DEPENDENCYLEVELSENTRY"]._options = None _globals[ "_VERIFICATIONSUMMARY_DEPENDENCYLEVELSENTRY" ]._serialized_options = b"8\001" _globals["_VERIFICATIONSUMMARY"]._serialized_start = 124 _globals["_VERIFICATIONSUMMARY"]._serialized_end = 1224 _globals["_VERIFICATIONSUMMARY_VERIFIER"]._serialized_start = 793 _globals["_VERIFICATIONSUMMARY_VERIFIER"]._serialized_end = 815 _globals["_VERIFICATIONSUMMARY_POLICY"]._serialized_start = 818 _globals["_VERIFICATIONSUMMARY_POLICY"]._serialized_end = 981 _globals["_VERIFICATIONSUMMARY_POLICY_DIGESTENTRY"]._serialized_start = 936 _globals["_VERIFICATIONSUMMARY_POLICY_DIGESTENTRY"]._serialized_end = 981 _globals["_VERIFICATIONSUMMARY_INPUTATTESTATION"]._serialized_start = 984 _globals["_VERIFICATIONSUMMARY_INPUTATTESTATION"]._serialized_end = 1167 _globals[ "_VERIFICATIONSUMMARY_INPUTATTESTATION_DIGESTENTRY" ]._serialized_start = 936 _globals["_VERIFICATIONSUMMARY_INPUTATTESTATION_DIGESTENTRY"]._serialized_end = 981 _globals["_VERIFICATIONSUMMARY_DEPENDENCYLEVELSENTRY"]._serialized_start = 1169 _globals["_VERIFICATIONSUMMARY_DEPENDENCYLEVELSENTRY"]._serialized_end = 1224 # @@protoc_insertion_point(module_scope) golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/v1/000077500000000000000000000000001470602552500261335ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/v1/resource_descriptor.py000066400000000000000000000026221470602552500325740ustar00rootroot00000000000000# Wrapper class for in-toto attestation ResourceDescriptor protos. from __future__ import annotations import json import google.protobuf.json_format as pb_json from google.protobuf.struct_pb2 import Value import in_toto_attestation.v1.resource_descriptor_pb2 as rdpb class ResourceDescriptor: def __init__( self, name: str = "", uri: str = "", digest: dict | None = None, content: bytes = b"", download_location: str = "", media_type: str = "", annotations: dict | None = None, ) -> None: self.pb = rdpb.ResourceDescriptor() # type: ignore[attr-defined] self.pb.name = name self.pb.uri = uri if digest: self.pb.digest.update(digest) self.pb.content = content self.pb.download_location = download_location self.pb.media_type = media_type if annotations: self.pb.annotations.update(annotations) @staticmethod def copy_from_pb(proto: rdpb.ResourceDescriptor) -> ResourceDescriptor: # type: ignore[name-defined] rd = ResourceDescriptor() rd.pb.CopyFrom(proto) return rd def validate(self) -> None: # at least one of name, URI or digest are required if self.pb.name == "" and self.pb.uri == "" and len(self.pb.digest) == 0: raise ValueError("At least one of name, URI, or digest need to be set") golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/v1/resource_descriptor_pb2.py000066400000000000000000000042671470602552500333460ustar00rootroot00000000000000# Generated by the protocol buffer compiler. DO NOT EDIT! # source: in_toto_attestation/v1/resource_descriptor.proto """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( b'\n0in_toto_attestation/v1/resource_descriptor.proto\x12\x16in_toto_attestation.v1\x1a\x1cgoogle/protobuf/struct.proto"\x94\x02\n\x12ResourceDescriptor\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0b\n\x03uri\x18\x02 \x01(\t\x12\x46\n\x06\x64igest\x18\x03 \x03(\x0b\x32\x36.in_toto_attestation.v1.ResourceDescriptor.DigestEntry\x12\x0f\n\x07\x63ontent\x18\x04 \x01(\x0c\x12\x19\n\x11\x64ownload_location\x18\x05 \x01(\t\x12\x12\n\nmedia_type\x18\x06 \x01(\t\x12,\n\x0b\x61nnotations\x18\x07 \x01(\x0b\x32\x17.google.protobuf.Struct\x1a-\n\x0b\x44igestEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42G\n\x1fio.github.intoto.attestation.v1Z$github.com/in-toto/attestation/go/v1b\x06proto3' ) _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages( DESCRIPTOR, "in_toto_attestation.v1.resource_descriptor_pb2", _globals ) if _descriptor._USE_C_DESCRIPTORS == False: _globals["DESCRIPTOR"]._options = None _globals[ "DESCRIPTOR" ]._serialized_options = ( b"\n\037io.github.intoto.attestation.v1Z$github.com/in-toto/attestation/go/v1" ) _globals["_RESOURCEDESCRIPTOR_DIGESTENTRY"]._options = None _globals["_RESOURCEDESCRIPTOR_DIGESTENTRY"]._serialized_options = b"8\001" _globals["_RESOURCEDESCRIPTOR"]._serialized_start = 107 _globals["_RESOURCEDESCRIPTOR"]._serialized_end = 383 _globals["_RESOURCEDESCRIPTOR_DIGESTENTRY"]._serialized_start = 338 _globals["_RESOURCEDESCRIPTOR_DIGESTENTRY"]._serialized_end = 383 # @@protoc_insertion_point(module_scope) golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/v1/statement.py000066400000000000000000000033371470602552500305170ustar00rootroot00000000000000# Wrapper class for in-toto attestation Statement protos. import in_toto_attestation.v1.statement_pb2 as spb from in_toto_attestation.v1.resource_descriptor import ResourceDescriptor STATEMENT_TYPE_URI = "https://in-toto.io/Statement/v1" class Statement: def __init__(self, subjects: list, predicate_type: str, predicate: dict) -> None: self.pb = spb.Statement() # type: ignore[attr-defined] self.pb.type = STATEMENT_TYPE_URI self.pb.subject.extend(subjects) self.pb.predicate_type = predicate_type self.pb.predicate.update(predicate) @staticmethod def copy_from_pb(proto: spb.Statement) -> "Statement": # type: ignore[name-defined] stmt = Statement([], "", {}) stmt.pb.CopyFrom(proto) return stmt def validate(self) -> None: if self.pb.type != STATEMENT_TYPE_URI: raise ValueError("Wrong statement type") if len(self.pb.subject) == 0: raise ValueError("At least one subject required") # check all resource descriptors in the subject subject = self.pb.subject for i, rdpb in enumerate(subject): rd = ResourceDescriptor.copy_from_pb(rdpb) rd.validate() # v1 statements require the digest to be set in the subject if len(rd.pb.digest) == 0: # return index in the subjects list in case of failure: # can't assume any other fields in subject are set raise ValueError(f"At least one digest required (subject {i})") if self.pb.predicate_type == "": raise ValueError("Predicate type required") if len(self.pb.predicate) == 0: raise ValueError("Predicate object required") golang-github-in-toto-attestation-1.1.0/python/in_toto_attestation/v1/statement_pb2.py000066400000000000000000000034471470602552500312640ustar00rootroot00000000000000# Generated by the protocol buffer compiler. DO NOT EDIT! # source: in_toto_attestation/v1/statement.proto """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 from in_toto_attestation.v1 import ( resource_descriptor_pb2 as in__toto__attestation_dot_v1_dot_resource__descriptor__pb2, ) DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile( b'\n&in_toto_attestation/v1/statement.proto\x12\x16in_toto_attestation.v1\x1a\x1cgoogle/protobuf/struct.proto\x1a\x30in_toto_attestation/v1/resource_descriptor.proto"\xa1\x01\n\tStatement\x12\x13\n\x04type\x18\x01 \x01(\tR\x05_type\x12;\n\x07subject\x18\x02 \x03(\x0b\x32*.in_toto_attestation.v1.ResourceDescriptor\x12\x16\n\x0epredicate_type\x18\x03 \x01(\t\x12*\n\tpredicate\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructBG\n\x1fio.github.intoto.attestation.v1Z$github.com/in-toto/attestation/go/v1b\x06proto3' ) _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages( DESCRIPTOR, "in_toto_attestation.v1.statement_pb2", _globals ) if _descriptor._USE_C_DESCRIPTORS == False: _globals["DESCRIPTOR"]._options = None _globals[ "DESCRIPTOR" ]._serialized_options = ( b"\n\037io.github.intoto.attestation.v1Z$github.com/in-toto/attestation/go/v1" ) _globals["_STATEMENT"]._serialized_start = 147 _globals["_STATEMENT"]._serialized_end = 308 # @@protoc_insertion_point(module_scope) golang-github-in-toto-attestation-1.1.0/python/pyproject.toml000066400000000000000000000041661470602552500244360ustar00rootroot00000000000000[build-system] requires = ["hatchling>=0.21.1"] build-backend = "hatchling.build" [project] name = "in-toto-attestation" description = "Python bindings for the in-toto Attestation Framework" readme = "README.md" license = "Apache-2.0" requires-python = "~=3.8" keywords = ["security", "software supply chain", "in-toto", "slsa"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Security", "Topic :: Software Development", ] dependencies = ["protobuf"] dynamic = ["version"] [project.urls] "Bug Reports" = "https://github.com/in-toto/attestation/issues" Homepage = "https://in-toto.io" Source = "https://github.com/in-toto/attestation" [project.optional-dependencies] test = ["pytest", "pytest-cov", "coverage[toml]"] lint = ["mypy", "types-protobuf", "ruff"] dev = ["build", "in-toto-attestation[test,lint]"] [tool.hatch.version] path = "in_toto_attestation/__init__.py" [tool.hatch.build.targets.sdist] include = ["/in_toto_attestation"] [tool.ruff] select = ["E", "F", "I", "UP", "W"] [tool.ruff.lint] ignore = [ # protobuf generates non-top-level imports. "E402", # protobuf generates long lines. "E501", # protobuf generates `cond == False`. "E712", # protobuf makes extensive use of unused imports for re-exports. "F401", # protobuf makes extensive us of `globals()`. "F821", ] [tool.mypy] # Don't bother type-checking the generated files. # TODO: Use `mypy-protobuf` for these: https://github.com/nipunn1313/mypy-protobuf exclude = ['^.+_pb2.py$'] warn_unused_configs = true warn_unused_ignores = true show_error_codes = true no_implicit_optional = true golang-github-in-toto-attestation-1.1.0/python/requirements.txt000066400000000000000000000000211470602552500247700ustar00rootroot00000000000000protobuf==4.22.3 golang-github-in-toto-attestation-1.1.0/python/tests/000077500000000000000000000000001470602552500226555ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/python/tests/test_resource_descriptor.py000066400000000000000000000051511470602552500303550ustar00rootroot00000000000000""" Tests for in-toto attestation ResourceDescriptor protos. """ import unittest import google.protobuf.json_format as pb_json import in_toto_attestation.v1.resource_descriptor_pb2 as rdpb from in_toto_attestation.v1.resource_descriptor import ResourceDescriptor def create_test_desc(): desc = ResourceDescriptor( "theName", "https://example.com", {"alg": "abc123"}, b"bytescontent", "https://example.com/test.zip", "theMediaType", {"keyStr": "val1", "keyNum": 13, "keyObj": {"subKey": "subVal"}}, ) return desc class TestResourceDescriptor(unittest.TestCase): def test_create_resource_descriptor(self): test_rd = create_test_desc() test_rd.validate() def test_json_parse_resource_descriptor(self): full_rd = '{"name":"theName","uri":"https://example.com","digest":{"alg":"abc123"},"content":"Ynl0ZXNjb250ZW50","downloadLocation":"https://example.com/test.zip","mediaType":"theMediaType","annotations":{"keyNum": 13,"keyStr":"val1","keyObj":{"subKey":"subVal"}}}' got_pb = pb_json.Parse(full_rd, rdpb.ResourceDescriptor()) got = got_pb.SerializeToString(deterministic=True) test_rd = create_test_desc() want = test_rd.pb.SerializeToString(deterministic=True) self.assertEqual(got, want, "Protos do not match") def test_bad_resource_descriptor(self): bad_rd = '{"downloadLocation":"https://example.com/test.zip","mediaType":"theMediaType"}' got_pb = pb_json.Parse(bad_rd, rdpb.ResourceDescriptor()) got = ResourceDescriptor.copy_from_pb(got_pb) with self.assertRaises( ValueError, msg="Error: created malformed ResourceDescriptor (no required fields)", ): got.validate() def test_empty_name_only(self): bad_rd = '{"name":"","downloadLocation":"https://example.com/test.zip","mediaType":"theMediaType"}' got_pb = pb_json.Parse(bad_rd, rdpb.ResourceDescriptor()) got = ResourceDescriptor.copy_from_pb(got_pb) with self.assertRaises( ValueError, msg="Error: created malformed ResourceDescriptor (only empty required fields)", ): got.validate() def test_empty_digest(self): empty_digest = '{"name":"theName","digest":{},"downloadLocation":"https://example.com/test.zip","mediaType":"theMediaType"}' got_pb = pb_json.Parse(empty_digest, rdpb.ResourceDescriptor()) got = ResourceDescriptor.copy_from_pb(got_pb) # this should not raise an error got.validate() if __name__ == "__main__": unittest.main() golang-github-in-toto-attestation-1.1.0/python/tests/test_statement.py000066400000000000000000000067401470602552500263010ustar00rootroot00000000000000""" Tests for in-toto attestation Statement protos. """ import unittest import google.protobuf.json_format as pb_json import in_toto_attestation.v1.resource_descriptor_pb2 as rdpb import in_toto_attestation.v1.statement_pb2 as stpb from in_toto_attestation.v1.statement import Statement def create_test_statement(): sub = rdpb.ResourceDescriptor() sub.name = "theSub" sub.digest["alg1"] = "abc123" stmt = Statement([sub], "thePredicate", {"keyObj": {"subKey": "subVal"}}) return stmt class TestStatement(unittest.TestCase): def test_create_statement(self): test_st = create_test_statement() test_st.validate() def test_json_parse_statement(self): full_st = '{"_type":"https://in-toto.io/Statement/v1","subject":[{"name":"theSub","digest":{"alg1":"abc123"}}],"predicateType":"thePredicate","predicate":{"keyObj":{"subKey":"subVal"}}}' got_pb = pb_json.Parse(full_st, stpb.Statement()) got = got_pb.SerializeToString(deterministic=True) test_st = create_test_statement() want = test_st.pb.SerializeToString(deterministic=True) self.assertEqual(got, want, "Protos do not match") def test_bad_statement_type(self): bad_st = '{"_type":"https://in-toto.io/Statement/v0","subject":[{"name":"theSub","digest":{"alg1":"abc123"}}],"predicateType":"thePredicate","predicate":{"keyObj":{"subKey":"subVal"}}}' got_pb = pb_json.Parse(bad_st, stpb.Statement()) got = Statement.copy_from_pb(got_pb) with self.assertRaises( ValueError, msg="Error: created malformed Statement (bad type)" ): got.validate() def test_bad_statement_empty_subject(self): bad_st = '{"_type":"https://in-toto.io/Statement/v1","subject":[],"predicateType":"thePredicate","predicate":{"keyObj":{"subKey":"subVal"}}}' got_pb = pb_json.Parse(bad_st, stpb.Statement()) got = Statement.copy_from_pb(got_pb) with self.assertRaises( ValueError, msg="Error: created malformed Statement (empty subject)" ): got.validate() def test_bad_statement_bad_subject(self): bad_st = '{"_type":"https://in-toto.io/Statement/v1","subject":[{"digest":{}}],"predicateType":"thePredicate","predicate":{"keyObj":{"subKey":"subVal"}}}' got_pb = pb_json.Parse(bad_st, stpb.Statement()) got = Statement.copy_from_pb(got_pb) with self.assertRaises( ValueError, msg="Error: created malformed Statement (bad subject)" ): got.validate() def test_bad_predicate_type(self): bad_st = '{"_type":"https://in-toto.io/Statement/v1","subject":[{"name":"theSub","digest":{"alg1":"abc123"}}],"predicateType":"","predicate":{"keyObj":{"subKey":"subVal"}}}' got_pb = pb_json.Parse(bad_st, stpb.Statement()) got = Statement.copy_from_pb(got_pb) with self.assertRaises( ValueError, msg="Error: created malformed Statement (bad predicate type)" ): got.validate() def test_bad_predicate(self): bad_st = '{"_type":"https://in-toto.io/Statement/v1","subject":[{"name":"theSub","digest":{"alg1":"abc123"}}],"predicateType":"thePredicate"}' got_pb = pb_json.Parse(bad_st, stpb.Statement()) got = Statement.copy_from_pb(got_pb) with self.assertRaises( ValueError, msg="Error: created malformed Statement (bad predicate)" ): got.validate() if __name__ == "__main__": unittest.main() golang-github-in-toto-attestation-1.1.0/spec/000077500000000000000000000000001470602552500211245ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/spec/README.md000066400000000000000000000066611470602552500224140ustar00rootroot00000000000000# in-toto Attestation Framework Spec Latest version: [v1.1] An **in-toto attestation** is authenticated metadata about one or more software artifacts[^1]. The intended consumers are automated policy engines, such as [in-toto-verify] and [Binary Authorization]. It has four layers that are independent but designed to work together: - [Predicate]: Contains arbitrary metadata about a subject artifact, with a type-specific schema. - [Statement]: Binds the attestation to a particular subject and unambiguously identifies the types of the predicate. - [Envelope]: Handles authentication and serialization. - [Bundle]: Defines a method of grouping multiple attestations together. The following diagram visualises the relationships between the envelope, statement and predicate layers. Relationships between the envelope, statement and predicate layers The source of this diagram can be found [here](../images/envelope_relationships.excalidraw). The [validation model] provides pseudocode showing how these layers fit together. See the [documentation] for more background and examples. ## Tagged Releases The latest [tagged release] version matches the [SemVer](https://semver.org) MAJOR.MINOR version of the Attestation Framework spec. Backwards-compatible semantic updates to the spec (except predicates) are indicated through new tagged MINOR version releases. We use new tagged PATCH version releases to indicate updates to predicate specifications and/or backwards-compatible changes to the language bindings. ### Examples - Attestation Framework tagged release v1.0.2 (PATCH version) incorporates refinements to the predicate specification process, a new predicate type, and a small patch to the Golang language bindings. None of these changes affects the semantics of the core spec. The `_type` of a `Statement` is still `https://in-toto.io/Statement/v1`. - Tagged release v1.1.0 (MINOR version) generalizes the semantics of the `DigestSet` field type to support any type of immutable identifier. This change is backwards comptabile because cryptographic digests are strongly recommended to achieve immutability, so any implementations that only support cryptographic `DigestSet` still meet the modified semantics. The `_type` of a `Statement` is still `https://in-toto.io/Statement/v1` but a new entry in the `v1` CHANGELOG is added. - Tagged release v2.0.0 (MAJOR version) changes the meaning of the `predicateType` field. A new `v2` directory is added to `/spec` and the `_type` of a `Statement` becomes `https://in-toto.io/Statement/v2`. ## Keywords The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in all documents under this specification are to be interpreted as described in [RFC 2119]. [^1]: This is compatible with the [SLSA Attestation Model]. [Binary Authorization]: https://cloud.google.com/binary-authorization [Bundle]: v1/bundle.md [Envelope]: v1/envelope.md [Predicate]: v1/predicate.md [RFC 2119]: https://www.rfc-editor.org/rfc/rfc2119 [SLSA Attestation Model]: https://slsa.dev/attestation-model [Statement]: v1/statement.md [documentation]: ../docs [in-toto-verify]: https://github.com/in-toto/in-toto#verification [tagged release]: https://github.com/in-toto/attestation/releases [v1.1]: v1/README.md [validation model]: ../docs/validation.md golang-github-in-toto-attestation-1.1.0/spec/predicates/000077500000000000000000000000001470602552500232475ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/spec/predicates/README.md000066400000000000000000000035221470602552500245300ustar00rootroot00000000000000# in-toto Attestation Predicates Whenever possible, in-toto Attestation Framework users are encouraged to choose existing attestation predicates that best fit their needs, although the framework easily supports new predicate types for new use cases. Anyone is welcome to contribute their new predicate back to the in-toto community! Please see our [New Predicate Guidelines]. ## Vetted Predicates This directory contains predicate specification types that have gone through our [vetting process], and may be of general interest: - [SLSA Provenance]: Describes how an artifact or set of artifacts was produced. - [Link]: For migration from [in-toto 0.9]. - [SCAI Report]: Evidence-based assertions about software artifact and supply chain attributes or behavior. - [Runtime Traces]: Captures runtime traces of software supply chain operations. - [SLSA Verification Summary]: SLSA verification decision about a software artifact. - [SPDX]: SPDX-formatted BOM for software artifacts. - [CycloneDX]: CycloneDX BOM for software artifacts. - [Vulnerability]: Defines the metadata to share the results of vulnerability scanning on software artifacts. - [Release]: Details an artifact that is part of a given release version. - [Test Result]: A generic schema to express results of any type of tests. [CycloneDX]: https://cyclonedx.org/ [Link]: link.md [New Predicate Guidelines]: ../../docs/new_predicate_guidelines.md [Release]: release.md [Runtime Traces]: runtime-trace.md [SCAI Report]: scai.md [Vulnerability]: vuln.md [SLSA Provenance]: https://slsa.dev/provenance [SLSA Verification Summary]: vsa.md [SPDX]: spdx.md [Test Result]: test-result.md [in-toto 0.9]: https://github.com/in-toto/docs/blob/master/in-toto-spec.md#44-file-formats-namekeyid-prefixlink [vetting process]: ../../docs/new_predicate_guidelines.md#vetting-process golang-github-in-toto-attestation-1.1.0/spec/predicates/cyclonedx.md000066400000000000000000000035521470602552500255660ustar00rootroot00000000000000# Predicate type: CycloneDX Type URI: https://cyclonedx.org/bom Version: 1.4 ## Purpose A Software Bill of Materials type following the [CycloneDX standard]. This allows representing "exportable", or "published" software artifacts, services, vulnerability information, and more. For a complete list of capabilities see [CycloneDX Capabilities]. ## Prerequisites The in-toto [attestation] framework and a [CycloneDX BOM generation tool]. ## Model This is a predicate type that fits within the larger [Attestation] framework. ## Schema The schema of this predicate type is documented in the [CycloneDX Specification]. ### Parsing Rules The parsing rules for this predicate type are documented in the [CycloneDX Specification]. ### Fields The fields that make up this predicate type are documented in the [CycloneDX Specification]. The `predicate` contains a JSON-encoded CycloneDX BOM. The `subject` contains whatever software artifacts are to be associated with this CycloneDX BOM document. ## Example ```jsonc { // Standard attestation fields: "_type": "https://in-toto.io/Statement/v0.1", "subject": [{ ... }], // Predicate: "predicateType": "https://cyclonedx.org/bom/v1.4", "predicate": { "bomFormat": "CycloneDX", "specVersion": "1.4", "serialNumber": "urn:uuid:3e671687-395b-41f5-a30f-a58921a69b79", "version": 1, "components": [ { "type": "library", "name": "acme-library", "version": "1.0.0" } ] ... } } ``` ## Changelog and Migrations Not applicable for this initial version. [Attestation]: ../README.md [CycloneDX standard]: https://cyclonedx.org/specification/overview [CycloneDX Capabilities]: https://cyclonedx.org/capabilities/ [CycloneDX Specification]: https://github.com/CycloneDX/specification/tree/1.4/schema [CycloneDX BOM generation tool]: https://cyclonedx.org/tool-center golang-github-in-toto-attestation-1.1.0/spec/predicates/link.md000066400000000000000000000114671470602552500245370ustar00rootroot00000000000000# Predicate type: Link Type URI: https://in-toto.io/attestation/link/v0.3 Deprecated Type URI: https://in-toto.io/Link/* Version: 0.3 ## Purpose A generic attestation type with a schema isomorphic to [in-toto specification]. This allows existing in-toto users to make minimal changes to upgrade to the new attestation format. Depending on the context, a more specific predicate type such as [Provenance] may be more appropriate. ## Prerequisites Understanding of [in-toto specification] and the in-toto attestation framework. ## Model Every link attestation corresponds to the execution of one step in the software supply chain. The `subject` field corresponds to the products of the operation while `materials` indicates the inputs to the step. The `name` field identifies the step the attestation corresponds to and the `command` field optionally describes the command that was run. Link attestations allow for recording arbitrary but relevant information in the opaque `environment` and `byproducts` fields. For every step described in the layout of the software supply chain, one (or more, depending on the threshold) signed link attestations must be presented. ## Schema ```jsonc { // Standard attestation fields: "_type": "https://in-toto.io/Statement/v1", "subject": [{ ... }], // Predicate: "predicateType": "https://in-toto.io/attestation/link/v0.3", "predicate": { "name": "...", "command": [ ... ], "materials": [, ...], "byproducts": { ... }, "environment": { ... } } } ``` ### Fields The `predicate` has the same schema as the link's `signed` field in [in-toto specification] except: - `predicate._type` is omitted. `predicateType` serves the same purpose. - `predicate.products` is omitted. `subject` serves the same purpose. - `predicate.materials` is updated to a list of `ResourceDescriptors`. Each `ResourceDescriptor` entry MUST include `name` and `digest`. Further, each subject's `name` in a link attestation MUST be unique within the scope of that attestation. `name`, _string, required_ Name of the step. When used with an in-toto layout as described in the [in-toto specification], this field is used when identifying link metadata to verify for a step. `command`, _list of strings, optional_ Contains the command and its arguments executed during the step. While the field is required, it may be empty. `materials`, _list of [ResourceDescriptor] objects, optional_ List of artifacts that make up the materials of the step. The `name` and `digest` fields of each entry MUST be set, and `name` MUST be unique among the `materials` entries. [ITE-4] artifact types may be identified using the `uri` or `mediaType` fields instead of overloading the `name` field. `byproducts`, _object, optional_ An opaque dictionary that contains additional information about the step performed. Consult the [in-toto specification] for how the verification workflow may use it. `environment`, _object, optional_ An opaque dictionary that contains information about the environment in which the step was carried out. Consult the [in-toto specification] for how the verification workflow may use it. ### Converting to old-style links A Link predicate may be converted into an [in-toto specification] link as follows: - Set `link._type` to `"link"`. - Set `link.name`, `link.environment`, and `link.byproducts` using `predicate.name`, `predicate.environment`, and `predicate.byproducts` respectively. - Set `link.products` to be a map from `subject[*].name` to `subject[*].digest`. - Set `link.materials` to be a map from `predicate.materials[*].name` to `predicate.materials[*].digest`. In Python: ```python def convert(statement): assert statement.predicateType == 'https://in-toto.io/attestation/link/v0.3' link = {} link['_type'] = 'link' link['name'] = statement.predicate['name'] link['byproducts'] = statement.predicate['byproducts'] link['environment'] = statement.predicate['environment'] link['materials'] = {s['name'] : s['digest'] for s in statement.predicate['materials']} link['products'] = {s['name'] : s['digest'] for s in statement.subject} return link ``` ## Version History - 0.3: Updated `materials` to use a list of `ResourceDescriptor` objects. Reverted `command` to a list of strings to match the original link specification. Supports use of `ResourceDescriptor` for attestation subjects and requires their `name` to be unique. - 0.2: Removed `_type` and `products`. Defined conversion rules. - 0.1: Initial version as described in [in-toto specification]. [in-toto specification]: https://github.com/in-toto/docs/blob/master/in-toto-spec.md [ResourceDescriptor]: ../v1.0/resource_descriptor.md [Provenance]: provenance.md [ITE-4]: https://github.com/in-toto/ITE/blob/master/ITE/4/README.adoc golang-github-in-toto-attestation-1.1.0/spec/predicates/provenance.md000066400000000000000000000014511470602552500257320ustar00rootroot00000000000000# Predicate type: SLSA Provenance Type URI: https://slsa.dev/provenance Version: 1.0 ## Specification Please visit the [SLSA Provenance spec] for information on purpose, schema, parsing rules, etc. ## Changelog and Migrations ### New in v1.0 - See the SLSA Provenance [v1 change history]. ### New in v0.2 - Deprecated Type URI: `https://in-toto.io/Provenance/v0.1` - This predicate has been renamed to [https://slsa.dev/provenance](https://slsa.dev/provenance) to reflect that it was designed specifically for [SLSA](https://slsa.dev). Please update references accordingly. - More info at [v0.2 change history] [SLSA Provenance spec]: https://slsa.dev/provenance/v1 [v0.2 change history]: https://slsa.dev/provenance/v1#v02 [v1 change history]: https://slsa.dev/provenance/v1#change-history golang-github-in-toto-attestation-1.1.0/spec/predicates/release.md000066400000000000000000000163131470602552500252150ustar00rootroot00000000000000# Predicate type: Release Type URI: https://in-toto.io/attestation/release Version 0.1 ## Purpose To authoritatively link from a specific release name and version string in a package registry, to the artifact names and hashes that make up that release. ## Use Cases When receiving a new release version, package registries can publish a release attestation covering the artifact names and hashes that make up that release. This allows consumers of that release version to ensure the artifacts they are consuming have not been modified, no matter how many network links or intermediate caches were used to acquire the artifact. If these release attestations are optionally published to a transparency log, package authors (or other interested parties) can monitor when a new version of a package is released. The release attestation provides integrity for the release artifacts, but it does not provide availability as it does not require the registry to serve an attested release artifact that is later determined to be untrustworthy. These use cases are not hypothetical; both of them are the case today for npm's [build provenance feature], which includes a [publish attestation]. Note that while npm calls this a publish attestation, calling it a release attestation better reflects that it's coming from the package registry. Publishing often refers to an author sending content to the registry, as in [PyPI's trusted publishers feature]. Perhaps surprisingly, this predicate does not depend on [SLSA Provenance], but they are better together. In an ecosystem where some (but not all) packages have SLSA Provenance and you query by artifact hash, you can't tell the difference between an artifact that has been tampered with and one that does not yet have SLSA provenance. If the ecosystem has release attestations, you can give authoritative answers to what artifacts make up a given release version, and what hashes those artifacts should have. ## Prerequisites This predicate depends on the [in-toto Attestation Framework], as well as the [purl-spec] for identifying packaging ecosystems. ## Model This predicate is for the final stages of the software supply chain, where consumers are looking for attestations that the software has not been tampered with during distribution. If a registry supports immutable releases, there SHOULD be one release attestation for a given `predicate.purl`. Even if the registry does not support immutable releases, the attestation subject SHOULD include all the artifacts associated with the release at that time; otherwise it will be unclear if an artifact was later removed from a release. For example, if a release version has an initial release attestation with artifact A, and then later has a release attestation with only artifact B, that SHOULD be interpreted as the release version now only containing artifact B. ## Schema ```jsonc { // Standard attestation fields: "_type": "https://in-toto.io/Statement/v1", "subject": [{ ... }], // Predicate: "predicateType": "https://in-toto.io/attestation/release/v0.1", "predicate": { "purl": , "releaseId": "..." } } ``` ### Fields **`subject.name`** string The filename of the artifact as it would appear on disk. **`predicate.purl`, required** string ([ResourceURI]) A purl uniquely identifying a specific release name and version from a package registry. **`predicate.releaseId`** string Stable identifier for a release; this should remain unchanged between release versions (e.g. it's associated with urllib3, not urllib3 v2.1.0). This will allow users to confirm that a release has moved to a new name, and prevent confusion if the old name is re-used. This could be an automatically incrementing database key, or a UUID that is initially randomly generated and then durably associated with the release name. ### Parsing Rules The purl field MUST be parsed using the [purl-spec]. It MUST include a purl `version` (which is OPTIONAL in the [purl-spec]). It SHOULD NOT include purl `qualifiers` or `subpath`, unless the `type` requires them to uniquely identify a release (as a counter-example `type:oci` would include `qualifiers`). ## Examples ```json { "_type": "https://in-toto.io/Statement/v1", "subject": [ { "name": "http-7.2.16.tgz", "digest": { "sha256": "4faeb1b2..." } } ], "predicateType": "https://in-toto.io/attestation/release/v0.1", "predicate": { "purl": "pkg:npm/@angular/http@7.2.16", "releaseId": 1234567890 } } ``` If a release has multiple artifacts that might be consumed separately, the attestation SHOULD have a subject per artifact: ```json { "_type": "https://in-toto.io/Statement/v1", "subject": [ { "name": "urllib3-2.1.0.tar.gz", "digest": { "sha256": "df7aa8af..." } }, { "name": "urllib3-2.1.0-py3-none-any.whl", "digest": { "sha256": "55901e91...", } } ], "predicateType": "https://in-toto.io/attestation/release/v0.1", "predicate": { "purl": "pkg:pypi/urllib3@2.1.0" } } ``` Here's what a release with a container image looks like: ```json { "_type": "https://in-toto.io/Statement/v1", "subject": [ { "name": "registry.example.com/my-project/my-image", "digest": { "sha256": "fedcba09..." } } ], "predicateType": "https://in-toto.io/attestation/release/v0.1", "predicate": { "purl": "pkg:oci/my-image@sha256%3Afedcba09?repository_url=registry.example.com/my-project/my-image&tag=v1.2.3" } } ``` ## Changelog and Migrations As this is the initial version, no changes or migrations to previous versions. The required fields in this specification are a subset of the information in the existing npm [publish attestation], so npm could easily migrate to this specification. For example, here is an existing npm publish attestation: ```json { "_type": "https://in-toto.io/Statement/v1", "subject": [ { "name": "pkg:npm/semver@7.5.4", "digest": { "sha512": "d5b09211..." } } ], "predicateType": "https://github.com/npm/attestation/tree/main/specs/publish/v0.1", "predicate": { "name": "semver", "version": "7.5.4", "registry": "https://registry.npmjs.org" } } ``` And this is what it would look like as a release attestation: ```jsonc { "_type": "https://in-toto.io/Statement/v1", "subject": [ { // The subject.name value is from the publish attestation subject.name: // take the purl name and version to construct "-.tgz" "name": "semver-7.5.4.tgz", "digest": { "sha512": "d5b09211..." } } ], "predicateType": "https://in-toto.io/attestation/release/v0.1", "predicate": { // The predicate.purl value is from the publish attestation subject.name "purl": "pkg:npm/semver@7.5.4" } } ``` [build provenance feature]: https://github.blog/2023-04-19-introducing-npm-package-provenance/ [publish attestation]: https://github.com/npm/attestation/tree/main/specs/publish/v0.1 [PyPI's trusted publishers feature]: https://docs.pypi.org/trusted-publishers/ [SLSA Provenance]: https://slsa.dev/provenance [in-toto Attestation Framework]: ../README.md [purl-spec]: https://github.com/package-url/purl-spec [ResourceURI]: ../v1/field_types.md#resourceuri golang-github-in-toto-attestation-1.1.0/spec/predicates/runtime-trace.md000066400000000000000000000260501470602552500263530ustar00rootroot00000000000000# Predicate type: Runtime Trace Type URI: https://in-toto.io/attestation/runtime-trace/v0.1 Version: 0.1.0 Authors: Parth Patel (@pxp928), Shripad Nadgowda (@nadgowdas), Aditya Sirish A Yelgundhalli (@adityasaky) ## Purpose This predicate is used to describe system events that were part of some software supply chain step, for example, the build process of an artifact. Supply chain operations today are complex and opaque with little to no insights into underlying system operations. However, there are emerging introspection techniques that now allow us to monitor and capture system event logs during the monitored operation. ## Use Cases Generally, this predicate can be used to express a runtime trace of any operation. The predicate specification does not mandate any specific monitoring tool or technology. The schema can be used to express runtime traces of anything that can be traced or monitored, from an operation spawned by a user using a CLI command to tasks performed in CI systems. The primary use case driving the development of this predicate is its applicability to runtime traces of build processes. This attestation can be used in conjunction with provenance attestations to leverage observability to attest to various SLSA requirements. The runtime trace can prove the build was invoked via a script, that the build was executed in a hermetic environment with no network access, and so on. ## Prerequisites Understanding of monitoring tools and the larger in-toto attestation framework. ## Model `monitor` identifies the specific instance of a tool that’s observing the target process and details the configurations of the monitor, while `monitoredProcess` contains information that when put together uniquely identifies the exact instance of the job being observed. The `monitorLog` field contains the actual runtime trace information. ## Schema ```json { "_type": "https://in-toto.io/Statement/v1", "subject": [{ ... }], "predicateType": "https://in-toto.io/attestation/runtime-trace/v0.1", "predicate": { "monitor": { "type": "", "configSource": "", "tracePolicy": { /* object */ } }, "monitoredProcess": { "hostID": "", "type": "", "event": "" }, "monitorLog": { "process": [ { /* object */ } ], "network": [ { /* object */ } ], "fileAccess": ["", ...] }, "metadata": { "buildStartedOn": "", "buildFinishedOn": "" } } } ``` ### Parsing Rules This predicate follows the in-toto attestation parsing rules. Summary: - Consumers MUST ignore unrecognized fields. - The `predicateType` URI includes the major version number and will always change whenever there is a backwards incompatible change. - Minor version changes are always backwards compatible and “monotonic.” Such changes do not update the `predicateType`. - Producers MAY add extension fields using field names that are unlikely to collide with names used by other producers. Field names SHOULD avoid using characters like `.` and `$`. - Fields marked _optional_ MAY be unset or null, and should be treated equivalently. Both are equivalent to empty for object or array values. ### Fields `monitor` _object_, _required_ Identifies the specific monitor instance used to trace the runtime. `monitor.type` _TypeURI_, _required_ URI indicating the monitor’s type. `monitor.configSource` ResourceDescriptor, _optional_ Effectively a pointer to the monitor's configuration. `monitor.tracePolicy` _object_, _optional_ Indicates the trace policy used for the monitoring event that generated the runtime trace. The trace policy's format is dependent on the monitor used, and so it must be parsed after identifying the monitor using `monitor.type`. FIXME: should this be optional? `monitoredProcess` _object_, _required_ Identifies the process being monitored. `monitoredProcess.hostID` _string (URI)_, _required_ URI indicating the process host’s identity. `monitoredProcess.type` _string (TypeURI)_, _required_ URI indicating the type of process performed. Ex: when monitoring a build, this field records the build type. `monitoredProcess.event` _string_, _required_ String identifying the specific job or task associated with the attestation. `monitorLog` _object_, _required_ Record of events that were traced by the monitor. At least one of `process`, `network`, and `fileAccess` must be present. `monitorLog.process` _list of objects_, _optional_ Record of processes observed by monitor. The exact format of this field is currently dependent on the monitor, and can be determined using `monitor.type`. In future, after consulting different monitors, this field may have a consistent schema. `monitorLog.network` _list of objects_, _optional_ Record of network activity observed by monitor. The exact format of this field is currently dependent on the monitor, and can be determined using `monitor.type`. In future, after consulting different monitors, this field may have a consistent schema. `monitorLog.fileAccess` _list of ResourceDescriptor objects_, _optional_ Record of files accessed during the monitored process. A complete list of _materials_ can be derived from this information. Each entry in this list is expected to record the path of the file and one or more digests of the file, but as each entry is an instance of _ResourceDescriptor_, other supported information can also be captured. This field is a list rather than a key-value map because a single file may be used multiple times during the build process. Further, some files that are accessed may _change_ during the build process, and so, different entries for the same file may have different digests. Note: While this predicate can be used to log file accesses, the actual technique used to capture the file access event has some implications. If a synchronous monitor, for example one that uses `ptrace` to trace the file access system calls, is used, then the build process can be paused while the file's digest is calculated and stored. However, asynchronous monitors such as those using eBPF cannot pause the build process before the file is actually used. Therefore, they cannot make as strong guarantees about the digests of the files accessed. Verifiers using runtime trace attestations for file accesses must be careful about what guarantees they are actually getting based on how the build process was monitored. `metadata` _object_, _optional_ Other properties of the monitoring event. `metadata.buildStartedOn` _Timestamp_, _optional_ `metadata.buildFinishedOn` _Timestamp_, _optional_ ## Example ```json { "_type": "https://in-toto.io/Statement/v1", "predicateType": "https://in-toto.io/attestation/runtime-trace/v0.1", "subject": [ { "name": "ttl.sh/testin123", "digest": { "sha256": "def2bdf8cee687d5889d51923d7907c441f1a61958f1e5dfb07f53041c83745f" } } ], "predicate": { "monitor": { "type": "https://github.com/cilium/tetragon/v0.8.4", "configSource": {}, "tracePolicy": { "policies": [ { "Name": "connect", "Config": "" }, { "Name": "sys-read-follow-prefix", "Config": "" } ] } }, "monitoredProcess": { "hostID": "https://tekton.dev/chains/v2", "type": "https://tekton.dev/attestations/chains@v2", "event": "run-image-pipelinerun-build-trusted" }, "monitorLog": { "process": [ { "eventType": "process", "processBinary": "/ko-app/entrypoint", "arguments": [ "init /ko-app/entrypoint /tekton/bin/entrypoint step-prepare step-create step-results" ], "privileged": null }, { "eventType": "process", "processBinary": "/bin/sh", "arguments": [ "-c \"scriptfile=\"/tekton/scripts/script-0-vjklb\"\ntouch ${scriptfile} && chmod +x ${scriptfile}\ncat > ${s\" \"riptfile} << '_EOF_'\nIyEvdXNyL2Jpbi9lbnYgYmFzaApzZXQgLWUKCmlmIFtbICJ0cnVlIiA9PSAidHJ1ZSIgXV07IHRoZW\" KICBlY2hvICI+IFNldHRpbmcgcGVybWlzc2lvbnMgb24gJy93b3Jrc3BhY2UvY2FjaGUnLi4uIgogIGNob3duIC1SICIxMDAwOj wMDAiICIvd29ya3NwYWNlL2NhY2hlIgpmaQoKZm9yIHBhdGggaW4gIi90ZWt0b24vaG9tZSIgIi9sYXllcnMiICIvd29ya3NwYW lL3NvdXJjZSI7IGRvCiAgZWNobyAiPiBTZXR0aW5nIHBlcm1pc3Npb25zIG9uICckcGF0aCcuLi4iCiAgY2hvd24gLVIgIjEwMD 6MTAwMCIgIiRwYXRoIgoKICBpZiBbWyAiJHBhdGgiID09ICIvd29ya3NwYWNlL3NvdXJjZSIgXV07IHRoZW4KICAgICAgY2htb2 gNzc1ICIvd29ya3NwYWNlL3NvdXJjZSIKICBmaQpkb25lCgplY2hvICI+IFBhcnNpbmcgYWRkaXRpb25hbCBjb25maWd1cmF0aW uLi4uIgpwYXJzaW5nX2ZsYWc9IiIKZW52cz0oKQpmb3IgYXJnIGluICIkQCI7IGRvCiAgICBpZiBbWyAiJGFyZyIgPT0gIi0tZW 2LXZhcnMiIF1dOyB0aGVuCiAgICAgICAgZWNobyAiLT4gUGFyc2luZyBlbnYgdmFyaWFibGVzLi4uIgogICAgICAgIHBhcnNpbm fZmxhZz0iZW52LXZhcnMiCiAgICBlbGlmIFtbICIkcGFyc2luZ19mbGFnIiA9PSAiZW52LXZhcnMiIF1dOyB0aGVuCiAgICAgIC" ], "privileged": null }, { "eventType": "process", "processBinary": "/bin/touch", "arguments": [ "/tekton/scripts/script-0-vjklb" ], "privileged": null }, ..., { "eventType": "exit", "processBinary": "/bin/sh", "arguments": [ "", "-c \"scriptfile=\"/tekton/scripts/script-0-vjklb\"\ntouch ${scriptfile} && chmod +x ${scriptfile}\ncat > ${s\" \"riptfile} << '_EOF_'\nIyEvdXNyL2Jpbi9lbnYgYmFzaApzZXQgLWUKCmlmIFtbICJ0cnVlIiA9PSAidHJ1ZSIgXV07IHRoZW\" KICBlY2hvICI+IFNldHRpbmcgcGVybWlzc2lvbnMgb24gJy93b3Jrc3BhY2UvY2FjaGUnLi4uIgogIGNob3duIC1SICIxMDAwOj wMDAiICIvd29ya3NwYWNlL2NhY2hlIgpmaQoKZm9yIHBhdGggaW4gIi90ZWt0b24vaG9tZSIgIi9sYXllcnMiICIvd29ya3NwYW lL3NvdXJjZSI7IGRvCiAgZWNobyAiPiBTZXR0aW5nIHBlcm1pc3Npb25zIG9uICckcGF0aCcuLi4iCiAgY2hvd24gLVIgIjEwMD 6MTAwMCIgIiRwYXRoIgoKICBpZiBbWyAiJHBhdGgiID09ICIvd29ya3NwYWNlL3NvdXJjZSIgXV07IHRoZW4KICAgICAgY2htb2 gNzc1ICIvd29ya3NwYWNlL3NvdXJjZSIKICBmaQpkb25lCgplY2hvICI+IFBhcnNpbmcgYWRkaXRpb25hbCBjb25maWd1cmF0aW uLi4uIgpwYXJzaW5nX2ZsYWc9IiIKZW52cz0oKQpmb3IgYXJnIGluICIkQCI7IGRvCiAgICBpZiBbWyAiJGFyZyIgPT0gIi0tZW 2LXZhcnMiIF1dOyB0aGVuCiAgICAgICAgZWNobyAiLT4gUGFyc2luZyBlbnYgdmFyaWFibGVzLi4uIgogICAgICAgIHBhcnNpbm fZmxhZz0iZW52LXZhcnMiCiAgICBlbGlmIFtbICIkcGFyc2luZ19mbGFnIiA9PSAiZW52LXZhcnMiIF1dOyB0aGVuCiAgICAgIC" ], "privileged": null }, { "eventType": "exit", "processBinary": "/tekton/bin/entrypoint", "arguments": [ "", "-wait_file /tekton/downward/ready -wait_file_content -post_file /tekton/run/0/out -termination_path /tekton/termination -step_metadata_dir /tekton/run/0/status -results APP_IMAGE_DIGEST,APP_IMAGE_URL -entrypoint /tekton/scripts/script-0-vjklb -- --env-vars" ], "privileged": null } ] }, "metadata": { "buildStartedOn": "2022-10-13T22:55:50Z", "buildFinishedOn": "2022-10-13T22:56:17Z" } } } ``` golang-github-in-toto-attestation-1.1.0/spec/predicates/scai.md000066400000000000000000000330711470602552500245140ustar00rootroot00000000000000# Predicate type: Software Supply Chain Attribute Integrity (SCAI) Type URI: https://in-toto.io/attestation/scai/attribute-report Version: 0.2 Author: Marcela Melara ([@marcelamelara](https://github.com/marcelamelara)) ## Purpose The Software Supply Chain Attribute Integrity, or SCAI (pronounced "sky"), specification proposes a data format for capturing functional attribute and integrity information about software artifacts and their supply chain. SCAI data can be associated with executable binaries, statically- or dynamically- linked libraries, software packages, container images, software toolchains, and compute environments. Existing supply chain data formats do not capture any information about the security functionality or behavior of the resulting software artifact, nor do they provide sufficient evidence to support any claims of integrity of the supply chain processes they describe. The SCAI data format is designed to bridge this gap. For more details, see the [SCAI specification] document. ## Use Cases We highlight three core use cases of SCAI, although there may be others. ### Fine-grained software attributes A producer seeks to make assertions about fine-grained code-level attributes of the attestation `subject`. Examples of such code-level attributes include include cases like code features instrumented by a compiler, or properties tested via static analysis. See an example for [attested binary attributes](#attestation-for-binary-attributes-with-evidence) below. ### Producer compute platform attributes A producer seeks to assert certain properties about its underlying compute platform, which produced the `subject`. Examples of compute platform attributes include properties like secure boot enablement or trusted execution enablement. Since these types of attributes are often accompanied by an attestation document, these hardware attestations serve as evidence for the asserted attributes. See an example for a [build on attested hardware](#attestation-for-build-on-intelr-sgx-hardware) below. ### Evidence collection A producer seeks to assert that a collection of evidence or attestations applies to the `subject`. In essence, this use case serves to bind multiple attestations to a single `subject`. For example, the asserted attributes may correspond to specific attestation types. See an example for an [evidence collection](#attestation-for-evidence-collection) below. ## Prerequisites In addition to the in-toto Attestation Framework, SCAI assumes that implementers have appropriate processes and tooling in place for capturing other types of software supply chain metadata, which can be extended to add support for SCAI. ## Model SCAI metadata, referred to as an Attribute Assertion, describes functional attributes of a software artifact and its supply chain, capable of covering the full software stack of the toolchain that produced the artifact down to the hardware platform. SCAI Attribute Assertions include information about the conditions under which certain functional attributes arise, as well as (authenticated) evidence for the asserted attributes. The set of Assertions about a subject artifact and its producer is referred to as the **Attribute Report**. Similarly, SCAI Attribute Reports about the producer of a subject artifact can be generated separately, with the attestation subject indicating an artifact producer. We emphasize that this predicate does not dictate the types of attributes that can be attested, nor does it prescribe any format to the evidence for an assertion. SCAI is intended to be implemented as part of an existing software supply chain attestation framework by software development tools or services (e.g., builders, CI/CD pipelines, software analysis tools) seeking to capture more granular information about the attributes and behavior of the software artifacts they produce. As such, we envision SCAI metadata being explictly bound to, or included within, other metadata objects; we recommend an in-toto [attestation Bundle] for this purpose. ## Schema The core metadata in SCAI is the Attribute Assertion. A collection of Attribute Assertions for a specific supply chain step or operation are issued together in a SCAI Attribute Report predicate. ```jsonc { "predicateType": "https://in-toto.io/attestation/scai/attribute-report/v0.2", "predicate": { "attributes": [{ "attribute": "", "target": { [ResourceDescriptor] }, // optional "conditions": { /* object */ }, // optional "evidence": { [ResourceDescriptor] } // optional }], "producer": { [ResourceDescriptor] } // optional } } ``` This predicate has been adapted from the [SCAI specification] for greater interoperability. ### Parsing Rules At a high-level, Attribute Reports MUST allow humans and programs to easily parse the asserted attributes. Additional fields MUST enable program-based consumers to automatically parse and evaluate the given information. The following parsing rules apply in addition: - Consumers MUST ignore unrecognized fields. - Producers SHOULD omit _optional_ fields when unused to avoid ambiguity. - Acceptable formats of the `attribute` and `conditions` fields are up to the producer and consumer. - Because consumers evaluate this predicate against a policy, the semantics SHOULD be consistent and monotonic between attestations (see in-toto Attestation Framework [parsing rules]). ### Fields `predicateType` _string ([TypeURI]), required_ > Identifier for the schema of the Attribute Report. Always > `https://in-toto.io/attestation/scai/attribute-report/v0.2` for this version of the > spec. `predicate.attributes` _array of objects, required_ > An array of one or more SCAI Attribute Assertions about the subject. `predicate.attributes[*].attribute` _string, required_ > A string describing a specific functional feature of the attestation > subject or producer. > > Attributes are expected to be domain- or application-specific. `predicate.attributes[*].target` _object ([ResourceDescriptor]), optional_ > An object reference to a specific artifact or metadata object to which the > `attribute` field applies. > > The producer and consumer SHOULD agree on the ResourceDescriptor fields > needed for identification and validation of the target. `predicate.attributes[*].conditions` _object, optional_ > An object representing specific conditions under which the associated > attribute arises. `predicate.attributes[*].evidence` _object ([ResourceDescriptor]), optional_ > A description of (authenticated) evidence for the asserted `attribute`. > > If the evidence object is generated by the producer in conjunction with the > SCAI predicate the producer MAY include the attestation for the evidence > object in the same in-toto [attestation Bundle], > > The producer and consumer SHOULD agree on the ResourceDescriptor fields > needed for identification and validation of the evidence. > > When `evidence` is omitted, a consumer MAY choose to evaluate the > atestation on the basis of the producer's identity. `predicate.producer` _object, ([ResourceDescriptor]) optional_ > A description of the producer of the attestation subject, if applicable. > > The producer and consumer SHOULD agree on the ResourceDescriptor fields > needed for identification and validation of the producer. ## Examples ### Attestation for binary attributes ```jsonc { // Standard attestation fields "_type": "https://in-toto.io/Statement/v1", "subject": [{ "name": "my-app", "digest": { "sha256": "78ab6a8..." } }], "predicateType": "https://in-toto.io/attestation/scai/attribute-report/v0.2", "predicate": { "attributes": [{ "attribute": "WITH_STACK_PROTECTION", "conditions": { "flags": "-fstack-protector*" }, }], "producer": { "uri": "file:///usr/bin/gcc", "name": "gcc9.3.0", "digest": { "sha256": "78ab6a8..." }, "downloadLocation": "http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-defaults/gcc_9.3.0-1ubuntu2_amd64.deb" } } } ``` ### Attestation for gcc compiler attributes ```jsonc { // Standard attestation fields "_type": "https://in-toto.io/Statement/v1", "subject": [{ "name": "gcc9.3.0", "digest": { "sha256": "78ab6a8..." } }], "predicateType": "https://in-toto.io/attestation/scai/attribute-report/v0.2", "predicate": { "attributes": [{ "attribute": "WITH_STACK_PROTECTION", "conditions": { "flags": "-fstack-protector*" } }, { "attribute": "REPRODUCIBLE", "evidence": { "name": "gcc_9.3.0-1ubuntu2_amd64.json", "digest": { "sha256": "abcdabcde..." }, "uri": "http://example.com/rebuilderd-instance/gcc_9.3.0-1ubuntu2_amd64.json", "mediaType": "application/x.dsse+json" } }] } } ``` ### Attestation for binary attributes with evidence ```jsonc { // Standard attestation fields "_type": "https://in-toto.io/Statement/v1", "subject": [{ "name": "my-app", "digest": { "sha256": "78ab6a8..." } }], "predicateType": "https://in-toto.io/attestation/scai/attribute-report/v0.2", "predicate": { "attributes": [{ "attribute": "WITH_STACK_PROTECTION", "conditions": { "flags": "-fstack-protector*" }, "evidence": { "name": "gcc9.3.0-attribute-report.json", "digest": { "sha256": "abcdabcde..." }, "mediaType": "application/x.dsse+json" } }], "producer": { "uri": "file:///usr/bin/gcc", "name": "gcc9.3.0", "digest": { "sha256": "78ab6a8..." }, "downloadLocation": "http://us.archive.ubuntu.com/ubuntu/pool/main/g/gcc-defaults/gcc_9.3.0-1ubuntu2_amd64.deb" } } } ``` ### Attestation for binary with attested dependencies ```jsonc { // Standard attestation fields "_type": "https://in-toto.io/Statement/v1", "subject": [{ "name": "my-app", "digest": { "sha256": "78ab6a8..." } }], "predicateType": "https://in-toto.io/attestation/scai/attribute-report/v0.2", "predicate": { "attributes": [{ "attribute": "ATTESTED_DEPENDENCIES", "target": { "name": "my-rsa-lib.so", "digest": { "sha256": "ebebebe..." }, "uri": "http://example.com/libraries/my-rsa-lib.so" } "evidence": { "name": "rsa-lib-attribute-report.json", "digest": { "sha256": "0987654..." }, "mediaType": "application/x.dsse+json" } }], "producer": { "uri": "https://example.com/my-github-actions-runner", } } } ``` ### Attestation for build on Intel(R) SGX hardware ```jsonc { // Standard attestation fields "_type": "https://in-toto.io/Statement/v1", "subject": [{ "name": "my-sgx-builder", "digest": { "sha256": "78ab6a8..." } }], "predicateType": "https://in-toto.io/attestation/scai/attribute-report/v0.2" "predicate": { "attributes": [{ "attribute": "VALID_ENCLAVE", "target": { "name": "enclave.signed.so", "digest": { "sha256": "e3b0c44..." }, "uri": "http://example.com/enclaves/enclave.signed.so", }, "evidence": { "name": "my-sgx-builder.json", "digest": { "sha256": "0987654..." }, "downloadLocation": "http://example.com/sgx-attestations/my-sgx-builder.json", "mediaType": "application/x.sgx.dcap1.14+json" } }] } } ``` ### Attestation for evidence collection ```jsonc { // Standard attestation fields "_type": "https://in-toto.io/Statement/v1", "subject": [{ "name": "app-evidence-collection", "digest": { "sha256": "88888888..." } }], "predicateType": "https://in-toto.io/attestation/scai/attribute-report/v0.2", "predicate": { "attributes": [{ "attribute": "attestation-1", "evidence": { "uri": "https://example.com/attestations/attestation-1" "digest": { "sha256": "abcdabcd..." }, "mediaType": "application/x.dsse+json" } }, { "attribute": "attestation-2", "evidence": { "uri": "https://example.com/attestations/attestation-2" "digest": { "sha256": "01234567..." }, "mediaType": "application/x.dsse+json" } }, { "attribute": "attestation-3", "evidence": { "uri": "https://example.com/attestations/attestation-3" "digest": { "sha256": "deadbeef..." }, "mediaType": "application/x.dsse+json" } }], "producer": { "uri": "https://my-sw-attestor" } } } ``` ## Changelog and Migrations ### New in v0.2 - Change the `target` and `evidence` field type of a SCAI Attribute Assertion to [ResourceDescriptor]. - Simplify the `producer` field: remove the `type` sub-field, and change the field type to [ResourceDescriptor]. [ResourceDescriptor]: ../v1/resource_descriptor.md [SCAI specification]: https://arxiv.org/pdf/2210.05813.pdf [TypeURI]: ../v1/field_types.md#typeuri [attestation Bundle]: ../v1/bundle.md [parsing rules]: ../v1#parsing-rules golang-github-in-toto-attestation-1.1.0/spec/predicates/spdx.md000066400000000000000000000033251470602552500245520ustar00rootroot00000000000000# Predicate type: SPDX Type URI: https://spdx.dev/Document Version: 2.3 TODO: Ask SPDX project to choose a URI and to review this spec. Ideally the URI would resolve to this file. Also, decide whether we want the version number to reflect the spdxVersion (e.g. 2.2) or have them be independent (no version number in URI). ## Purpose A Software Bill of Materials type following the [SPDX Specification]. This allows to represent an "exportable" or "published" software artifact. It can also be used as an entry point for other types of in-toto attestation when performing policy decisions. ## Prerequisites The in-toto [attestation] framework and a [SPDX generation tool]. ## Model This is a predicate type that fits within the larger [Attestation] framework. ## Schema The schema of this predicate type is documented in the [SPDX Specification]. ### Parsing Rules The parsing rules for this predicate type are documented in the [SPDX Specification]. ### Fields The fields that make up this predicate type are documented in the [SPDX specification]. The `predicate` contains a JSON-encoded SPDX document. The `subject` contains whatever software artifacts are to be associated with this SPDX document. ## Example ```jsonc { // Standard attestation fields: "_type": "https://in-toto.io/Statement/v0.1", "subject": [{ ... }], // Predicate: "predicateType": "https://spdx.dev/Document/v2.3", "predicate": { "SPDXID" : "SPDXRef-DOCUMENT", "spdxVersion" : "SPDX-2.3", ... } } ``` ## Changelog and Migrations ### Version 2.3 - Added version to predicateType [Attestation]: ../README.md [SPDX specification]: https://spdx.github.io/spdx-spec/v2.3 [SPDX generation tool]: https://spdx.dev/resources/tools/ golang-github-in-toto-attestation-1.1.0/spec/predicates/template/000077500000000000000000000000001470602552500250625ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/spec/predicates/template/template.md000066400000000000000000000060041470602552500272170ustar00rootroot00000000000000# Predicate type: Type URI: Version: Predicate Name: ## Purpose This section must discuss at a high level the reason for creating the new predicate type. Essentially, it describes the problems that can be solved using the new predicate. ## Use Cases This section must discuss at least one concrete use case that will be covered by this predicate and how the current predicate types (if any) do not solve this. ## Prerequisites New predicate types may be very specific to a particular technology or specification, which must be detailed in the prerequisites section. The in-toto Attestation Framework may be a necessary prerequisite for all predicate types, if so it SHOULD be explicitly mentioned to err on the side of caution. ## Model The in-toto Attestation Framework was designed with software supply chain specific metadata in mind. However, supply chains are vast and composed of many different components and phases. Therefore, it is important for the predicate type to declare at a high level the steps and functionaries (in the generic) it is relevant to. ## Schema The schema of the predicate type is the core part of the document. It defines the fields included in an instantiation of the predicate, as well as rules to parse them. ```jsonc { // Standard attestation fields: "_type": "https://in-toto.io/Statement/v1", "subject": [{ ... }], // Predicate: "predicateType": "", "predicate": { ... } } ``` ### Parsing Rules Parsing rules are important to define explicitly to ensure implementations can handle example attestations correctly. For example, this section can discuss how the predicate type is versioned, how non-specified fields must be handled, and so on. Attestations definitions MUST use this section to define how the parsing rules differ from the framework’s [standard parsing rules](/spec/v1/README.md#parsing-rules). ### Fields This subsection defines the fields that make up the new predicate type. In addition to the predicate's fields, this subsection can be used to specify additional constraints at the statement layer. The fields must be listed with their names, the type of information they can hold, whether they are required or not, and a textual description of their expected contents. If the legal values for a field are known, or belong in a range, this must be specified in the description. ## Example A new predicate type MUST include one or more examples. It is recommended that this example corresponds to the Purpose defined at the start of the document. The example included MUST be an entire in-toto attestation statement, and not just the predicate type. This will allow adopters and implementers to work with examples more easily. ## Changelog and Migrations For predicate definitions, it is important to be able to clearly map the changes made to the schema of the predicate to its different versions. These changes and the steps to migrate from one to another must be detailed where appropriate. This section MAY be skipped for the initial version of a predicate type. golang-github-in-toto-attestation-1.1.0/spec/predicates/test-result.md000066400000000000000000000144161470602552500260720ustar00rootroot00000000000000# Predicate type: Test Result Type URI: https://in-toto.io/attestation/test-result/v0.1 Version: 0.1.0 Authors: Aditya Sirish A Yelgundhalli (@adityasaky) ## Purpose This predicate type defines a generic schema to express the result of running tests in software supply chains. The schema may be extended to support different types of testing or specific test harnesses. ## Use Cases Software development processes include several types of tests. This attestation can be used to express the results of running those tests. It can be used to verify: 1. that all tests were in fact run, and 2. that all required tests passed Therefore, each attestation corresponds to one invocation of a test suite, and may include the results of several individual tests. ### Asserting Test Configurations Used The supply chain owner creates a policy that records the expected test configurations. During verification, the policy checks that the test attestation used the right configurations. If verified using in-toto layouts, a custom inspection may optionally parse the `url` field to verify attestation matches the test run. ### Asserting Test Results In addition to the previous use case, the supply chain owner creates a policy verifying that test results passed. In the simplest case, the policy applies to all tests. Therefore, it asserts the contents of `result` and that `failedTests` is empty. In more nuanced cases, a subset of tests may matter. For example, the tested artifact may be an OS image that's to be deployed to three types of devices, A, B, and C. As such, the test harness validates the new image on an instance of each device. When verifying the attestation prior to an image being installed on a device of type A, it only matters that the tests passed on the corresponding test device of type A and not necessarily the others. The test result attestation can be used successfully even if the tests failed on C. As such, the verification policy ensures that tests for A are all listed in `passedTests` or possibly `warnedTests`. As before, if the attestation is verified using an in-toto layout, a custom inspection may examine the `url` contents to verify the contents of the attestation. ## Prerequisites Understanding of the [in-toto attestation specification](https://github.com/in-toto/attestation). ## Model This predicate type includes two compulsory fields, `result` that describes the result of the test run, and `configuration` that contains the configuration used for the test invocation. The optional `url` field contains a link to the test run. `passedTests`, `warnedTests`, and `failedTests` are lists that record the names of tests that passed with no errors or warnings, passed with warnings, and failed with errors respectively. The expected `subject` are the source artifacts tested. ## Schema ```json { "_type": "https://in-toto.io/Statement/v1", "subject": [{...}], "predicateType": "https://in-toto.io/attestation/test-result/v0.1", "predicate": { "result": "PASSED|WARNED|FAILED", "configuration": ["", ...], "url": "", "passedTests": ["", ...], "warnedTests": ["", ...], "failedTests": ["", ...] } } ``` ### Parsing Rules This predicate follows the [in-toto Attestation Framework's parsing rules](../v1.0/README.md#parsing-rules). ### Fields `result` _enum_ , _required_ Indicates the result of the test run. One of `PASSED`, `WARNED`, or `FAILED`. `configuration` _list of ResourceDescriptor_, _required_ Reference to the configuration used for the test run. `url` _ResourceURI_, _optional_ Contains a URL to the test run, if applicable. This may be used to find information such as the logs for test execution, to confirm the test was performed against the expected subject, and more. The predicate makes no assumptions about the test harness or system used which this field would point to. Instead, verifiers are expected to ascertain how to use this field's response separately, perhaps via the URL itself. For example, this may point to a GitHub Actions run which may be determined using the domain of the URL. On the other hand, for custom Jenkins deployments and the like, the verifier should determine out of band how to use this field. `passedTests` _list of strings_, _optional_ Each entry corresponds to the name of a single test that passed. The semantics of the name must be determined separately between the producer and consumer. `warnedTests` _list of strings_, _optional_ Each entry corresponds to the name of a single test that expressed a warning. The semantics of the name must be determined separately between the producer and consumer. `failedTests` _list of strings_, _optional_ Each entry corresponds to the name of a single test that failed. The semantics of the name must be determined separately between the producer and consumer. ## Example ```json { "_type": "https://in-toto.io/Statement/v1", "subject": [ { "digest": { "gitCommit": "d20ace7968ba43c0219f62d71334c1095bab1602" } } ], "predicateType": "https://in-toto.io/attestation/test-result/v0.1", "predicate": { "result": "PASSED", "configuration": [{ "name": ".github/workflows/ci.yml", "downloadLocation": "https://github.com/in-toto/in-toto/blob/d20ace7968ba43c0219f62d71334c1095bab1602/.github/workflows/ci.yml", "digest": { "gitBlob": "ebe4add40f63c3c98bc9b32ff1e736f04120b023" } }], "url": "https://github.com/in-toto/in-toto/actions/runs/4425592351", "passedTests": [ "build (3.7, ubuntu-latest, py)", "build (3.7, macos-latest, py)", "build (3.7, windows-latest, py)", "build (3.8, ubuntu-latest, py)", "build (3.8, macos-latest, py)", "build (3.8, windows-latest, py)", "build (3.9, ubuntu-latest, py)", "build (3.9, macos-latest, py)", "build (3.9, windows-latest, py)", "build (3.10, ubuntu-latest, py)", "build (3.10, macos-latest, py)", "build (3.10, windows-latest, py)", "build (3.x, ubuntu-latest, lint)" ], "warnedTests": [], "failedTests": [] } } ``` golang-github-in-toto-attestation-1.1.0/spec/predicates/vsa.md000066400000000000000000000004071470602552500243630ustar00rootroot00000000000000# Predicate type: SLSA Verification Summary (VSA) Type URI: https://slsa.dev/verification_summary/v1 Version: 1.0 ## Purpose Records a SLSA verification decision about an artifact. For more details, please see https://slsa.dev/spec/v1.0/verification_summary golang-github-in-toto-attestation-1.1.0/spec/predicates/vuln.md000066400000000000000000000143741470602552500245660ustar00rootroot00000000000000# Predicate type: Vulnerabilities Type URI: https://in-toto.io/attestation/vulns Version: 0.1 ## Purpose The definition of a vulnerability attestation type has been discussed in the past in [in-toto attestation](https://github.com/in-toto/attestation/issues/58) and [issue](https://github.com/sigstore/cosign/issues/442). However we need to identify two different purposes from these initial conversations: - The definition of a common format to represent the results of a vulnerability report. - The definition of a certain set of metadata fields that could help to consume these vulnerability attestations from the different scanning tools. Obviously the first goal is quite challenging and requires a bigger community to agree upon a specific format. As a consequence, the following attestation type focuses on the definition of that common metadata which could enable the beginning of an exportable and manageable vulnerability attestation. This document describes a vulnerability attestation type to represent vulnerability reports from the scanners in an "exportable" manner and independently of the format chosen to output the results. ## Prerequisites The in-toto [attestation] framework and a Vulnerability scanner tools such as [Grype](https://github.com/anchore/grype), [Trivy](https://github.com/aquasecurity/trivy) and others. ## Use cases When sharing the results of a vulnerability scan using an attestation, there is certain metadata that is crucial to trust and reuse this information. Information about the scanner used during the scanning is relevant to trust these results. The state of the vulnerability database used to search for vulnerabilities defines the accuracy of the results. Other metadata information such as the timestamp when the scan finished could define the reusability of these results. ## Model This is a predicate type that fits within the larger [Attestation] framework. The following model aims to provide a well defined list of fields so that consumers know how to start exchanging their scanner results. This predicate model is inspired by [cosign vulnerability attestation](https://github.com/sigstore/cosign/blob/main/specs/COSIGN_VULN_ATTESTATION_SPEC.md). ## Schema The schema of this predicate type is documented below. ### Fields The fields that make up this predicate type are: The `subject` contains whatever software artifacts are to be associated with this vulnerability report document. The `predicate` contains a JSON-encoded data with the following fields: **scanner, required** object > There are lots of container image scanners such as Trivy, Grype, Clair, etc. > This field describes which scanner is used while performing a container image scan, > as well as version information and which Vulnerability DB is used. **scanner.uri, required** string (ResourceURI) > > URI indicating the identity of the source of the scanner. **scanner.version, optional** string (ResourceURI) > > The version of the scanner. **scanner.db.uri, optional** string (ResourceURI) > > > URI indicating the identity of the source of the Vulnerability DB. **scanner.db.version, optional** string > > > The version of the Vulnerability DB. **scanner.db.lastUpdate, required** string (timestamp) > > > The timestamp of when the vulnerability DB was updated last time. **scanner.result, required** list > > The result contains a list of vulnerabilities. Note that an empty list means the **scanner** found no vulnerabilities. > > This is the most important part of this field because it'll store the scan result as a whole. So, people might want > > to use this field to take decisions based on them by making use of Policy Engines tooling whether allow or deny these images. **scanner.result.[*].vulnerability, optional** object > > > The vulnerability object defines information about each one of the vulnerabilities found by the scanner. **scanner.result.[*].vulnerability.id, required** string > > > > This is the identifier of the vulnerability, e.g. [GHSA-fxph-q3j8-mv87](https://github.com/advisories/GHSA-fxph-q3j8-mv87) whose CVE id is [CVE-2017-5645](https://nvd.nist.gov/vuln/detail/CVE-2017-5645). **scanner.result.[*].vulnerability.severity, required** object > > > > The severity contains a list to describe the severity of a vulnerability using one or more quantitative scoring method. **scanner.result.[*].vulnerability.severity.method, required** string > > > > > The method describes the quantitative method used to calculate the associated severity score such as nvd, cvss and others. **scanner.result.[*].vulnerability.severity.score, required** string > > > > > This is a string representing the severity score based on the selected method. **scanner.result.[*].vulnerability.annotations, optional** list > > > > > This is a list of key/value pairs where scanners can add additional custom information. **metadata.scanStartedOn, required** Timestamp > > The timestamp of when the scan started. **metadata.scanFinishedOn, required** Timestamp > > The timestamp of when the scan completed. ## Example ```jsonc { "_type": "https://in-toto.io/Statement/v1", "subject": [ { "name": "foo.jar", "digest": {"sha256": "fe4fe40ac7250263c5dbe1cf3138912f3f416140aa248637a60d65fe22c47da4"} } ], // Predicate: "predicateType": "https://in-toto.io/attestation/vulns/v0.1", "predicate": { "invocation": { "parameters": [], "uri": "https://github.com/developer-guy/alpine/actions/runs/1071875574", "event_id": "1071875574", "builder.id": "GitHub Actions" }, "scanner": { "uri": "pkg:github/aquasecurity/trivy@244fd47e07d1004f0aed9", "version": "0.19.2", "db": { "uri": "pkg:github/aquasecurity/trivy-db/commit/4c76bb580b2736d67751410fa4ab66d2b6b9b27d", "version": "v1-2021080612", "lastUpdate": "2021-08-06T17:45:50.52Z" }, "result": [ { "id": "CVE-123", "severity": [ { "method": "nvd", "score": "medium"}, { "method": "cvss_score", "score", "5.2" } ] }, {...} ] }, "metadata": { "scanStartedOn": "2021-08-06T17:45:50.52Z", "scanFinishedOn": "2021-08-06T17:50:50.52Z" } } } ``` ## Changelog and Migrations Not applicable for this initial version. [Attestation]: ../README.md golang-github-in-toto-attestation-1.1.0/spec/v0.1.0/000077500000000000000000000000001470602552500217465ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/spec/v0.1.0/README.md000066400000000000000000000236651470602552500232410ustar00rootroot00000000000000# Attestation Spec An in-toto **attestation** is authenticated metadata about one or more software artifacts, as per the [SLSA Attestation Model]. It has three layers that are independent but designed to work together: - [Envelope]: Handles authentication and serialization. - [Statement]: Binds the attestation to a particular subject and unambiguously identifies the types of the predicate. - [Predicate]: Contains arbitrary metadata about the subject, with a type-specific schema. - [Bundle]: Defines a method of grouping multiple attestations together. The [processing model] provides pseudocode showing how these layers fit together. See the [top-level README](../../README.md) for background and examples. ## Parsing rules The following rules apply to [Statement] and predicates that opt-in to this model. - **Unrecognized fields:** Consumers MUST ignore unrecognized fields. This is to allow minor version upgrades and extension fields. Ignoring fields is safe due to the monotonic principle. - **Versioning:** Each type has a [SemVer2](https://semver.org) version number and the [TypeURI] reflects the major version number. A message is always semantically correct, but possibly incomplete, when parsed as any other version with the same major version number and thus the same [TypeURI]. Minor version changes always follow the monotonic principle. NOTE: 0.X versions are considered major versions. - **Extension fields:** Producers MAY add extension fields to any JSON object by using a property name that is a [TypeURI]. The use of URI is to protect against name collisions. Consumers MAY parse and use these extensions if desired. The presence or absence of the extension field MUST NOT influence the meaning of any other field, and the field MUST follow the monotonic principle. - **Monotonic:** A policy is considered monotonic if ignoring an attestation, or a field within an attestation, will never turn a DENY decision into an ALLOW. A predicate or field follows the monotonic principle if the expected policy that consumes it is monotonic. Consumers SHOULD design policies to be monotonic. Example: instead of "deny if a 'has vulnerabilities' attestation exists", prefer "deny unless a 'no vulnerabilities' attestation exists". See [versioning rules](../versioning.md) for details and examples. ## Envelope ```jsonc { "payloadType": "application/vnd.in-toto+json", "payload": "", "signatures": [{"sig": ""}] } ``` The Envelope is the outermost layer of the attestation, handling authentication and serialization. The format and protocol are defined in [DSSE] and adopted by in-toto in [ITE-5]. It is a [JSON] object with the following fields: `payloadType` _string, required_ > Identifier for the encoding of the payload. Always > `application/vnd.in-toto+json`, which indicates that it is a JSON object with > a `_type` field indicating its schema. `payload` _string, required_ > Base64-encoded JSON [Statement]. `signatures` _array of objects, required_ > One or more signatures over `payloadType` and `payload`, as defined in [DSSE]. ## Statement ```jsonc { "_type": "https://in-toto.io/Statement/v0.1", "subject": [ { "name": "", "digest": {"": ""} }, ... ], "predicateType": "", "predicate": { ... } } ``` Version: [0.1.0](https://github.com/in-toto/attestation/blob/v0.1.0/spec/README.md) (see [parsing rules]) The Statement is the middle layer of the attestation, binding it to a particular subject and unambiguously identifying the types of the [predicate]. It is a [JSON] object with the following fields: `_type` _string ([TypeURI]), required_ > Identifier for the schema of the Statement. Always > `https://in-toto.io/Statement/v0.1` for this version of the spec. `subject` _array of objects, required_ > Set of software artifacts that the attestation applies to. Each element > represents a single software artifact. > > IMPORTANT: Subject artifacts are matched purely by digest, regardless of > content type. If this matters to you, please comment on > [GitHub Issue #28](https://github.com/in-toto/attestation/issues/28) `subject[*].digest` _object ([DigestSet]), required_ > Collection of cryptographic digests for the contents of this artifact. > > Two DigestSets are considered matching if ANY of the fields match. The > producer and consumer must agree on acceptable algorithms. If there are no > overlapping algorithms, the subject is considered not matching. `subject[*].name` _string, required_ > Identifier to distinguish this artifact from others within the `subject`. > > The semantics are up to the producer and consumer. Because consumers evaluate > the name against a policy, the name SHOULD be stable between attestations. If > the name is not meaningful, use "\_". For example, a [SLSA Provenance] > attestation might use the name to specify output filename, expecting the > consumer to only considers entries with a particular name. Alternatively, a > vulnerability scan attestation might use the name "\_" because the results > apply regardless of what the artifact is named. > > MUST be non-empty and unique within `subject`. `predicateType` _string ([TypeURI]), required_ > URI identifying the type of the [Predicate]. `predicate` _object, optional_ > Additional parameters of the [Predicate]. Unset is treated the same as > set-but-empty. MAY be omitted if `predicateType` fully describes the > predicate. ## Predicate ```jsonc "predicateType": "", "predicate": { // arbitrary object } ``` The Predicate is the innermost layer of the attestation, containing arbitrary metadata about the [Statement]'s `subject`. A predicate has a required `predicateType` ([TypeURI]) identifying what the predicate means, plus an optional `predicate` (object) containing additional, type-dependent parameters. Users are expected to choose a predicate type that fits their needs, or invent a new one if no existing one satisfies. Predicate types are not registered. The following popular predicate types may be of general interest: - [SLSA Provenance]: To describe the origins of a software artifact. - [Link]: For migration from [in-toto 0.9]. - [SPDX]: A Software Package Data Exchange document. ### Predicate conventions We recommend the following conventions for predicates: - Predicates SHOULD follow and opt-in to the [parsing rules], particularly the monotonic principle, and SHOULD explain what the parsing rules are. - Field names SHOULD use lowerCamelCase. - Timestamps SHOULD use [RFC 3339] syntax with timezone "Z" and SHOULD clarify the meaning of the timestamp. For example, a field named `timestamp` is too ambiguous; a better name would be `builtAt` or `allowedAt` or `scannedAt`. - References to other artifacts SHOULD be an object that includes a `digest` field of type [DigestSet]. Consider using the same type as [SLSA Provenance] `materials` if it is a good fit. Predicate designers are free to limit what subject types are valid for a given predicate type. For example, suppose a "Gerrit code review" predicate only applies to git commit subjects. In that case, a producer of such attestations should never use a subject other than a git commit. ## Processing model The following pseudocode shows how to verify and extract metadata about a single artifact from a single attestation. The expectation is that consumers will feed the resulting metadata into a policy engine. TODO: Explain how to process multiple artifacts and/or multiple attestations. Inputs: - `artifactToVerify`: blob of data - `attestation`: JSON-encoded [Envelope] - `recognizedAttesters`: collection of (`name`, `publicKey`) pairs - `acceptableDigestAlgorithms`: collection of acceptable cryptographic hash algorithms (usually just `sha256`) Steps: - Envelope layer: - `envelope` := decode `attestation` as a JSON-encoded [Envelope]; reject if decoding fails - `attesterNames` := empty set of names - For each `signature` in `envelope.signatures`: - For each (`name`, `publicKey`) in `recognizedAttesters`: - Optional: skip if `signature.keyid` does not match `publicKey` - If `signature.sig` matches `publicKey`: - Add `name` to `attesterNames` - Reject if `attesterNames` is empty - Intermediate state: `envelope.payloadType`, `envelope.payload`, `attesterNames` - Statement layer: - Reject if `envelope.payloadType` != `application/vnd.in-toto+json` - `statement` := decode `envelope.payload` as a JSON-encoded [Statement]; reject if decoding fails - Reject if `statement.type` != `https://in-toto.io/Statement/v0.1` - `artifactNames` := empty set of names - For each `s` in `statement.subject`: - For each digest (`alg`, `value`) in `s.digest`: - If `alg` is in `acceptableDigestAlgorithms`: - If `hash(alg, artifactToVerify)` == `hexDecode(value)`: - Add `s.name` to `artifactNames` - Reject if `artifactNames` is empty Output (to be fed into policy engine): - `statement.predicateType` - `statement.predicate` - `artifactNames` - `attesterNames` [Bundle]: bundle.md [DSSE]: https://github.com/secure-systems-lab/dsse [DigestSet]: field_types.md#DigestSet [Envelope]: #envelope [ITE-5]: https://github.com/in-toto/ITE/blob/master/ITE/5/README.adoc [JSON]: https://www.json.org [Link]: predicates/link.md [Predicate]: #predicate [RFC 3339]: https://tools.ietf.org/html/rfc3339 [SLSA Attestation Model]: https://slsa.dev/attestation-model [SLSA Provenance]: https://slsa.dev/provenance [SPDX]: predicates/spdx.md [Statement]: #statement [TypeURI]: field_types.md#TypeURI [in-toto 0.9]: https://github.com/in-toto/docs/blob/v0.9/in-toto-spec.md [parsing rules]: #parsing-rules [processing model]: #processing-model golang-github-in-toto-attestation-1.1.0/spec/v0.1.0/bundle.md000066400000000000000000000131061470602552500235420ustar00rootroot00000000000000# Attestation Bundle An attestation bundle is a collection of multiple attestations in a single file. This allows attestations from multiple different points in the software supply chain (e.g. Provenance, Code Review, Test Result, vuln scan, ...) to be grouped together, allowing users to make decisions based on all available information. **NOTE**: The bundle is not authenticated as a whole. Instead each individual attestation is authenticated ([using DSSE](https://github.com/secure-systems-lab/dsse)). As such, an attacker might be able to _delete_ an attestation without being detected. Predicates that follow [the monotonic principle](README.md#parsing-rules) should not have any issues with this behavior. ## Data structure Attestation Bundles use [JSON Lines](https://jsonlines.org/) to store multiple attestations. - Each attestation within a bundle MAY have a different signing key, `_type`, `subject`, and/or `predicateType`. - Each line SHOULD be an [Envelope]. Consumers MUST ignore unrecognized lines. - Consumers MUST ignore attestations with unrecognized keys, types, subjects, or predicates. - Processing of a bundle MUST NOT depend on the order of the attestations. ## File naming convention Bundles SHOULD use the suffix `.intoto.jsonl`. A bundle of attestations relevant for `` SHOULD be named `.intoto.jsonl`. Attestations in the bundle MAY have different subjects, but they SHOULD all be relevant to that file or its dependencies. For example, a package named `foo-1.2.3.tar.gz` with hash `abcd` that was built from git commit `1234` could have a bundle name `foo-1.2.3.tar.gz.intoto.jsonl` with two attestations, one with subject `abcd` and one with subject `1234`. ## Example Use Case The Fooly app has a CI/CD system which builds the application from source, runs a NoVulnz vulnerability scan on the results, produces an SPDX SBOM, and then deploys the app to an app store. ### Build The Fooly builder builds the app (`fooly.apk` with hash `aaa...`) and produces a generic [SLSA Provenance](https://slsa.dev/provenance). The Fooly builder also produces a more detailed attestation that contains all the logs of the build as an in-toto Statement with `predicateType=https://fooly.app/Builder/v1`. The builder places _both_ of these signed attestations in a new file named `fooly.apk.intoto.jsonl`. ```jsonl { "payloadType": "application/vnd.in-toto+json", "payload": "a...", "signatures": [w...] } { "payloadType": "application/vnd.in-toto+json", "payload": "b...", "signatures": [w...] } ``` ### Vulnerability Scanning The CI/CD system then requests a third-party vulnerability scan on `fooly.apk`. The vulnerability scanner doesn't use in-toto Statements but instead uses their own custom `payloadType=application/vnd.novulz+cbor`, which they put in a DSSE envelope. This attestation indicates `fooly.apk` with hash `aaa...` has 0 critical vulnerabilities and 3 medium vulnerabilities. The TestResult is then appended to the contents of `fooly.apk.intoto.jsonl` ```jsonl { "payloadType": "application/vnd.in-toto+json", "payload": "a...", "signatures": [w...] } { "payloadType": "application/vnd.in-toto+json", "payload": "b...", "signatures": [w...] } { "payloadType": "application/vnd.novulz+cbor", "payload": "c...", "signatures": [x...] } ``` ### SBOM Generation The CI/CD system then generates an SPDX SBOM attestation for `fooly.apk` with hash `aaa...` using an in-toto Statement with [`predicateType=https://spdx.dev/Document`](https://github.com/in-toto/attestation/blob/main/spec/predicates/spdx.md) and appending that to the contents of `fooly.apk.intoto.jsonl`. ```jsonl { "payloadType": "application/vnd.in-toto+json", "payload": "a...", "signatures": [w...] } { "payloadType": "application/vnd.in-toto+json", "payload": "b...", "signatures": [w...] } { "payloadType": "application/vnd.novulz+cbor", "payload": "c...", "signatures": [x...] } { "payloadType": "application/vnd.in-toto+json", "payload": "d...", "signatures": [y...] } ``` ### Deployment Just prior to deployment the CI/CD system checks `fooly.apk` with a policy engine (providing `fooly.apk.intoto.jsonl` as it does so) to ensure the app is safe to publish. The policy engine used doesn't understand `predicateType=https://spdx.dev/Document`, so it is ignored. Satisfied with the result CI/CD system now deploys `fooly.apk` to the app store. ### Attestation Publishing Fooly Inc. wants to publish all of the accumulated attestations for evey published app _except for_ the internal build attestation. The CI/CD system then iterates through all the attestations, removing the attestation with `predicateType=https://fooly.app/Builder/v1` and publishes to their website: ```jsonl { "payloadType": "application/vnd.in-toto+json", "payload": "a...", "signatures": [w...] } { "payloadType": "application/vnd.novulz+cbor", "payload": "c...", "signatures": [x...] } { "payloadType": "application/vnd.in-toto+json", "payload": "d...", "signatures": [y...] } ``` ## Viewing bundles Large attestations might wind up being difficult for a person to read if they're serialized to a single line each. An easy way to make it more legible for people is to use the `jq` command. Example: ```shell $ grep . ~/multiple.intoto.jsonl | jq { "payloadType": "application/vnd.in-toto+json", "payload": "a...", "signatures": [] } { "payloadType": "application/vnd.in-toto+json", "payload": "b...", "signatures": [] } { "payloadType": "application/vnd.novulz+cbor", "payload": "c...", "signatures": [] } { "payloadType": "application/vnd.in-toto+json", "payload": "d...", "signatures": [] } ``` [Envelope]: README.md#envelope golang-github-in-toto-attestation-1.1.0/spec/v0.1.0/field_types.md000066400000000000000000000070231470602552500246010ustar00rootroot00000000000000# Field type definitions
_DigestSet (object)_ > Set of alternative cryptographic digests for a single software artifact, > expressed as a JSON map from algorithm name to lowercase hex-encoded value. > Usually there is just a single key/value pair, but multiple entries MAY be > used for algorithm agility. > > It is RECOMMENDED to use at least `sha256` for compatibility between > producers and consumers. > > Pre-defined algorithms: > > - `sha256`, `sha224`, `sha384`, `sha512`, `sha512_224`, `sha512_256`, > `sha3_224`, `sha3_256`, `sha3_384`, `sha3_512`, `shake128`, `shake256`, > `blake2b`, `blake2s`, `ripemd160`, `sm3`, `gost`, `sha1`, `md5` > > Standard cryptographic hash algorithms, for cases when the method > of serialization is obvious or well known. > > - `goModuleH1`: The go module [directory Hash1][], omitting the "h1:" > prefix and output in hexadecimal instead of base64. Can be computed > over a directory named `name@version`, or the contents of zip file > containing such a directory: > > ```bash > find name@version -type f | LC_ALL=C sort | xargs -r sha256sum | sha256sum | cut -f1 -d' ' > ``` > > For example, the module dirhash > `h1:47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=` would be encoded as > `{"goModuleH1": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"}`. > > Consumers MUST only accept algorithms that they consider secure and MUST > ignore unrecognized or unaccepted algorithms. For example, most applications > SHOULD NOT accept "md5" because it lacks collision resistance. > > Two DigestSets SHOULD be considered matching if ANY acceptable field > matches. > > Examples: > > - `{"sha256": "abcd", "sha512": "1234"}` matches `{"sha256": "abcd"}` > - `{"sha256": "abcd"}` does not match `{"sha256": "fedb", "sha512": "abcd"}` > - `{"somecoolhash": "abcd"}` uses a non-predefined algorithm _ResourceURI (string)_ > Uniform Resource Identifier as specified in [RFC 3986][], used to identify > and locate a software artifact. Case sensitive and MUST be case normalized > as per section 6.2.2.1 of RFC 3986, meaning that the scheme and authority > MUST be in lowercase. > > SHOULD resolve to the artifact, but MAY be unresolvable. It is RECOMMENDED > to use [Package URL][] (`pkg:`) or [SPDX Download Location][] (e.g. > `git+https:`). > > Example: `"pkg:deb/debian/stunnel@5.50-3?arch=amd64"`. _TypeURI (string)_ > Uniform Resource Identifier as specified in [RFC 3986][], used as a > collision-resistant type identifier. Case sensitive and MUST be case > normalized as per section 6.2.2.1 of RFC 3986, meaning that the scheme and > authority MUST be in lowercase. > > SHOULD resolve to a human-readable description, but MAY be unresolvable. > SHOULD include a version number to allow for revisions. > > TypeURIs are not registered. The natural namespacing of URIs is sufficient > to prevent collisions. > > Example: `"https://in-toto.io/Statement/v1"`. _Timestamp (string)_ > A point in time, represented as a string in [RFC 3339][] format in the UTC > timezone ("Z"). > > Example: `"1985-04-12T23:20:50.52Z"`. [directory Hash1]: https://cs.opensource.google/go/x/mod/+/refs/tags/v0.5.0:sumdb/dirhash/hash.go [Package URL]: https://github.com/package-url/purl-spec/ [RFC 3339]: https://tools.ietf.org/html/rfc3339 [RFC 3986]: https://tools.ietf.org/html/rfc3986 [SPDX Download Location]: https://spdx.github.io/spdx-spec/v2.3/package-information/#77-package-download-location-field golang-github-in-toto-attestation-1.1.0/spec/v1/000077500000000000000000000000001470602552500214525ustar00rootroot00000000000000golang-github-in-toto-attestation-1.1.0/spec/v1/CHANGELOG.md000066400000000000000000000003421470602552500232620ustar00rootroot00000000000000# Changelog ## v1.1 - Clarified that subjects are assumed to be immutable and that it is acceptable to use a non-cryptographic digest (though cryptographic digests are still strongly recommended). ## v1 Initial release. golang-github-in-toto-attestation-1.1.0/spec/v1/README.md000066400000000000000000000052371470602552500227400ustar00rootroot00000000000000# Specification for in-toto attestation layers Version: v1.1 Index: - [Envelope]: Handles authentication and serialization. - [Statement]: Binds the attestation to a particular subject and unambiguously identifies the types of the predicate. - [Predicate]: Contains arbitrary metadata about a subject artifact, with a type-specific schema. - [Bundle]: Defines a method of grouping multiple attestations together. ## Common field types As part of this specification, we also define a set of common [field types] for any layer of an in-toto attestation. ## Parsing rules The following rules apply to [Statement] and any [Predicate] that opt into this model. - **Unrecognized fields:** Consumers MUST ignore unrecognized fields unless otherwise noted in the predicate specification. This is to allow minor version upgrades and extension fields. Ignoring fields is safe due to the monotonic principle. - **Versioning:** Each type has a [SemVer2](https://semver.org) version number and the [TypeURI] reflects the major version number. A message is always semantically correct, but possibly incomplete, when parsed as any other version with the same major version number and thus the same [TypeURI]. Minor version changes always follow the monotonic principle. NOTE: 0.X versions are considered major versions. - **Extension fields:** Producers MAY add extension fields to any JSON object. Extension fields SHOULD use names that are unlikely to collide with names used by other orgs. Producers MAY file an issue/PR to document extension fields they're using. Any consumer MAY parse and use these extensions if desired. Field names SHOULD avoid special characters like `.` and `$` as these can make querying these fields in some databases more difficult. The presence or absence of the extension field MUST NOT influence the meaning of any other field, and the field MUST follow the monotonic principle. - **Monotonic principle:** A policy is considered monotonic if ignoring an attestation, or a field within an attestation, will never turn a DENY decision into an ALLOW. A predicate or field follows the monotonic principle if the expected policy that consumes it is monotonic. Consumers SHOULD design policies to be monotonic. Example: instead of "deny if a 'has vulnerabilities' attestation exists", prefer "deny unless a 'no vulnerabilities' attestation exists". See [versioning rules](../versioning.md) for details and examples. [Bundle]: bundle.md [Envelope]: envelope.md [Predicate]: predicate.md [Statement]: statement.md [TypeURI]: field_types.md#TypeURI [field types]: field_types.md golang-github-in-toto-attestation-1.1.0/spec/v1/bundle.md000066400000000000000000000151141470602552500232470ustar00rootroot00000000000000# Bundle layer specification An attestation Bundle is a collection of multiple attestations in a single file. This allows attestations from multiple different points in the software supply chain (e.g. Provenance, Code Review, Test Result, vuln scan, ...) to be grouped together, allowing users to make decisions based on all available information. **NOTE**: The Bundle is not authenticated as a whole. Instead each individual attestation is authenticated using signature formats like [DSSE]. As such, an attacker might be able to delete valid attestations, replay obsolete attestations, and/or inject invalid or irrelevant attestations in a Bundle without being detected. Our Bundle specification aims to reduce the risks of such attacks. In addition, predicates that follow the [monotonic principle] should not have any issues with deletion attacks. ## Data structure Attestation Bundles use [JSON Lines] to store multiple attestations. - Each attestation within a Bundle MAY have different signing keys, `_type`, `subject`, and/or `predicateType`. - Each line within a Bundle SHOULD be an [Envelope]. Consumers MUST ignore unrecognized lines. - Consumers MUST ignore attestations with unrecognized keys, types, subjects, or predicates. - Processing of a Bundle MUST NOT depend on the order of the attestations. ## File naming convention Bundles SHOULD use the suffix `.intoto.jsonl`. - A Bundle of attestations relevant for `` SHOULD be named `.intoto.jsonl`. - Attestations in the Bundle MAY have different subjects, but they SHOULD all be relevant to that file or its dependencies. ### Example A package named `foo-1.2.3.tar.gz` with hash `abcd` that was built from git commit `1234` could have a Bundle name `foo-1.2.3.tar.gz.intoto.jsonl` with two attestations, one with subject `abcd` and one with subject `1234`. ## Storage convention The media type `application/vnd.in-toto.bundle` SHOULD be used to denote a Bundle in arbitrary storage systems. - The media type for a Bundles does not indicate an encoding since Bundles MUST be encoded as JSON lines, and the encoding of each attestation within the Bundle SHOULD be indicated at the [Envelope] layer. - The predicate type of individual attestations within the stored Bundle SHOULD NOT be indicated in the media type for the Bundle, as this information is not authenticated at the Bundle layer. - To obtain predicate information that is authenticated, consumers MUST download and parse each line in a Bundle separately. ## Example use case The Fooly app has a CI/CD system which builds the application from source, runs a NoVulnz vulnerability scan on the results, produces an SPDX SBOM, and then deploys the app to an app store. ### Build The Fooly builder builds the app (`fooly.apk` with hash `aaa...`) and produces a generic [SLSA Provenance]. The Fooly builder also produces a more detailed attestation that contains all the logs of the build as an in-toto [Statement] with `predicateType=https://fooly.app/Builder/v1`. The builder places _both_ of these signed attestations in a new file named `fooly.apk.intoto.jsonl`. ```jsonl { "payloadType": "application/vnd.in-toto+json", "payload": "a...", "signatures": [w...] } { "payloadType": "application/vnd.in-toto+json", "payload": "b...", "signatures": [w...] } ``` ### Vulnerability scanning The CI/CD system then requests a third-party vulnerability scan on `fooly.apk`. The vulnerability scanner doesn't use in-toto Statements but instead uses their own custom `payloadType=application/vnd.novulz+cbor`, which they put in a [DSSE] envelope. This attestation indicates `fooly.apk` with hash `aaa...` has 0 critical vulnerabilities and 3 medium vulnerabilities. The TestResult is then appended to the contents of `fooly.apk.intoto.jsonl` ```jsonl { "payloadType": "application/vnd.in-toto+json", "payload": "a...", "signatures": [w...] } { "payloadType": "application/vnd.in-toto+json", "payload": "b...", "signatures": [w...] } { "payloadType": "application/vnd.novulz+cbor", "payload": "c...", "signatures": [x...] } ``` ### SBOM generation The CI/CD system then generates an SPDX SBOM attestation for `fooly.apk` with hash `aaa...` using an in-toto Statement with [`predicateType=https://spdx.dev/Document`](https://github.com/in-toto/attestation/blob/main/spec/predicates/spdx.md) and appending that to the contents of `fooly.apk.intoto.jsonl`. ```jsonl { "payloadType": "application/vnd.in-toto+json", "payload": "a...", "signatures": [w...] } { "payloadType": "application/vnd.in-toto+json", "payload": "b...", "signatures": [w...] } { "payloadType": "application/vnd.novulz+cbor", "payload": "c...", "signatures": [x...] } { "payloadType": "application/vnd.in-toto+json", "payload": "d...", "signatures": [y...] } ``` ### Deployment Just prior to deployment the CI/CD system checks `fooly.apk` with a policy engine (providing `fooly.apk.intoto.jsonl` as it does so) to ensure the app is safe to publish. The policy engine used doesn't understand `predicateType=https://spdx.dev/Document`, so it is ignored. Satisfied with the result CI/CD system now deploys `fooly.apk` to the app store. ### Attestation publishing Fooly Inc. wants to publish all of the accumulated attestations for evey published app _except for_ the internal build attestation. The CI/CD system then iterates through all the attestations, removing the attestation with `predicateType=https://fooly.app/Builder/v1` and publishes to their website: ```jsonl { "payloadType": "application/vnd.in-toto+json", "payload": "a...", "signatures": [w...] } { "payloadType": "application/vnd.novulz+cbor", "payload": "c...", "signatures": [x...] } { "payloadType": "application/vnd.in-toto+json", "payload": "d...", "signatures": [y...] } ``` ## Viewing bundles Large attestations might wind up being difficult for a person to read if they're serialized to a single line each. An easy way to make it more legible for people is to use the `jq` command. Example: ```shell $ grep . ~/multiple.intoto.jsonl | jq { "payloadType": "application/vnd.in-toto+json", "payload": "a...", "signatures": [] } { "payloadType": "application/vnd.in-toto+json", "payload": "b...", "signatures": [] } { "payloadType": "application/vnd.novulz+cbor", "payload": "c...", "signatures": [] } { "payloadType": "application/vnd.in-toto+json", "payload": "d...", "signatures": [] } ``` [DSSE]: https://github.com/secure-systems-lab/dsse [Envelope]: envelope.md [JSON Lines]: https://jsonlines.org/ [SLSA Provenance]: https://slsa.dev/provenance [monotonic principle]: https://github.com/in-toto/attestation/tree/main/spec/v1#parsing-rules golang-github-in-toto-attestation-1.1.0/spec/v1/digest_set.md000066400000000000000000000204321470602552500241270ustar00rootroot00000000000000# DigestSet field type specification Set of one or more cryptographic digests, or other immutable references, for a single software artifact or metadata object. ## Schema ```json { "": "", "": "", ... } ``` ## Fields A DigestSet is represented as a _JSON object_ mapping algorithm name to a string encoding of the digest using that algorithm. The named standard algorithms below use lowercase hex encoding. Usually there is just a single key/value pair, but multiple entries MAY be used for algorithm agility. Each entry in a DigestSet MUST be an immutable reference to an artifact. It is STRONGLY RECOMMENDED to use a commonly accepted, cryptographically secure digest algorithm to achieve this immutability. See [Use cases for non-cryptographic, immutable, digests](#use-cases-for-non-cryptographic-immutable-digests) for further guidance. ### Supported algorithms #### `sha256`, `sha224`, `sha384`, `sha512`, `sha512_224`, `sha512_256`, `sha3_224`, `sha3_256`, `sha3_384`, `sha3_512`, `shake128`, `shake256`, `blake2b`, `blake2s`, `ripemd160`, `sm3`, `gost`, `sha1`, `md5` Standard cryptographic hash algorithms using [the NIST names][] (converting to lowercase and replacing `-` with `_`) as keys and lowercase hex-encoded values, for cases when the method of serialization is obvious or well known. #### `dirHash` The [directory Hash1][] function, omitting the "h1:" prefix and output in lowercase hexadecimal instead of base64. This algorithm was designed for go modules but can be used to digest the _contents_ of an arbitrary archive or file tree. Equivalent to extracting the archive to an empty directory and running the following command in that directory: ```bash find . -type f | cut -c3- | LC_ALL=C sort | xargs -r sha256sum | sha256sum | cut -f1 -d' ' ``` For example, the module dirhash `h1:Khu2En+0gcYPZ2kuIihfswbzxv/mIHXgzPZ018Oty48=` would be encoded as `{"dirHash1": "2a1bb6127fb481c60f67692e22285fb306f3c6ffe62075e0ccf674d7c3adcb8f"}`.
Detailed example The go module `github.com/marklodato/go-hello-world@v0.0.1` has module dirhash `h1:Khu2En+0gcYPZ2kuIihfswbzxv/mIHXgzPZ018Oty48=`: ```bash $ curl https://sum.golang.org/lookup/github.com/marklodato/go-hello-world@v0.0.1 ... github.com/marklodato/go-hello-world v0.0.1 h1:Khu2En+0gcYPZ2kuIihfswbzxv/mIHXgzPZ018Oty48= ... ``` To compute the dirhash by hand, first fetch the module archive and extract it to an empty directory: ```bash curl -O https://proxy.golang.org/github.com/marklodato/go-hello-world/@v/v0.0.1.zip mkdir tmp cd tmp unzip ../v0.0.1.zip ``` We can see all of the files in the directory using the first part of the command above: ```bash $ find . -type f | cut -c3- | LC_ALL=C sort | xargs -r sha256sum 3a137eef6458bfb76bb2c63fc29ffc7166604d2d2e09ed9d8250a534122a8364 github.com/marklodato/go-hello-world@v0.0.1/README.md 28e7c942a036902d981759d0bf5704d2bfc7cb500caf68b84711b234af01c6a5 github.com/marklodato/go-hello-world@v0.0.1/go.mod ddc4da627d9a9f45fb29641a1b185d6f53287ecfd921aacbf4fe54b7a86fe8d1 github.com/marklodato/go-hello-world@v0.0.1/main.go ``` The dirhash is the sha256 sum over the output of the previous command: ```bash $ find . -type f | cut -c3- | LC_ALL=C sort | xargs -r sha256sum | sha256sum | cut -f1 -d' ' 2a1bb6127fb481c60f67692e22285fb306f3c6ffe62075e0ccf674d7c3adcb8f ``` This is equivalent to the base64 encoded version: ```bash $ echo '2a1bb6127fb481c60f67692e22285fb306f3c6ffe62075e0ccf674d7c3adcb8f' | xxd -r -p | {printf 'h1:'; base64} h1:Khu2En+0gcYPZ2kuIihfswbzxv/mIHXgzPZ018Oty48= ```
#### `gitCommit`, `gitTree`, `gitBlob`, `gitTag` The lowercase hex SHA-1 (40 character) or SHA-256 (64 character) of a git commit, tree, blob, or tag object, respectively. The `gitTree` and `gitBlob` in particular can be used for arbitrary trees or files, even outside git. This hash is computed over ` SP NUL `, where: - `` is one of `commit`, `tree`, `blob`, `tag` - `SP` is the ASCII space character, 0x20 - `` is the number of bytes in ``, represented as a decimal ASCII number with no leading zeros - `NUL` is the ASCII NUL character, 0x00 - `` is git representation of the object: - For `commit`, the raw commit object ([more info][so-commit][^git-docs]) - For `tree`, the raw tree object, which is a series of ` NUL ` entries, sorted by `` in the C locale ([more info][so-tree][^git-docs]) - For `blob`, the raw file contents - For `tag`, the raw tag object For more information, see [Git Objects] in the Git Book.[^git-docs] Example of `gitBlob` for the file containing the 5 bytes `Hello` (no newline): ```bash $ printf 'blob 5\0Hello' | sha1sum | cut -f1 -d' ' 5ab2f8a4323abafb10abb68657d9d39f1a775057 $ printf 'Hello' | git hash-object -t blob --stdin 5ab2f8a4323abafb10abb68657d9d39f1a775057 ``` ### Guidelines It is RECOMMENDED to use at least `sha256` for compatibility between producers and consumers, unless a different hash algorithm is more conventional (e.g. `gitCommit` for git). Consumers MUST only accept algorithms that they consider secure and MUST ignore unrecognized or unaccepted algorithms. For example, most applications SHOULD NOT accept "md5" because it lacks collision resistance. Two DigestSets SHOULD be considered matching if ANY acceptable field matches. New algorithms MUST document how the value is encoded, e.g. URL-safe base64, lowercase hex, etc... ### Use cases for non-cryptographic, immutable, digests While cryptographic digests are the strongly recommended immutable identifier, users might have need to refer to an artifact by some other means. For example, it might be technically infeasible to compute a digest over the content, or the user might interact with the content through an interface that doesn't expose them to the entirety of the content. In these situations, users MAY use a non-cryptographic identifier in a DigestSet so long as the risk of the object being mutated is acceptable for the application. One concrete example of where a non-cryptographic hash can be useful is when referring to Virtual Machine images. Often these images are very large (impractical to run a cryptographic hash over) and users often interact with them via APIs that the platform provides that don't involve the user having complete custody of the content. Platforms like AWS and GCP provide 'ids' for users to use when referring to these images. A user may say something like "create an instance with image 123". In that case the user doesn't actually have the bits that correspond to 'image 123' so they cannot digest it themselves. And by the time the image has started it can be difficult, if not impossible, to digest the original content that was used to boot the instance. These IDs can often be treated as immutable and may be perfectly suited to users threat profiles. Allowing DigestSets to use these types of identifiers allows providers to make statements about the content of these VM images using the identifiers their users have ready access to. In addition, using an ID like this does not preclude including a cryptographic hash in the DigestSet as well. If possible including both may provide the most flexibility for the user's various use cases. ## Examples - `{"sha256": "abcd", "sha512": "1234"}` matches `{"sha256": "abcd"}` - `{"sha256": "abcd"}` does not match `{"sha256": "fedb", "sha512": "abcd"}` - `{"somecoolhash": "abcd"}` uses a non-predefined algorithm --- [^git-docs]: At the time of writing (2023-03), git has no official documentation of the internal object format used for hashing. The [Git Objects] chapter of the Git Book is the closest thing to official documentation, but it lacks many details, such as the raw tree object format. The best documentation we have found are the linked Stack Overflow articles. If you can find a better, more official reference, please open an issue. [Git Objects]: https://git-scm.com/book/en/v2/Git-Internals-Git-Objects [directory Hash1]: https://cs.opensource.google/go/x/mod/+/refs/tags/v0.5.0:sumdb/dirhash/hash.go [so-commit]: https://stackoverflow.com/a/37438460 [so-tree]: https://stackoverflow.com/a/35902553 [the NIST names]: https://csrc.nist.gov/projects/hash-functions golang-github-in-toto-attestation-1.1.0/spec/v1/envelope.md000066400000000000000000000052561470602552500236210ustar00rootroot00000000000000# Envelope layer specification Version: [DSSE v1.0] The Envelope is the outermost layer of the attestation, handling authentication and serialization. ## Schema The format and protocol are defined per [DSSE v1.0]. ## Fields The in-toto Attestation Framework has the following requirements for the standard DSSE fields. - `payloadType` MUST be set to `application/vnd.in-toto+json`, which indicates that the Envelope contains a JSON object with a `_type` field specifying its schema. - `payload` MUST be a base64-encoded JSON [Statement]. ## File naming convention If stored in a dedicated file by itself, and not as part of a [Bundle], an Envelope SHOULD use the suffix `.json`. - For attestations intended for consumption by [in-toto-verify], an Envelope containing an attestation about a particular software supply chain step `` SHOULD be named `.json`. - For other verifiers, or cases in which a step name cannot be easily determined, the attestation producer and consumer MAY agree on an arbitrary filename: `.json`. - If multiple Envelopes are produced for the same step by different [functionaries] uniquely identified by a public key, an Envelope name SHOULD include the truncated [KEYID] of the public key `` of the signing functionary: `..json`. ## Storage convention The media type `application/vnd.in-toto.+dsse` SHOULD be used to denote an individual attestation in arbitrary storage systems. - The `` MUST match the [predicate specification filename] without the file extension. Predicate versioning is handled in the [Statement] layer. - Consumers SHOULD NOT rely upon the media type for individual attestations as faithful indicators of predicate type. Consumer SHOULD only rely on the `predicateType` field in the [Statement] layer. - To obtain predicate information that is authenticated, consumers MUST parse the Envelope's `payload`, and verify it against its `signatures`. ### Examples Example media types for single DSSE-signed attestation predicates include: - SLSA Provenance: `application/vnd.in-toto.provenance+dsse` - SPDX: `application/vnd.in-toto.spdx+dsse` - VSA: `application/vnd.in-toto.vsa+dsse` [Bundle]: bundle.md [DSSE v1.0]: https://github.com/secure-systems-lab/dsse/blob/v1.0.0/envelope.md [KEYID]: https://github.com/in-toto/docs/blob/v1.0/in-toto-spec.md#421-key-formats [Statement]: statement.md [in-toto-verify]: https://github.com/in-toto/in-toto#verification [functionaries]: https://github.com/in-toto/docs/blob/v1.0/in-toto-spec.md#212-functionaries [predicate specification filename]: ../predicates golang-github-in-toto-attestation-1.1.0/spec/v1/field_types.md000066400000000000000000000037121470602552500243060ustar00rootroot00000000000000# Field type specifications The in-toto Attestation Framework defines several field types that may be of common interest: - [DigestSet] - [ResourceURI] - [TypeURI] - [Timestamp] - [ResourceDescriptor] ## ResourceURI Uniform Resource Identifier as specified in [RFC 3986][], used to identify and locate any resource, service, or software artifact. **Format:** A ResourceURI is represented as a case sensitive _string_ and MUST be case normalized as per section 6.2.2.1 of RFC 3986, meaning that the scheme and authority MUST be in lowercase. > SHOULD resolve to the artifact, but MAY be unresolvable. It is RECOMMENDED > to use [Package URL][] (`pkg:`) or [SPDX Download Location][] (e.g. > `git+https:`). **Example:** `"pkg:deb/debian/stunnel@5.50-3?arch=amd64"`. ## TypeURI Uniform Resource Identifier as specified in [RFC 3986][], used as a collision-resistant type identifier. **Format:** A TypeURI is represented as a case sensitive _string_ and MUST be case normalized as per section 6.2.2.1 of RFC 3986, meaning that the scheme and authority MUST be in lowercase. > SHOULD resolve to a human-readable description, but MAY be unresolvable. > SHOULD include a version number to allow for revisions. > > TypeURIs are not registered. The natural namespacing of URIs is sufficient > to prevent collisions. **Example:** `"https://in-toto.io/Statement/v1"`. ## Timestamp A point in time. **Format:** A timestamp is represented as a _string_ and MUST be in [RFC 3339][] format in the UTC timezone ("Z"). **Example:** `"1985-04-12T23:20:50.52Z"`. [DigestSet]: digest_set.md [Package URL]: https://github.com/package-url/purl-spec/ [RFC 3339]: https://tools.ietf.org/html/rfc3339 [RFC 3986]: https://tools.ietf.org/html/rfc3986 [ResourceDescriptor]: resource_descriptor.md [ResourceURI]: #resourceuri [SPDX Download Location]: https://spdx.github.io/spdx-spec/v2.3/package-information/#77-package-download-location-field [Timestamp]: #timestamp [TypeURI]: #typeuri golang-github-in-toto-attestation-1.1.0/spec/v1/predicate.md000066400000000000000000000015331470602552500237360ustar00rootroot00000000000000# Predicate layer specification The Predicate is the innermost layer of the attestation, containing arbitrary metadata about the [Statement]'s `subject`. ## Schema ```jsonc "predicateType": "", "predicate": { // arbitrary object } ``` ## Fields A predicate has a required `predicateType` ([TypeURI]) identifying what the predicate means, plus an optional `predicate` [JSON] object containing additional, type-dependent parameters. Users are expected to choose an [existing predicate type] that fits their needs, or develop a new one if no existing one satisfies. New predicate types MAY be vetted by the in-toto attestation maintainers. Additional [parsing rules] apply. [JSON]: https://www.json.org [Statement]: statement.md [TypeURI]: field_types.md#TypeURI [parsing rules]: README.md#parsing-rules [existing predicate type]: ../predicates golang-github-in-toto-attestation-1.1.0/spec/v1/resource_descriptor.md000066400000000000000000000134301470602552500260620ustar00rootroot00000000000000# ResourceDescriptor field type specification A size-efficient description of any software artifact or resource (mutable or immutable). ## Schema ```json { "name": "", "uri": "", "digest": { "": "", ... }, "content": "", // converted from bytes for JSON "downloadLocation": "", "mediaType": "", "annotations": { "": /* value */, "": /* value */, ... } } ``` ## Fields Though all fields are optional, a ResourceDescriptor MUST specify one of `uri`, `digest` or `content` at a minimum. Further, a context that uses the ResourceDescriptor can require one or more fields. For example, a predicate may require the `name` and `digest` fields. Note that those requirements cannot override the minimum requirement of one of `uri`, `digest`, or `content` specified here. `name` _string, optional_ > Machine-readable identifier for distinguishing between descriptors. > > The semantics are up to the producer and consumer. The `name` SHOULD be > stable, such as a filename, to allow consumers to reliably use the `name` > as part of their policy. `uri` _[ResourceURI], optional_ > A URI used to identify the resource or artifact globally. > This field is REQUIRED unless either `digest` or `content` is set. `digest` _[DigestSet], optional_ > A set of cryptographic digests of the contents of the resource or artifact. > This field is REQUIRED unless either `uri` or `content` is set. > > When known, the producer SHOULD set this field to denote an immutable > artifact or resource. The producer and consumer SHOULD agree on acceptable > algorithms. `content` _bytes, optional_ > The contents of the resource or artifact. > This field is REQUIRED unless either `uri` or `digest` is set. > > The producer MAY use this field in scenarios where including the contents > of the resource/artifact directly in the attestation is deemed more > efficient for consumers than providing a pointer to another location. To > maintain size efficiency, the size of `content` SHOULD be less than 1KB. > > The semantics are up to the producer and consumer. The `uri` or > `mediaType` MAY be used by the producer as hints for how consumers should > parse `content`. `downloadLocation` _[ResourceURI], optional_ > The location of the described resource or artifact, if different from the > `uri`. > > To enable automated downloads by consumers, the specified location SHOULD > be resolvable. `mediaType` _string, optional_ > The [MIME Type][] (i.e., media type) of the described resource or artifact. > > For resources or artifacts that do not have a standardized MIME type, > producers SHOULD follow [RFC 6838][] (Sections 3.2-3.4) conventions of > prefixing types with `x.`, `prs.`, or `vnd.` to avoid collisions with other > producers. `annotations` _map , optional_ > This field MAY be used to provide additional information or metadata about > the resource or artifact that may be useful to the consumer when evaluating > the attestation against a policy. > > For maximum flexibility annotations may be any mapping from a field name to > any JSON value (string, number, object, array, boolean or _null_). > > The producer and consumer SHOULD agree on the semantics, and acceptable > fields and values in the `annotations` map. Producers SHOULD follow the > same naming conventions for annotation fields as for [extension fields]. ## Semantics Though the ResourceDescriptor allows for a high degree of flexibility, certain field combinations typically have specific semantics. For consistency, we RECOMMEND the following: - A descriptor that specifies a `digest` is assumed to refer to an immutable resource or artifact. The `digest` SHOULD match the resource or artifact specified in one of the `name`, `uri`, `content` or `downloadLocation` fields. The field that consumers are expected to match the `digest` against is ultimately determined by the predicate type, and SHOULD be documented by the predicate specification. - A descriptor without a `content` field, is assumed to serve as a pointer to the resource/artifact. - When `uri` and `name` are specified, the scope of `name` is assumed to be local to the attestation. The `name` SHOULD be compared to the `uri` to match the descriptor against the resource or artifact referenced universally. ## Examples Pointer to a file: ```jsonc { "name": "Foo.apk", "uri": "git+https://android.googlesource.com/platform/vendor/foo/bar@16244f4e7524d44a8f3060905eaf9190e96e9fb0#prebuilts/Foo/Foo.apk", "digest": { "sha256": "7f4714fd..." } } ``` Pointer to a git repo (with annotations): ```jsonc { "uri": "git+https://github.com/actions/runner", "digest": { "sha1": "d61b27b8395512..." }, "annotations": { "twoPartyReview": false } } ``` Pointer to another in-toto attestation: ```jsonc { "name": "gcc_9.3.0-1ubuntu2_amd64.intoto.json", "digest": { "sha256": "abcdabcde..." }, "downloadLocation": "http://example.com/rebuilderd-instance/gcc_9.3.0-1ubuntu2_amd64.intoto.json", "mediaType": "application/x.dsse+json" } ``` Pointer to build service: ```jsonc { "uri": "https://cloudbuild.googleapis.com/GoogleHostedWorker@v1" } ``` Descriptor for Tekton TaskRun: ```jsonc { "uri": "https://tekton.dev/TaskRun/check/result/report", "digest": { "sha256": "ec87961dbfe8e7d8a73890c602ac7bd407b80b9e31c326beb9110bdd255f12e6" }, "content": "eyAicmVzdWx0IjogIlNVQ0NFU1MiLCAidGltZXN0YW1wIjogIjE2Nzc4NzIyMzYiLCAic3VjY2Vzc2VzIjogMjIsICJmYWlsdXJlcyI6IDAsICJ3YXJuaW5ncyI6MCB9", "mediaType": "application/json" } ``` [DigestSet]: digest_set.md [MIME Type]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types [RFC 6838]: https://www.rfc-editor.org/rfc/rfc6838.html#section-3.2 [ResourceURI]: field_types.md#ResourceURI [extension fields]: ./#parsing-rules golang-github-in-toto-attestation-1.1.0/spec/v1/statement.md000066400000000000000000000046741470602552500240130ustar00rootroot00000000000000# Statement layer specification The Statement is the middle layer of the attestation, binding it to a particular subject and unambiguously identifying the types of the [Predicate]. ## Schema ```jsonc { "_type": "https://in-toto.io/Statement/v1", "subject": [ { "name": "", "digest": {"": ""} }, ... ], "predicateType": "", "predicate": { ... } } ``` ## Fields The Statement is represented as a [JSON] object with the following fields. Additional [parsing rules] apply. `_type` _string ([TypeURI]), required_ > Identifier for the schema of the Statement. Always > `https://in-toto.io/Statement/v1` for this version of the spec. `subject` _array of [ResourceDescriptor] objects, required_ > Set of software artifacts that the attestation applies to. Each element > represents a single software artifact. Each element MUST have `digest` set. > > Subjects are assumed to be _immutable_, i.e. the artifacts identified by the > subject SHOULD NOT change. > > The `name` field may be used as an identifier to distinguish this artifact > from others within the `subject`. Similarly, other ResourceDescriptor fields > may be used as required by the context. The semantics are up to the producer > and consumer and they MAY use them when evaluating policy. If the name is not > meaningful, leave the field unset or use "\_". For example, a > [SLSA Provenance] attestation might use the name to specify output filename, > expecting the consumer to only consider entries with a particular name. > Alternatively, a vulnerability scan attestation might leave name unset because > the results apply regardless of what the artifact is named. > > If set, `name` and `uri` SHOULD be unique within subject. > > IMPORTANT: Subject artifacts are matched purely by digest, regardless of > content type. If this matters to you, please comment on > [GitHub Issue #28](https://github.com/in-toto/attestation/issues/28) `predicateType` _string ([TypeURI]), required_ > URI identifying the type of the [Predicate]. `predicate` _object, optional_ > Additional parameters of the [Predicate]. Unset is treated the same as > set-but-empty. MAY be omitted if `predicateType` fully describes the > predicate. [ResourceDescriptor]: resource_descriptor.md [JSON]: https://www.json.org/json-en.html [Predicate]: predicate.md [SLSA Provenance]: https://slsa.dev/provenance [TypeURI]: field_types.md#TypeURI [parsing rules]: README.md#parsing-rules golang-github-in-toto-attestation-1.1.0/spec/versioning.md000066400000000000000000000050771470602552500236420ustar00rootroot00000000000000# Versioning Rules Predicate specifications are versioned independently from the Attestation Framework specification in order to allow for predicates to evolve as needed without depending on the evolution of the Statement layer, for example. The following rules apply to both Statement and predicate specification versioning. ## Objective This document explains how version changes and extension fields are handled. For a summary, see [parsing rules](v1/README.md#parsing-rules) in the README. ## Versioning rules We adhere to [Semantic Versioning 2.0.0](https://semver.org), i.e. MAJOR.MINOR.PATCH. (PATCH isn't really needed, but we do it just so we're SemVer compliant.) This way implementations can state specifically which version they support. NOTE: 0.X.Y versions are considered major versions for the purposes of this doc, consistent with semantic versioning. Any message MUST be semantically correct when parsed as any other version with the same major number. That is: - Parsing an older message as a newer minor/patch version MUST be semantically equivalent to parsing it as the original version. (All fields present in both versions have the same meaning, and the absence of any new fields has no semantic meaning.) - Parsing a newer message as an older minor/patch version MUST be semantically equivalent to parsing it as the newer version with all new fields removed. (All fields present in both version have the same meaning, regardless of the presence or absence of the new fields.) The type ID only includes the major version. This allows implementations to support any major version without having to parse the URI to pull out the version. (Parsing is impossible since we don't mandate the format of the URI.) Implementations just use the URI as an opaque string. The advantage of having minor versions is that we can add new information without requiring consumers to update. ## Examples - Provenance 1.1.0 (minor version) adds a new `buildFinished` timestamp. This is OK because the absence of the `buildFinished` has no semantic meaning and the presence or absence of `buildFinished` does not affect the rest of the message. The type ID is still `https://slsa.dev/provenance/v1`. - Provenance 2.0.0 (major version) adds a new `recipe.extraArgs` field. This is required because the meaning of `recipe` changes if `extraArgs` is present. Parsing it as 1.x.y will result in an incorrect interpretation. - Provenance 3.0.0 (major version) modifies the meaning of `builder.id`. This is required because an existing field was modified.