Full Code of snyk/parlay for AI

main 132ec411f5a1 cached
93 files
4.2 MB
1.1M tokens
953 symbols
1 requests
Download .txt
Showing preview only (4,461K chars total). Download the full file or copy to clipboard to get everything.
Repository: snyk/parlay
Branch: main
Commit: 132ec411f5a1
Files: 93
Total size: 4.2 MB

Directory structure:
gitextract_b9stc6rp/

├── .circleci/
│   └── config.yml
├── .github/
│   ├── CODEOWNERS
│   └── workflows/
│       ├── ci.yml
│       ├── release.yml
│       └── security.yml
├── .gitignore
├── .gitleaks.toml
├── .golangci.yaml
├── .goreleaser.yml
├── .pre-commit-config.yaml
├── .snyk
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── NOTICE
├── README.md
├── SECURITY.md
├── acceptance.bats
├── catalog-info.yaml
├── ecosystems/
│   ├── packages/
│   │   └── packages.go
│   └── repos/
│       └── repos.go
├── go.mod
├── go.sum
├── internal/
│   ├── commands/
│   │   ├── default.go
│   │   ├── deps/
│   │   │   ├── repos.go
│   │   │   └── root.go
│   │   ├── ecosystems/
│   │   │   ├── enrich.go
│   │   │   ├── packages.go
│   │   │   ├── repos.go
│   │   │   └── root.go
│   │   ├── scorecard/
│   │   │   ├── enrich.go
│   │   │   └── root.go
│   │   └── snyk/
│   │       ├── config.go
│   │       ├── enrich.go
│   │       ├── packages.go
│   │       └── root.go
│   └── utils/
│       ├── cdx.go
│       ├── cdx_test.go
│       ├── input.go
│       ├── input_test.go
│       ├── spdx.go
│       └── spdx_test.go
├── lib/
│   ├── deps/
│   │   └── repo.go
│   ├── ecosystems/
│   │   ├── cache.go
│   │   ├── cache_test.go
│   │   ├── enrich.go
│   │   ├── enrich_cyclonedx.go
│   │   ├── enrich_cyclonedx_test.go
│   │   ├── enrich_spdx.go
│   │   ├── enrich_spdx_test.go
│   │   ├── package.go
│   │   ├── package_test.go
│   │   ├── repo.go
│   │   └── repo_test.go
│   ├── sbom/
│   │   ├── cyclonedx.go
│   │   ├── decode.go
│   │   ├── decode_test.go
│   │   ├── encode.go
│   │   ├── format.go
│   │   ├── sbom.go
│   │   └── spdx.go
│   ├── scorecard/
│   │   ├── enrich.go
│   │   ├── enrich_cyclonedx.go
│   │   ├── enrich_spdx.go
│   │   └── enrich_test.go
│   └── snyk/
│       ├── config.go
│       ├── enrich.go
│       ├── enrich_cyclonedx.go
│       ├── enrich_spdx.go
│       ├── enrich_test.go
│       ├── package.go
│       ├── package_test.go
│       ├── self.go
│       ├── self_test.go
│       ├── service.go
│       └── testdata/
│           ├── no_issues.json
│           ├── numpy_issues.json
│           ├── pandas_issues.json
│           └── self.json
├── main.go
├── snyk/
│   ├── issues/
│   │   └── issues.go
│   └── users/
│       └── users.go
├── specs/
│   ├── packages.yaml
│   ├── repos.yaml
│   ├── snyk-experimental.json
│   └── snyk.json
└── testing/
    ├── sbom.cyclonedx-1.5.json
    ├── sbom.cyclonedx.json
    ├── sbom.cyclonedx.xml
    ├── sbom.spdx-2.3.json
    ├── sbom2.cyclonedx.json
    └── sbom3.cyclonedx.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .circleci/config.yml
================================================
version: 2.1

orbs:
  prodsec: snyk/prodsec-orb@1

go_image: &go_image
  resource_class: small
  docker:
    - image: cimg/go:1.25

jobs:
  security-scans:
    <<: *go_image
    steps:
      - checkout
      - prodsec/security_scans:
          mode: auto
          iac-scan: disabled

workflows:
  version: 2
  CICD:
    jobs:
      - prodsec/secrets-scan:
          name: Scan repository for secrets
          context:
            - snyk-bot-slack
          channel: snyk-vuln-alerts-unify
          filters:
            branches:
              ignore:
                - main
      - security-scans:
          name: Security Scans
          context: analysis_unify


================================================
FILE: .github/CODEOWNERS
================================================
* @snyk/unify @snyk/codesec_unify @snyk/open-source_unify @garethr


================================================
FILE: .github/workflows/ci.yml
================================================
name: CI

on:
  push:
  pull_request:
    branches: [ "main" ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3

    - name: Set up Go
      uses: actions/setup-go@v3
      with:
        go-version: '1.25'

    - name: Lint
      uses: golangci/golangci-lint-action@v9
      with:
        version: v2.9.0

    - name: Build
      run: go build -v -o parlay

    - name: Unit tests
      run: go test -v ./...

    - name: Setup BATS
      uses: mig4/setup-bats@v1
      with:
        bats-version: 1.9.0

    - name: Acceptance tests
      run: bats -r .


================================================
FILE: .github/workflows/release.yml
================================================
name: Release

on:
  push:
    tags:
      - 'v*'

permissions:
  contents: write

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 0
      -
        name: Set up Go
        uses: actions/setup-go@v4
        with:
          go-version: '1.25'
          check-latest: true
      - run: go version
      - name: Install Syft
        uses: anchore/sbom-action/download-syft@v0
      -
        name: Release
        uses: goreleaser/goreleaser-action@v6.1.0
        with:
          version: ${{ env.GITHUB_REF_NAME }}
          args: release --clean
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}



================================================
FILE: .github/workflows/security.yml
================================================
name: Security

on:
  push:
  workflow_dispatch:
  schedule:
    - cron:  "0 0 * * 0"

  workflow_call:
    secrets:
      GITLEAKS_LICENSE:
        required: true
      SNYK_TOKEN:
        required: true

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
      with:
        fetch-depth: 0

    - name: Set up Go
      uses: actions/setup-go@v3
      with:
        go-version: '1.25'

    - uses: snyk/actions/setup@master

    - name: Snyk Open Source 
      run: snyk test
      env:
        SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}

    - name: Snyk Code
      run: snyk code test
      env:
        SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}

    - name: Gitleaks    
      uses: gitleaks/gitleaks-action@v2
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        GITLEAKS_LICENSE: ${{ secrets.GITLEAKS_LICENSE}}



================================================
FILE: .gitignore
================================================
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib

# Test binary, built with `go test -c`
*.test

# Output of the go coverage tool, specifically when used with LiteIDE
*.out

# Snyk Code cache
.dccache

# Goreleaser distribution files
dist

# Dependency directories (remove the comment below to include it)
# vendor/

# IDE configs
.idea

/parlay


================================================
FILE: .gitleaks.toml
================================================
[whitelist]
files = [
    "specs/snyk-experimental.jsonl",
]


================================================
FILE: .golangci.yaml
================================================
version: "2"
run:
  issues-exit-code: 1
  tests: true
linters:
  enable:
    - misspell
  settings:
    errcheck:
      check-type-assertions: true
      check-blank: true
    govet:
      enable:
        - shadow
    misspell:
      locale: US
  exclusions:
    generated: lax
    presets:
      - comments
      - common-false-positives
      - legacy
      - std-error-handling
    rules:
      - linters:
          - staticcheck
        text: "ST1005:"
    paths:
      - third_party$
      - builtin$
      - examples$
formatters:
  enable:
    - goimports
  settings:
    goimports:
      local-prefixes:
        - github.com/snyk/parlay
  exclusions:
    generated: lax
    paths:
      - third_party$
      - builtin$
      - examples$


================================================
FILE: .goreleaser.yml
================================================
version: 2
before:
  hooks:
  - go mod download
  - go install github.com/google/go-licenses@latest
  - go-licenses save . --save_path=./acknowledgements --force
  - tar -cvf ./acknowledgements.tar.gz -C ./acknowledgements .
  - rm -rf ./acknowledgements

builds:
- main: ./main.go
  env:
  - CGO_ENABLED=0
  goos:
  - windows
  - linux
  - darwin
  goarch:
  - amd64
  - arm64
  - ppc64le
  ldflags:
  - "-s"
  - "-w"
  - "-X github.com/snyk/parlay/internal/commands.version={{.Version}}"
  - "-X github.com/snyk/parlay/lib/ecosystems.Version={{.Version}}"
  - "-X github.com/snyk/parlay/lib/snyk.Version={{.Version}}"

archives:
- format: tar.gz
  name_template: >-
    {{ .ProjectName }}_
    {{- title .Os }}_
    {{- if eq .Arch "amd64" }}x86_64
    {{- else if eq .Arch "386" }}i386
    {{- else }}{{ .Arch }}{{ end }}
  format_overrides:
    - goos: windows
      format: zip
  files:
    #    - LICENSE
    - README.md

checksum:
  name_template: 'checksums.txt'

release:
  extra_files:
    - glob: ./acknowledgements.tar.gz

changelog:
  use: github
  groups:
  - title: New Features
    regexp: '^feat(ure)?:'
    order: 0
  - title: Bug Fixes
    regexp: '^(bug|fix):'
    order: 1
  - title: Other Changes
    order: 999
  sort: asc
  filters:
    exclude:
    - '^docs:'
    - '^test:'
    - '^misc:'
    - '^typo:'
    - '(?i) typo( |\.|\r?\n)'

# Publishes the deb and rpm files to the GitHub releases page.
nfpms:
  - bindir: /usr/bin
    description: "Enrich SBOMs with Parlay"
    formats:
      - deb
      - rpm
    homepage: https://github.com/snyk/parlay
    maintainer: garethr <gareth.rushgrove@snyk.io>

source:
  enabled: true

sboms:
  - id: cyclonedx
    artifacts: source
    args: ["$artifact", "--file", "$document", "--output", "cyclonedx-json"]
    documents:
      - "{{ .Binary }}_{{ .Version }}.cyclonedx.sbom"
  - id: spdx
    artifacts: source
    args: ["$artifact", "--file", "$document", "--output", "spdx-json"]
    documents:
      - "{{ .Binary }}-{{ .Version }}.spdx.sbom"



================================================
FILE: .pre-commit-config.yaml
================================================
repos:
  - repo: https://github.com/gitleaks/gitleaks
    rev: v8.16.1
    hooks:
      - id: gitleaks


================================================
FILE: .snyk
================================================
# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
version: v1.25.0
# ignores vulnerabilities until expiry date; change duration by modifying expiry date
ignore:
  'snyk:lic:golang:github.com:package-url:packageurl-go:Unknown':
    - '*':
        reason: None Given
        expires: 2023-07-04T10:24:10.016Z
        created: 2023-06-04T10:24:10.022Z
patch: {}


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
  and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
  overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
  advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
  address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
  professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
`oss-conduct-reports@snyk.io`.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior,  harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.


================================================
FILE: CONTRIBUTING.md
================================================
# CONTRIBUTING.md

First and foremost, thank you for considering contributing to Parlay! Your contribution is valuable and we genuinely appreciate your interest. 

Parlay is a distinct software project developed by Snyk. Although separate from our core product line, it provides a platform for us to demonstrate our capabilities and some key concepts. 

Please note that we monitor and respond to issues and pull requests on a best-effort basis. 

### How to contribute

#### Code of Conduct

Prior to contributing, please familiarize yourself with our [Code of Conduct](CODE_OF_CONDUCT.md). We expect all our contributors to uphold these guidelines to maintain a respectful and inclusive environment.

#### Open Development

All development work on Parlay is done directly on GitHub. Both our core team members and external contributors send pull requests, which go through a unified review process.

#### Reporting Issues

We welcome you to raise an issue if you discover a bug, find a documentation error, or identify a feature you believe should be added. You can do this by opening a new issue in the issue tracker. Please ensure that your issue hasn't already been reported by reviewing existing issues before creating a new one. We value the time and effort you spend in providing these details.

#### Pull Requests

We highly recommend that contributors raise an issue before making a pull request. This allows us to discuss potential changes and prevent unnecessary or duplicative work. Once the issue has been reviewed and we've agreed on a solution, contributors can then fork the repository and submit a pull request.

##### Submitting your Pull Request

- Ensure your code passes all tests, and consider adding new tests for the changes you've made.
- In your Pull Request description, provide a detailed explanation of your changes. This assists us in understanding your decision-making process and aids in the effective review of your work.
- Remember to reference the relevant issue number in your pull request.

Your time and efforts make Parlay better, and we're grateful for your support and contributions. Thank you!


================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   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.


================================================
FILE: Makefile
================================================
# Copyright 2023 Snyk Ltd.
#
# 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.

build:
	@go build -v

test: lint
	@go test -cover -v ./...

acceptance: build
	@bats -r .

lint:
	@golangci-lint run --fix

cover:
	@go test ./... -coverprofile=/tmp/cover.out
	@go tool cover -html=/tmp/cover.out

specs:
	@curl --silent https://packages.ecosyste.ms/docs/api/v1/openapi.yaml -o specs/packages.yaml
	@curl --silent https://repos.ecosyste.ms/docs/api/v1/openapi.yaml -o specs/repos.yaml
	@curl --silent https://api.snyk.io/rest/openapi/2024-06-26~experimental -o specs/snyk-experimental.json
	@curl --silent https://api.snyk.io/rest/openapi/2024-06-26 -o specs/snyk.json

clients: specs
	@oapi-codegen -generate types,client -package packages specs/packages.yaml > ecosystems/packages/packages.go
	@oapi-codegen -generate types,client -package repos specs/repos.yaml > ecosystems/repos/repos.go
	@oapi-codegen -generate types,client -package users -include-tags Users specs/snyk-experimental.json > snyk/users/users.go
	@oapi-codegen -generate types,client -package issues -include-tags Issues specs/snyk.json > snyk/issues/issues.go
	sed -i '' 's/"purl", runtime.ParamLocationPath, purl/"purl", runtime.ParamLocationQuery, purl/' snyk/issues/issues.go

fmt:
	@gofmt -s -w -l .

.PHONY: build test acceptance lint cover specs patch clients fmt


================================================
FILE: NOTICE
================================================
© 2023 Snyk Limited All rights reserved.

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.

### Third party software ###
We use third-party libraries, whose license information is included
the acknowledgements.tar.gz file as part of each release..


================================================
FILE: README.md
================================================
# Parlay

[![CI](https://github.com/snyk/parlay/actions/workflows/ci.yml/badge.svg)](https://github.com/snyk/parlay/actions/workflows/ci.yml)
[![Security](https://github.com/snyk/parlay/actions/workflows/security.yml/badge.svg)](https://github.com/snyk/parlay/actions/workflows/security.yml)

## Enriching SBOMs

`parlay` will take a CycloneDX (JSON, XML) or SPDX 2.3 (JSON) document and enrich it with information taken from external services. At present this includes:

* [ecosyste.ms](https://ecosyste.ms)
* [Snyk](https://snyk.io)
* [OpenSSF Scorecard](https://securityscorecards.dev/)

By enrich, we mean add additional information. You put in an SBOM, and you get a richer SBOM back. In many cases SBOMs have a minimum of information, often just the name and version of a given package. By enriching that with additional information we can make better decisions about the packages we're using.

## Enriching with ecosyste.ms

Let's take a simple CycloneDX SBOM of a Javascript application. Using `parlay` we enrich it using data from [ecosyste.ms](https://ecosyste.ms), adding information about the package license, external links, the maintainer and more.

```
$ cat testing/sbom.cyclonedx.json
...
{
	"bom-ref": "68-subtext@6.0.12",
	"type": "library",
	"name": "subtext",
	"version": "6.0.12",
	"purl": "pkg:npm/subtext@6.0.12"
}
...
$ cat testing/sbom.cyclonedx.json | parlay ecosystems enrich - | jq
...
{
	"bom-ref": "68-subtext@6.0.12",
	"type": "library",
	"supplier": {
		"name": "hapi.js",
		"url": [
			"https://hapi.dev"
		]
	},
	"author": "hapi.js",
	"name": "subtext",
	"version": "6.0.12",
	"description": "HTTP payload parsing",
	"licenses": [
		{
			"expression": "BSD-3-Clause"
		}
	],
	"purl": "pkg:npm/subtext@6.0.12",
	"externalReferences": [
		{
			"url": "https://github.com/hapijs/subtext",
			"type": "website"
		},
		{
			"url": "https://www.npmjs.com/package/subtext",
			"type": "distribution"
		},
		{
			"url": "https://github.com/hapijs/subtext",
			"type": "vcs"
		}
	],
	"properties": [
		{
			"name": "ecosystems:first_release_published_at",
			"value": "2014-09-29T01:56:03Z"
		},
		{
			"name": "ecosystems:latest_release_published_at",
			"value": "2019-01-31T19:36:58Z"
		}
	]
}
...
```

What about with SPDX? Let's take an SBOM containing a list of packages like so:

```json
{
  "name": "concat-map",
  "SPDXID": "SPDXRef-7-concat-map-0.0.1",
  "versionInfo": "0.0.1",
  "downloadLocation": "NOASSERTION",
  "copyrightText": "NOASSERTION",
  "externalRefs": [
    {
      "referenceCategory": "PACKAGE-MANAGER",
      "referenceType": "purl",
      "referenceLocator": "pkg:npm/concat-map@0.0.1"
    }
  ]
}
```

Running `parlay ecosystems enrich <sbom.spdx.json>` will add additional information:

```diff
{
  "name": "concat-map",
  "SPDXID": "SPDXRef-7-concat-map-0.0.1",
  "versionInfo": "0.0.1",
  "downloadLocation": "NOASSERTION",
+  "homepage": "https://github.com/ljharb/concat-map",
+  "licenseConcluded": "MIT",
  "copyrightText": "NOASSERTION",
+  "description": "concatenative mapdashery",
  "externalRefs": [
    {
      "referenceCategory": "PACKAGE-MANAGER",
      "referenceType": "purl",
      "referenceLocator": "pkg:npm/concat-map@0.0.1"
    }
  ]
```

There are a few other utility commands for ecosyste.ms as well. The first returns raw JSON information about a specific package from ecosyste.ms:

```
parlay ecosystems package pkg:npm/snyk
```

You can also return raw JSON information about a specific repository:

```
parlay ecosystems repo https://github.com/open-policy-agent/conftest
```

### License data

parlay enriches components and packages with their license information from ecosyste.ms on a best-effort basis. It prefers the license data of the package version at hand; however, it may not always be possible to retrieve the license for a specific version (see [ecosyste.ms issue here](https://github.com/ecosyste-ms/packages/issues/1027) for more info). In this case, parlay will fall back to enriching with the license data of the package's latest release. In rare cases — where the licensing model of a package changed over time — this may result in license data inaccuracies.


## Enriching with Snyk

`parlay` can also enrich an SBOM with Vulnerability information from Snyk.

It's important to note vulnerability data is moment-in-time information. By adding vulnerability information directly to the SBOM this makes the SBOM moment-in-time too.

Note the Snyk commands require you to be a Snyk customer, and require passing a valid Snyk API token in the `SNYK_TOKEN` environment variable.

The API base url can be set using the `SNYK_API` environment variable, and if missing it will default to `https://api.snyk.io`.

```
parlay snyk enrich testing/sbom.cyclonedx.json
```

Snyk will add a new [vulnerability](https://cyclonedx.org/docs/1.4/json/#vulnerabilities) attribute to the SBOM, for example:

```json
"vulnerabilities": [
  {
    "bom-ref": "68-subtext@6.0.12",
    "id": "SNYK-JS-SUBTEXT-467257",
    "ratings": [
      {
        "source": {
          "name": "Snyk",
          "url": "https://security.snyk.io"
        },
        "score": 7.5,
        "severity": "high",
        "method": "CVSSv31",
        "vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
      }
    ],
    "cwes": [
      400
    ],
    "description": "Denial of Service (DoS)",
    "detail": "...",
    "advisories": [
      {
        "title": "GitHub Commit",
        "url": "https://github.com/brave-intl/subtext/commit/9557c115b1384191a0d6e4a9ea028fedf8b44ae6"
      },
      {
        "title": "GitHub Issue",
        "url": "https://github.com/hapijs/subtext/issues/72"
      },
      {
        "title": "NPM Security Advisory",
        "url": "https://www.npmjs.com/advisories/1168"
      }
    ],
    "created": "2019-09-19T10:25:11Z",
    "updated": "2020-12-14T14:41:09Z"
  }
```

For SPDX, vulnerability informatio is added as additional `externalRefs`:

```json
{
  "referenceCategory": "SECURITY",
  "referenceType": "advisory",
  "referenceLocator": "https://security.snyk.io/vuln/SNYK-JS-MINIMATCH-3050818",
  "comment": "Regular Expression Denial of Service (ReDoS)"
},
{
  "referenceCategory": "SECURITY",
  "referenceType": "advisory",
  "referenceLocator": "https://security.snyk.io/vuln/SNYK-JS-MINIMATCH-1019388",
  "comment": "Regular Expression Denial of Service (ReDoS)"
}
```

Return raw JSON information about vulnerabilities in a specific package from Snyk:

```
parlay snyk package pkg:npm/sqliter@1.0.1
```

## Enriching with OpenSSF Scorecard

The [OpenSSF Scorecard project](https://securityscorecards.dev/) tests various aspects of a projects security posture and provides a score. `parlay` supports added a link to this data with the `parlay scorecard enrich` command.


You can use this like so:

```
parlay scorecard enrich testing/sbom2.cyclonedx.json
```

This will currently add an external reference to the [Scorecard API](https://api.securityscorecards.dev/) which can be used to retrieve the full scorecard.

```json
{
  "bom-ref": "103-org.springframework:spring-webmvc@5.3.3",
  "type": "library",
  "name": "org.springframework:spring-webmvc",
  "version": "5.3.3",
  "purl": "pkg:maven/org.springframework/spring-webmvc@5.3.3",
  "externalReferences": [
    {
      "url": "https://api.securityscorecards.dev/projects/github.com/spring-projects/spring-framework",
      "comment": "OpenSSF Scorecard",
      "type": "other"
    }
  ]
},
```

We're currently looking at the best way of encoding some of the scorecard data in the SBOM itself as well.


## What about enriching with other data sources?

There are lots of other sources of package data, and it would be great to add support for them in `parlay`. Please open issues and PRs with ideas.


## Pipes!

`parlay` is a fan of stdin and stdout. You can pipe SBOMs from other tools into `parlay`, and pipe between the separate `enrich` commands too.

Maybe you want to enrich an SBOM with both ecosyste.ms and Snyk data:

```
cat testing/sbom.cyclonedx.json | ./parlay e enrich - | ./parlay s enrich - | jq
```

Maybe you want to take the output from Syft and add vulnerabilitity data?

```
syft -o cyclonedx-json nginx | parlay s enrich - | jq
```

Maybe you want to geneate an SBOM with `cdxgen`, enrich that with extra information, and test that with `bomber`:

```
cdxgen -o | parlay e enrich -  | bomber scan --provider snyk -
```

The ecosyste.ms enrichment adds license information, which Bomber then surfaces:

```
■ Ecosystems detected: gem
■ Scanning 18 packages for vulnerabilities...
■ Vulnerability Provider: Snyk (https://security.snyk.io)

■ Files Scanned
        - (sha256:701770b2317ea8cbd03aa398ecb6a0381c85beaf24d46c45665b53331816e360)

■ Licenses Found: MIT, Apache-2.0, BSD-3-Clause, Ruby
```


## Installation

`parlay` binaries are available from [GitHub Releases](https://github.com/snyk/parlay/releases). Just select the archive for your operating system and architecture. For instance, you could download for macOS ARM machines with the following, substituting `{version}` for the latest version number, for instance `0.1.4`.

```
wget https://github.com/snyk/parlay/releases/download/v{version}/parlay_Darwin_arm64.tar.gz
tar -xvf parlay_Darwin_arm64.tar.gz
```


## Supported package types

The various services used to enrich the SBOM data have data for a subset of purl types:

### Ecosystems

* `apk`
* `cargo`
* `cocoapods`
* `composer`
* `gem`
* `golang`
* `hex`
* `maven`
* `npm`
* `nuget`
* `pypi`

### Snyk

* `apk`
* `cargo`
* `cocoapods`
* `composer`
* `deb`
* `gem`
* `golang`
* `hex`
* `maven`
* `npm`
* `nuget`
* `pypi`
* `rpm`
* `swift`

### OpenSSF Scorecard

* `apk`
* `cargo`
* `cocoapods`
* `composer`
* `gem`
* `golang`
* `hex`
* `maven`
* `npm`
* `nuget`
* `pypi`

Note that Scorecard data is available only for a subset of projects from supported Git repositories. See the [Scorecard project](https://github.com/ossf/scorecard) for more information.


================================================
FILE: SECURITY.md
================================================
## Reporting Security Issues

To report a security vulnerability to us, please see https://docs.snyk.io/snyk-data-and-governance/reporting-security-issues.

================================================
FILE: acceptance.bats
================================================
#!/usr/bin/env bats

@test "Not fail when testing a JavaScript SBOM" {
  run ./parlay ecosystems enrich testing/sbom.cyclonedx.json
  [ "$status" -eq 0 ]
}

@test "Not fail when testing a JavaScript CycloneDX 1.5 SBOM" {
  run ./parlay ecosystems enrich testing/sbom.cyclonedx-1.5.json
  [ "$status" -eq 0 ]
}

@test "Not fail when testing an SBOM on stdin" {
  run bash -c "cat testing/sbom.cyclonedx.json | ./parlay ecosystems enrich -"
  [ "$status" -eq 0 ]
}

@test "Not fail when testing a Java SBOM" {
  run ./parlay ecosystems enrich testing/sbom2.cyclonedx.json
  [ "$status" -eq 0 ]
}

@test "Not fail when testing a CycloneDX XML SBOM" {
  run ./parlay ecosystems enrich testing/sbom.cyclonedx.xml
  [ "$status" -eq 0 ]
}

@test "Fail when testing a non-existent file" {
  run ./parlay ecosystems enrich not-here
  [ "$status" -eq 1 ]
}


================================================
FILE: catalog-info.yaml
================================================
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: parlay
  annotations:
    github.com/project-slug: snyk/parlay
    github.com/team-slug: snyk/link
spec:
  type: external-tooling
  lifecycle: "-"
  owner: link


================================================
FILE: ecosystems/packages/packages.go
================================================
// Package packages provides primitives to interact with the openapi HTTP API.
//
// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.4.1 DO NOT EDIT.
package packages

import (
	"context"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"net/url"
	"strings"
	"time"

	"github.com/oapi-codegen/runtime"
)

// Advisory defines model for Advisory.
type Advisory struct {
	Classification *string                  `json:"classification"`
	CreatedAt      string                   `json:"created_at"`
	CvssScore      *float32                 `json:"cvss_score"`
	CvssVector     *string                  `json:"cvss_vector"`
	Description    *string                  `json:"description"`
	Identifiers    []string                 `json:"identifiers"`
	Origin         *string                  `json:"origin"`
	Packages       []map[string]interface{} `json:"packages"`
	PublishedAt    *string                  `json:"published_at"`
	References     []string                 `json:"references"`
	Severity       *string                  `json:"severity"`
	SourceKind     *string                  `json:"source_kind"`
	Title          *string                  `json:"title"`
	UpdatedAt      string                   `json:"updated_at"`
	Url            *string                  `json:"url"`
	Uuid           string                   `json:"uuid"`
	WithdrawnAt    *string                  `json:"withdrawn_at"`
}

// Dependency defines model for Dependency.
type Dependency struct {
	Ecosystem    string  `json:"ecosystem"`
	Id           int     `json:"id"`
	Kind         *string `json:"kind"`
	Optional     *bool   `json:"optional"`
	PackageName  string  `json:"package_name"`
	Requirements *string `json:"requirements"`
}

// Keyword defines model for Keyword.
type Keyword struct {
	Name          string `json:"name"`
	PackagesCount int    `json:"packages_count"`
	PackagesUrl   string `json:"packages_url"`
}

// KeywordWithPackages defines model for KeywordWithPackages.
type KeywordWithPackages struct {
	Name            string    `json:"name"`
	Packages        []Package `json:"packages"`
	PackagesCount   int       `json:"packages_count"`
	PackagesUrl     string    `json:"packages_url"`
	RelatedKeywords []Keyword `json:"related_keywords"`
}

// Maintainer defines model for Maintainer.
type Maintainer struct {
	CreatedAt      time.Time `json:"created_at"`
	Email          *string   `json:"email"`
	HtmlUrl        *string   `json:"html_url"`
	Login          *string   `json:"login"`
	Name           *string   `json:"name"`
	PackagesCount  int       `json:"packages_count"`
	PackagesUrl    string    `json:"packages_url"`
	Role           *string   `json:"role"`
	TotalDownloads int       `json:"total_downloads"`
	UpdatedAt      time.Time `json:"updated_at"`
	Url            *string   `json:"url"`
	Uuid           string    `json:"uuid"`
}

// Namespace defines model for Namespace.
type Namespace struct {
	Name          string `json:"name"`
	PackagesCount int    `json:"packages_count"`
	PackagesUrl   string `json:"packages_url"`
}

// Package defines model for Package.
type Package struct {
	Advisories               []Advisory              `json:"advisories"`
	CreatedAt                time.Time               `json:"created_at"`
	Critical                 bool                    `json:"critical"`
	DependentPackagesCount   int                     `json:"dependent_packages_count"`
	DependentPackagesUrl     string                  `json:"dependent_packages_url"`
	DependentReposCount      int                     `json:"dependent_repos_count"`
	DependentRepositoriesUrl string                  `json:"dependent_repositories_url"`
	Description              *string                 `json:"description"`
	DockerDependentsCount    int                     `json:"docker_dependents_count"`
	DockerDownloadsCount     int                     `json:"docker_downloads_count"`
	DockerUsageUrl           string                  `json:"docker_usage_url"`
	DocumentationUrl         *string                 `json:"documentation_url"`
	Downloads                int                     `json:"downloads"`
	DownloadsPeriod          *string                 `json:"downloads_period"`
	Ecosystem                string                  `json:"ecosystem"`
	FirstReleasePublishedAt  *time.Time              `json:"first_release_published_at"`
	FundingLinks             []string                `json:"funding_links"`
	Homepage                 *string                 `json:"homepage"`
	Id                       int                     `json:"id"`
	InstallCommand           *string                 `json:"install_command"`
	KeywordsArray            []string                `json:"keywords_array"`
	LastSyncedAt             *time.Time              `json:"last_synced_at"`
	LatestReleaseNumber      *string                 `json:"latest_release_number"`
	LatestReleasePublishedAt *time.Time              `json:"latest_release_published_at"`
	Licenses                 *string                 `json:"licenses"`
	Maintainers              []Maintainer            `json:"maintainers"`
	Metadata                 *map[string]interface{} `json:"metadata"`
	Name                     string                  `json:"name"`
	Namespace                *string                 `json:"namespace"`
	NormalizedLicenses       []string                `json:"normalized_licenses"`
	Purl                     string                  `json:"purl"`
	Rankings                 map[string]interface{}  `json:"rankings"`
	RegistryUrl              *string                 `json:"registry_url"`
	RelatedPackagesUrl       string                  `json:"related_packages_url"`
	RepoMetadata             *map[string]interface{} `json:"repo_metadata"`
	RepoMetadataUpdatedAt    *time.Time              `json:"repo_metadata_updated_at"`
	RepositoryUrl            *string                 `json:"repository_url"`
	Status                   *string                 `json:"status"`
	UpdatedAt                time.Time               `json:"updated_at"`
	UsageUrl                 string                  `json:"usage_url"`
	VersionNumbersUrl        *string                 `json:"version_numbers_url,omitempty"`
	VersionsCount            int                     `json:"versions_count"`
	VersionsUrl              string                  `json:"versions_url"`
}

// PackageWithRegistry defines model for PackageWithRegistry.
type PackageWithRegistry struct {
	Advisories               []Advisory              `json:"advisories"`
	CreatedAt                time.Time               `json:"created_at"`
	Critical                 bool                    `json:"critical"`
	DependentPackagesCount   int                     `json:"dependent_packages_count"`
	DependentPackagesUrl     string                  `json:"dependent_packages_url"`
	DependentReposCount      int                     `json:"dependent_repos_count"`
	DependentRepositoriesUrl string                  `json:"dependent_repositories_url"`
	Description              *string                 `json:"description"`
	DockerDependentsCount    int                     `json:"docker_dependents_count"`
	DockerDownloadsCount     int                     `json:"docker_downloads_count"`
	DockerUsageUrl           string                  `json:"docker_usage_url"`
	DocumentationUrl         *string                 `json:"documentation_url"`
	Downloads                int                     `json:"downloads"`
	DownloadsPeriod          *string                 `json:"downloads_period"`
	Ecosystem                string                  `json:"ecosystem"`
	FirstReleasePublishedAt  *time.Time              `json:"first_release_published_at"`
	FundingLinks             []string                `json:"funding_links"`
	Homepage                 *string                 `json:"homepage"`
	Id                       int                     `json:"id"`
	InstallCommand           *string                 `json:"install_command"`
	KeywordsArray            []string                `json:"keywords_array"`
	LastSyncedAt             *time.Time              `json:"last_synced_at"`
	LatestReleaseNumber      *string                 `json:"latest_release_number"`
	LatestReleasePublishedAt *time.Time              `json:"latest_release_published_at"`
	Licenses                 *string                 `json:"licenses"`
	Maintainers              []Maintainer            `json:"maintainers"`
	Metadata                 *map[string]interface{} `json:"metadata"`
	Name                     string                  `json:"name"`
	Namespace                *string                 `json:"namespace"`
	NormalizedLicenses       []string                `json:"normalized_licenses"`
	Purl                     string                  `json:"purl"`
	Rankings                 map[string]interface{}  `json:"rankings"`
	Registry                 Registry                `json:"registry"`
	RegistryUrl              *string                 `json:"registry_url"`
	RelatedPackagesUrl       string                  `json:"related_packages_url"`
	RepoMetadata             *map[string]interface{} `json:"repo_metadata"`
	RepoMetadataUpdatedAt    *time.Time              `json:"repo_metadata_updated_at"`
	RepositoryUrl            *string                 `json:"repository_url"`
	Status                   *string                 `json:"status"`
	UpdatedAt                time.Time               `json:"updated_at"`
	UsageUrl                 string                  `json:"usage_url"`
	VersionNumbersUrl        *string                 `json:"version_numbers_url,omitempty"`
	VersionsCount            int                     `json:"versions_count"`
	VersionsUrl              string                  `json:"versions_url"`
}

// Registry defines model for Registry.
type Registry struct {
	CreatedAt        time.Time               `json:"created_at"`
	Default          bool                    `json:"default"`
	Downloads        int64                   `json:"downloads"`
	Ecosystem        string                  `json:"ecosystem"`
	Github           *string                 `json:"github"`
	IconUrl          string                  `json:"icon_url"`
	KeywordsCount    int64                   `json:"keywords_count"`
	MaintainersCount int64                   `json:"maintainers_count"`
	MaintainersUrl   string                  `json:"maintainers_url"`
	Metadata         *map[string]interface{} `json:"metadata"`
	Name             string                  `json:"name"`
	NamespacesCount  int64                   `json:"namespaces_count"`
	PackagesCount    int64                   `json:"packages_count"`
	PackagesUrl      string                  `json:"packages_url"`
	PurlType         string                  `json:"purl_type"`
	UpdatedAt        time.Time               `json:"updated_at"`
	Url              string                  `json:"url"`
	VersionsCount    *int64                  `json:"versions_count,omitempty"`
}

// Version defines model for Version.
type Version struct {
	CreatedAt        time.Time               `json:"created_at"`
	DocumentationUrl *string                 `json:"documentation_url"`
	DownloadUrl      *string                 `json:"download_url"`
	Id               int                     `json:"id"`
	InstallCommand   *string                 `json:"install_command"`
	Integrity        *string                 `json:"integrity"`
	Licenses         *string                 `json:"licenses"`
	Metadata         *map[string]interface{} `json:"metadata"`
	Number           string                  `json:"number"`
	PublishedAt      *string                 `json:"published_at"`
	Purl             string                  `json:"purl"`
	RegistryUrl      *string                 `json:"registry_url"`
	RelatedTag       map[string]interface{}  `json:"related_tag"`
	Status           *string                 `json:"status"`
	UpdatedAt        time.Time               `json:"updated_at"`
	VersionUrl       string                  `json:"version_url"`
}

// VersionWithDependencies defines model for VersionWithDependencies.
type VersionWithDependencies struct {
	CreatedAt        time.Time               `json:"created_at"`
	Dependencies     []Dependency            `json:"dependencies"`
	DocumentationUrl *string                 `json:"documentation_url"`
	DownloadUrl      *string                 `json:"download_url"`
	Id               *int                    `json:"id,omitempty"`
	InstallCommand   *string                 `json:"install_command"`
	Integrity        *string                 `json:"integrity"`
	Latest           bool                    `json:"latest"`
	Licenses         *string                 `json:"licenses"`
	Metadata         *map[string]interface{} `json:"metadata"`
	Number           string                  `json:"number"`
	PublishedAt      *string                 `json:"published_at"`
	Purl             string                  `json:"purl"`
	RegistryUrl      *string                 `json:"registry_url"`
	RelatedTag       map[string]interface{}  `json:"related_tag"`
	Status           *string                 `json:"status"`
	UpdatedAt        time.Time               `json:"updated_at"`
	VersionUrl       string                  `json:"version_url"`
}

// VersionWithPackage defines model for VersionWithPackage.
type VersionWithPackage struct {
	CreatedAt        time.Time               `json:"created_at"`
	DocumentationUrl *string                 `json:"documentation_url"`
	DownloadUrl      *string                 `json:"download_url"`
	Id               int                     `json:"id"`
	InstallCommand   *string                 `json:"install_command"`
	Integrity        *string                 `json:"integrity"`
	Latest           bool                    `json:"latest"`
	Licenses         *string                 `json:"licenses"`
	Metadata         *map[string]interface{} `json:"metadata"`
	Number           string                  `json:"number"`
	PackageUrl       string                  `json:"package_url"`
	PublishedAt      *string                 `json:"published_at"`
	Purl             string                  `json:"purl"`
	RegistryUrl      *string                 `json:"registry_url"`
	Status           *string                 `json:"status"`
	UpdatedAt        time.Time               `json:"updated_at"`
	VersionUrl       string                  `json:"version_url"`
}

// GetDependenciesParams defines parameters for GetDependencies.
type GetDependenciesParams struct {
	// Page pagination page number
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PerPage Number of records to return
	PerPage *int `form:"per_page,omitempty" json:"per_page,omitempty"`

	// Ecosystem ecosystem name
	Ecosystem *string `form:"ecosystem,omitempty" json:"ecosystem,omitempty"`

	// PackageName package name
	PackageName *string `form:"package_name,omitempty" json:"package_name,omitempty"`

	// PackageId package id
	PackageId *string `form:"package_id,omitempty" json:"package_id,omitempty"`

	// Requirements requirements
	Requirements *string `form:"requirements,omitempty" json:"requirements,omitempty"`

	// Kind kind
	Kind *string `form:"kind,omitempty" json:"kind,omitempty"`

	// Optional optional
	Optional *bool `form:"optional,omitempty" json:"optional,omitempty"`

	// After filter by id after given id
	After *string `form:"after,omitempty" json:"after,omitempty"`
}

// GetKeywordsParams defines parameters for GetKeywords.
type GetKeywordsParams struct {
	// Page pagination page number
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PerPage Number of records to return
	PerPage *int `form:"per_page,omitempty" json:"per_page,omitempty"`
}

// GetKeywordParams defines parameters for GetKeyword.
type GetKeywordParams struct {
	// Page pagination page number
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PerPage Number of records to return
	PerPage *int `form:"per_page,omitempty" json:"per_page,omitempty"`
}

// LookupPackageParams defines parameters for LookupPackage.
type LookupPackageParams struct {
	// RepositoryUrl repository URL
	RepositoryUrl *string `form:"repository_url,omitempty" json:"repository_url,omitempty"`

	// Purl package URL
	Purl *string `form:"purl,omitempty" json:"purl,omitempty"`

	// Ecosystem ecosystem name
	Ecosystem *string `form:"ecosystem,omitempty" json:"ecosystem,omitempty"`

	// Name package name
	Name *string `form:"name,omitempty" json:"name,omitempty"`

	// Sort field to sort results by
	Sort *string `form:"sort,omitempty" json:"sort,omitempty"`

	// Order direction to sort results by
	Order *string `form:"order,omitempty" json:"order,omitempty"`
}

// GetRegistriesParams defines parameters for GetRegistries.
type GetRegistriesParams struct {
	// Page pagination page number
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PerPage Number of records to return
	PerPage *int `form:"per_page,omitempty" json:"per_page,omitempty"`
}

// GetRegistryParams defines parameters for GetRegistry.
type GetRegistryParams struct {
	// Page pagination page number
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PerPage Number of records to return
	PerPage *int `form:"per_page,omitempty" json:"per_page,omitempty"`
}

// LookupRegistryPackageParams defines parameters for LookupRegistryPackage.
type LookupRegistryPackageParams struct {
	// RepositoryUrl repository URL
	RepositoryUrl *string `form:"repository_url,omitempty" json:"repository_url,omitempty"`

	// Purl package URL
	Purl *string `form:"purl,omitempty" json:"purl,omitempty"`

	// Ecosystem ecosystem name
	Ecosystem *string `form:"ecosystem,omitempty" json:"ecosystem,omitempty"`

	// Name package name
	Name *string `form:"name,omitempty" json:"name,omitempty"`

	// Sort field to sort results by
	Sort *string `form:"sort,omitempty" json:"sort,omitempty"`

	// Order direction to sort results by
	Order *string `form:"order,omitempty" json:"order,omitempty"`
}

// GetRegistryMaintainersParams defines parameters for GetRegistryMaintainers.
type GetRegistryMaintainersParams struct {
	// Page pagination page number
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PerPage Number of records to return
	PerPage *int `form:"per_page,omitempty" json:"per_page,omitempty"`

	// CreatedAfter filter by created_at after given time
	CreatedAfter *time.Time `form:"created_after,omitempty" json:"created_after,omitempty"`

	// UpdatedAfter filter by updated_at after given time
	UpdatedAfter *time.Time `form:"updated_after,omitempty" json:"updated_after,omitempty"`

	// Sort field to order results by
	Sort *string `form:"sort,omitempty" json:"sort,omitempty"`

	// Order direction to order results by
	Order *string `form:"order,omitempty" json:"order,omitempty"`
}

// GetRegistryMaintainerPackagesParams defines parameters for GetRegistryMaintainerPackages.
type GetRegistryMaintainerPackagesParams struct {
	// Page pagination page number
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PerPage Number of records to return
	PerPage *int `form:"per_page,omitempty" json:"per_page,omitempty"`
}

// GetRegistryNamespacesParams defines parameters for GetRegistryNamespaces.
type GetRegistryNamespacesParams struct {
	// Page pagination page number
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PerPage Number of records to return
	PerPage *int `form:"per_page,omitempty" json:"per_page,omitempty"`
}

// GetRegistryNamespacePackagesParams defines parameters for GetRegistryNamespacePackages.
type GetRegistryNamespacePackagesParams struct {
	// Page pagination page number
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PerPage Number of records to return
	PerPage *int `form:"per_page,omitempty" json:"per_page,omitempty"`
}

// GetRegistryPackageNamesParams defines parameters for GetRegistryPackageNames.
type GetRegistryPackageNamesParams struct {
	// Page pagination page number
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PerPage Number of records to return
	PerPage *int `form:"per_page,omitempty" json:"per_page,omitempty"`

	// CreatedAfter filter by created_at after given time
	CreatedAfter *time.Time `form:"created_after,omitempty" json:"created_after,omitempty"`

	// UpdatedAfter filter by updated_at after given time
	UpdatedAfter *time.Time `form:"updated_after,omitempty" json:"updated_after,omitempty"`

	// CreatedBefore filter by created_at before given time
	CreatedBefore *time.Time `form:"created_before,omitempty" json:"created_before,omitempty"`

	// UpdatedBefore filter by updated_at before given time
	UpdatedBefore *time.Time `form:"updated_before,omitempty" json:"updated_before,omitempty"`

	// Sort field to order results by
	Sort *string `form:"sort,omitempty" json:"sort,omitempty"`

	// Order direction to order results by
	Order *string `form:"order,omitempty" json:"order,omitempty"`
}

// GetRegistryPackagesParams defines parameters for GetRegistryPackages.
type GetRegistryPackagesParams struct {
	// Page pagination page number
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PerPage Number of records to return
	PerPage *int `form:"per_page,omitempty" json:"per_page,omitempty"`

	// CreatedAfter filter by created_at after given time
	CreatedAfter *time.Time `form:"created_after,omitempty" json:"created_after,omitempty"`

	// UpdatedAfter filter by updated_at after given time
	UpdatedAfter *time.Time `form:"updated_after,omitempty" json:"updated_after,omitempty"`

	// CreatedBefore filter by created_at before given time
	CreatedBefore *time.Time `form:"created_before,omitempty" json:"created_before,omitempty"`

	// UpdatedBefore filter by updated_at before given time
	UpdatedBefore *time.Time `form:"updated_before,omitempty" json:"updated_before,omitempty"`

	// Critical filter by critical packages
	Critical *bool `form:"critical,omitempty" json:"critical,omitempty"`

	// Sort field to order results by
	Sort *string `form:"sort,omitempty" json:"sort,omitempty"`

	// Order direction to order results by
	Order *string `form:"order,omitempty" json:"order,omitempty"`
}

// GetRegistryPackageDependentPackageKindsParams defines parameters for GetRegistryPackageDependentPackageKinds.
type GetRegistryPackageDependentPackageKindsParams struct {
	// Latest filter by latest version
	Latest *bool `form:"latest,omitempty" json:"latest,omitempty"`
}

// GetRegistryPackageDependentPackagesParams defines parameters for GetRegistryPackageDependentPackages.
type GetRegistryPackageDependentPackagesParams struct {
	// Page pagination page number
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PerPage Number of records to return
	PerPage *int `form:"per_page,omitempty" json:"per_page,omitempty"`

	// CreatedAfter filter by created_at after given time
	CreatedAfter *time.Time `form:"created_after,omitempty" json:"created_after,omitempty"`

	// UpdatedAfter filter by updated_at after given time
	UpdatedAfter *time.Time `form:"updated_after,omitempty" json:"updated_after,omitempty"`

	// Sort field to order results by
	Sort *string `form:"sort,omitempty" json:"sort,omitempty"`

	// Order direction to order results by
	Order *string `form:"order,omitempty" json:"order,omitempty"`

	// Latest filter by latest version
	Latest *bool `form:"latest,omitempty" json:"latest,omitempty"`

	// Kind filter by dependency kind
	Kind *string `form:"kind,omitempty" json:"kind,omitempty"`
}

// GetRegistryPackageRelatedPackagesParams defines parameters for GetRegistryPackageRelatedPackages.
type GetRegistryPackageRelatedPackagesParams struct {
	// Page pagination page number
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PerPage Number of records to return
	PerPage *int `form:"per_page,omitempty" json:"per_page,omitempty"`

	// CreatedAfter filter by created_at after given time
	CreatedAfter *time.Time `form:"created_after,omitempty" json:"created_after,omitempty"`

	// UpdatedAfter filter by updated_at after given time
	UpdatedAfter *time.Time `form:"updated_after,omitempty" json:"updated_after,omitempty"`

	// Sort field to order results by
	Sort *string `form:"sort,omitempty" json:"sort,omitempty"`

	// Order direction to order results by
	Order *string `form:"order,omitempty" json:"order,omitempty"`
}

// GetRegistryPackageVersionsParams defines parameters for GetRegistryPackageVersions.
type GetRegistryPackageVersionsParams struct {
	// Page pagination page number
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PerPage Number of records to return
	PerPage *int `form:"per_page,omitempty" json:"per_page,omitempty"`

	// CreatedAfter filter by created_at after given time
	CreatedAfter *time.Time `form:"created_after,omitempty" json:"created_after,omitempty"`

	// UpdatedAfter filter by updated_at after given time
	UpdatedAfter *time.Time `form:"updated_after,omitempty" json:"updated_after,omitempty"`

	// PublishedAfter filter by published_at after given time
	PublishedAfter *time.Time `form:"published_after,omitempty" json:"published_after,omitempty"`

	// PublishedBefore filter by published_at before given time
	PublishedBefore *time.Time `form:"published_before,omitempty" json:"published_before,omitempty"`

	// CreatedBefore filter by created_at before given time
	CreatedBefore *time.Time `form:"created_before,omitempty" json:"created_before,omitempty"`

	// UpdatedBefore filter by updated_at before given time
	UpdatedBefore *time.Time `form:"updated_before,omitempty" json:"updated_before,omitempty"`

	// Sort field to order results by
	Sort *string `form:"sort,omitempty" json:"sort,omitempty"`

	// Order direction to order results by
	Order *string `form:"order,omitempty" json:"order,omitempty"`
}

// GetRegistryRecentVersionsParams defines parameters for GetRegistryRecentVersions.
type GetRegistryRecentVersionsParams struct {
	// Page pagination page number
	Page *int `form:"page,omitempty" json:"page,omitempty"`

	// PerPage Number of records to return
	PerPage *int `form:"per_page,omitempty" json:"per_page,omitempty"`

	// CreatedAfter filter by created_at after given time
	CreatedAfter *time.Time `form:"created_after,omitempty" json:"created_after,omitempty"`

	// UpdatedAfter filter by updated_at after given time
	UpdatedAfter *time.Time `form:"updated_after,omitempty" json:"updated_after,omitempty"`

	// PublishedAfter filter by published_at after given time
	PublishedAfter *time.Time `form:"published_after,omitempty" json:"published_after,omitempty"`

	// PublishedBefore filter by published_at before given time
	PublishedBefore *time.Time `form:"published_before,omitempty" json:"published_before,omitempty"`

	// CreatedBefore filter by created_at before given time
	CreatedBefore *time.Time `form:"created_before,omitempty" json:"created_before,omitempty"`

	// UpdatedBefore filter by updated_at before given time
	UpdatedBefore *time.Time `form:"updated_before,omitempty" json:"updated_before,omitempty"`

	// Sort field to order results by
	Sort *string `form:"sort,omitempty" json:"sort,omitempty"`

	// Order direction to order results by
	Order *string `form:"order,omitempty" json:"order,omitempty"`
}

// RequestEditorFn  is the function signature for the RequestEditor callback function
type RequestEditorFn func(ctx context.Context, req *http.Request) error

// Doer performs HTTP requests.
//
// The standard http.Client implements this interface.
type HttpRequestDoer interface {
	Do(req *http.Request) (*http.Response, error)
}

// Client which conforms to the OpenAPI3 specification for this service.
type Client struct {
	// The endpoint of the server conforming to this interface, with scheme,
	// https://api.deepmap.com for example. This can contain a path relative
	// to the server, such as https://api.deepmap.com/dev-test, and all the
	// paths in the swagger spec will be appended to the server.
	Server string

	// Doer for performing requests, typically a *http.Client with any
	// customized settings, such as certificate chains.
	Client HttpRequestDoer

	// A list of callbacks for modifying requests which are generated before sending over
	// the network.
	RequestEditors []RequestEditorFn
}

// ClientOption allows setting custom parameters during construction
type ClientOption func(*Client) error

// Creates a new Client, with reasonable defaults
func NewClient(server string, opts ...ClientOption) (*Client, error) {
	// create a client with sane default values
	client := Client{
		Server: server,
	}
	// mutate client and add all optional params
	for _, o := range opts {
		if err := o(&client); err != nil {
			return nil, err
		}
	}
	// ensure the server URL always has a trailing slash
	if !strings.HasSuffix(client.Server, "/") {
		client.Server += "/"
	}
	// create httpClient, if not already present
	if client.Client == nil {
		client.Client = &http.Client{}
	}
	return &client, nil
}

// WithHTTPClient allows overriding the default Doer, which is
// automatically created using http.Client. This is useful for tests.
func WithHTTPClient(doer HttpRequestDoer) ClientOption {
	return func(c *Client) error {
		c.Client = doer
		return nil
	}
}

// WithRequestEditorFn allows setting up a callback function, which will be
// called right before sending the request. This can be used to mutate the request.
func WithRequestEditorFn(fn RequestEditorFn) ClientOption {
	return func(c *Client) error {
		c.RequestEditors = append(c.RequestEditors, fn)
		return nil
	}
}

// The interface specification for the client above.
type ClientInterface interface {
	// GetDependencies request
	GetDependencies(ctx context.Context, params *GetDependenciesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetKeywords request
	GetKeywords(ctx context.Context, params *GetKeywordsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetKeyword request
	GetKeyword(ctx context.Context, keywordName string, params *GetKeywordParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// LookupPackage request
	LookupPackage(ctx context.Context, params *LookupPackageParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistries request
	GetRegistries(ctx context.Context, params *GetRegistriesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistry request
	GetRegistry(ctx context.Context, registryName string, params *GetRegistryParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// LookupRegistryPackage request
	LookupRegistryPackage(ctx context.Context, registryName string, params *LookupRegistryPackageParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryMaintainers request
	GetRegistryMaintainers(ctx context.Context, registryName string, params *GetRegistryMaintainersParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryMaintainer request
	GetRegistryMaintainer(ctx context.Context, registryName string, maintainerLoginOrUUID string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryMaintainerPackages request
	GetRegistryMaintainerPackages(ctx context.Context, registryName string, maintainerLoginOrUUID string, params *GetRegistryMaintainerPackagesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryNamespaces request
	GetRegistryNamespaces(ctx context.Context, registryName string, params *GetRegistryNamespacesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryNamespace request
	GetRegistryNamespace(ctx context.Context, registryName string, namespaceName string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryNamespacePackages request
	GetRegistryNamespacePackages(ctx context.Context, registryName string, namespaceName string, params *GetRegistryNamespacePackagesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryPackageNames request
	GetRegistryPackageNames(ctx context.Context, registryName string, params *GetRegistryPackageNamesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryPackages request
	GetRegistryPackages(ctx context.Context, registryName string, params *GetRegistryPackagesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryPackage request
	GetRegistryPackage(ctx context.Context, registryName string, packageName string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryPackageDependentPackageKinds request
	GetRegistryPackageDependentPackageKinds(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageDependentPackageKindsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryPackageDependentPackages request
	GetRegistryPackageDependentPackages(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageDependentPackagesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryPackageRelatedPackages request
	GetRegistryPackageRelatedPackages(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageRelatedPackagesParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryPackageVersionNumbers request
	GetRegistryPackageVersionNumbers(ctx context.Context, registryName string, packageName string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryPackageVersions request
	GetRegistryPackageVersions(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageVersionsParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryPackageVersion request
	GetRegistryPackageVersion(ctx context.Context, registryName string, packageName string, versionNumber string, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetRegistryRecentVersions request
	GetRegistryRecentVersions(ctx context.Context, registryName string, params *GetRegistryRecentVersionsParams, reqEditors ...RequestEditorFn) (*http.Response, error)
}

func (c *Client) GetDependencies(ctx context.Context, params *GetDependenciesParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetDependenciesRequest(c.Server, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetKeywords(ctx context.Context, params *GetKeywordsParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetKeywordsRequest(c.Server, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetKeyword(ctx context.Context, keywordName string, params *GetKeywordParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetKeywordRequest(c.Server, keywordName, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) LookupPackage(ctx context.Context, params *LookupPackageParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewLookupPackageRequest(c.Server, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistries(ctx context.Context, params *GetRegistriesParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistriesRequest(c.Server, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistry(ctx context.Context, registryName string, params *GetRegistryParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryRequest(c.Server, registryName, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) LookupRegistryPackage(ctx context.Context, registryName string, params *LookupRegistryPackageParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewLookupRegistryPackageRequest(c.Server, registryName, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryMaintainers(ctx context.Context, registryName string, params *GetRegistryMaintainersParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryMaintainersRequest(c.Server, registryName, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryMaintainer(ctx context.Context, registryName string, maintainerLoginOrUUID string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryMaintainerRequest(c.Server, registryName, maintainerLoginOrUUID)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryMaintainerPackages(ctx context.Context, registryName string, maintainerLoginOrUUID string, params *GetRegistryMaintainerPackagesParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryMaintainerPackagesRequest(c.Server, registryName, maintainerLoginOrUUID, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryNamespaces(ctx context.Context, registryName string, params *GetRegistryNamespacesParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryNamespacesRequest(c.Server, registryName, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryNamespace(ctx context.Context, registryName string, namespaceName string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryNamespaceRequest(c.Server, registryName, namespaceName)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryNamespacePackages(ctx context.Context, registryName string, namespaceName string, params *GetRegistryNamespacePackagesParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryNamespacePackagesRequest(c.Server, registryName, namespaceName, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryPackageNames(ctx context.Context, registryName string, params *GetRegistryPackageNamesParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryPackageNamesRequest(c.Server, registryName, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryPackages(ctx context.Context, registryName string, params *GetRegistryPackagesParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryPackagesRequest(c.Server, registryName, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryPackage(ctx context.Context, registryName string, packageName string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryPackageRequest(c.Server, registryName, packageName)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryPackageDependentPackageKinds(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageDependentPackageKindsParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryPackageDependentPackageKindsRequest(c.Server, registryName, packageName, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryPackageDependentPackages(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageDependentPackagesParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryPackageDependentPackagesRequest(c.Server, registryName, packageName, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryPackageRelatedPackages(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageRelatedPackagesParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryPackageRelatedPackagesRequest(c.Server, registryName, packageName, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryPackageVersionNumbers(ctx context.Context, registryName string, packageName string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryPackageVersionNumbersRequest(c.Server, registryName, packageName)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryPackageVersions(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageVersionsParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryPackageVersionsRequest(c.Server, registryName, packageName, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryPackageVersion(ctx context.Context, registryName string, packageName string, versionNumber string, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryPackageVersionRequest(c.Server, registryName, packageName, versionNumber)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

func (c *Client) GetRegistryRecentVersions(ctx context.Context, registryName string, params *GetRegistryRecentVersionsParams, reqEditors ...RequestEditorFn) (*http.Response, error) {
	req, err := NewGetRegistryRecentVersionsRequest(c.Server, registryName, params)
	if err != nil {
		return nil, err
	}
	req = req.WithContext(ctx)
	if err := c.applyEditors(ctx, req, reqEditors); err != nil {
		return nil, err
	}
	return c.Client.Do(req)
}

// NewGetDependenciesRequest generates requests for GetDependencies
func NewGetDependenciesRequest(server string, params *GetDependenciesParams) (*http.Request, error) {
	var err error

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/dependencies")
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Page != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page", runtime.ParamLocationQuery, *params.Page); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PerPage != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "per_page", runtime.ParamLocationQuery, *params.PerPage); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Ecosystem != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "ecosystem", runtime.ParamLocationQuery, *params.Ecosystem); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PackageName != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "package_name", runtime.ParamLocationQuery, *params.PackageName); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PackageId != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "package_id", runtime.ParamLocationQuery, *params.PackageId); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Requirements != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "requirements", runtime.ParamLocationQuery, *params.Requirements); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Kind != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "kind", runtime.ParamLocationQuery, *params.Kind); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Optional != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "optional", runtime.ParamLocationQuery, *params.Optional); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.After != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "after", runtime.ParamLocationQuery, *params.After); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetKeywordsRequest generates requests for GetKeywords
func NewGetKeywordsRequest(server string, params *GetKeywordsParams) (*http.Request, error) {
	var err error

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/keywords")
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Page != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page", runtime.ParamLocationQuery, *params.Page); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PerPage != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "per_page", runtime.ParamLocationQuery, *params.PerPage); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetKeywordRequest generates requests for GetKeyword
func NewGetKeywordRequest(server string, keywordName string, params *GetKeywordParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "keywordName", runtime.ParamLocationPath, keywordName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/keywords/%s", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Page != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page", runtime.ParamLocationQuery, *params.Page); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PerPage != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "per_page", runtime.ParamLocationQuery, *params.PerPage); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewLookupPackageRequest generates requests for LookupPackage
func NewLookupPackageRequest(server string, params *LookupPackageParams) (*http.Request, error) {
	var err error

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/packages/lookup")
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.RepositoryUrl != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "repository_url", runtime.ParamLocationQuery, *params.RepositoryUrl); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Purl != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "purl", runtime.ParamLocationQuery, *params.Purl); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Ecosystem != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "ecosystem", runtime.ParamLocationQuery, *params.Ecosystem); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Name != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "name", runtime.ParamLocationQuery, *params.Name); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sort != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sort", runtime.ParamLocationQuery, *params.Sort); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Order != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "order", runtime.ParamLocationQuery, *params.Order); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistriesRequest generates requests for GetRegistries
func NewGetRegistriesRequest(server string, params *GetRegistriesParams) (*http.Request, error) {
	var err error

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries")
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Page != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page", runtime.ParamLocationQuery, *params.Page); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PerPage != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "per_page", runtime.ParamLocationQuery, *params.PerPage); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryRequest generates requests for GetRegistry
func NewGetRegistryRequest(server string, registryName string, params *GetRegistryParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Page != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page", runtime.ParamLocationQuery, *params.Page); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PerPage != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "per_page", runtime.ParamLocationQuery, *params.PerPage); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewLookupRegistryPackageRequest generates requests for LookupRegistryPackage
func NewLookupRegistryPackageRequest(server string, registryName string, params *LookupRegistryPackageParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/lookup", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.RepositoryUrl != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "repository_url", runtime.ParamLocationQuery, *params.RepositoryUrl); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Purl != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "purl", runtime.ParamLocationQuery, *params.Purl); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Ecosystem != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "ecosystem", runtime.ParamLocationQuery, *params.Ecosystem); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Name != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "name", runtime.ParamLocationQuery, *params.Name); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sort != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sort", runtime.ParamLocationQuery, *params.Sort); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Order != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "order", runtime.ParamLocationQuery, *params.Order); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryMaintainersRequest generates requests for GetRegistryMaintainers
func NewGetRegistryMaintainersRequest(server string, registryName string, params *GetRegistryMaintainersParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/maintainers", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Page != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page", runtime.ParamLocationQuery, *params.Page); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PerPage != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "per_page", runtime.ParamLocationQuery, *params.PerPage); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.CreatedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "created_after", runtime.ParamLocationQuery, *params.CreatedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.UpdatedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "updated_after", runtime.ParamLocationQuery, *params.UpdatedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sort != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sort", runtime.ParamLocationQuery, *params.Sort); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Order != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "order", runtime.ParamLocationQuery, *params.Order); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryMaintainerRequest generates requests for GetRegistryMaintainer
func NewGetRegistryMaintainerRequest(server string, registryName string, maintainerLoginOrUUID string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "MaintainerLoginOrUUID", runtime.ParamLocationPath, maintainerLoginOrUUID)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/maintainers/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryMaintainerPackagesRequest generates requests for GetRegistryMaintainerPackages
func NewGetRegistryMaintainerPackagesRequest(server string, registryName string, maintainerLoginOrUUID string, params *GetRegistryMaintainerPackagesParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "MaintainerLoginOrUUID", runtime.ParamLocationPath, maintainerLoginOrUUID)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/maintainers/%s/packages", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Page != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page", runtime.ParamLocationQuery, *params.Page); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PerPage != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "per_page", runtime.ParamLocationQuery, *params.PerPage); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryNamespacesRequest generates requests for GetRegistryNamespaces
func NewGetRegistryNamespacesRequest(server string, registryName string, params *GetRegistryNamespacesParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/namespaces", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Page != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page", runtime.ParamLocationQuery, *params.Page); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PerPage != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "per_page", runtime.ParamLocationQuery, *params.PerPage); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryNamespaceRequest generates requests for GetRegistryNamespace
func NewGetRegistryNamespaceRequest(server string, registryName string, namespaceName string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "namespaceName", runtime.ParamLocationPath, namespaceName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/namespaces/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryNamespacePackagesRequest generates requests for GetRegistryNamespacePackages
func NewGetRegistryNamespacePackagesRequest(server string, registryName string, namespaceName string, params *GetRegistryNamespacePackagesParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "namespaceName", runtime.ParamLocationPath, namespaceName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/namespaces/%s/packages", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Page != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page", runtime.ParamLocationQuery, *params.Page); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PerPage != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "per_page", runtime.ParamLocationQuery, *params.PerPage); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryPackageNamesRequest generates requests for GetRegistryPackageNames
func NewGetRegistryPackageNamesRequest(server string, registryName string, params *GetRegistryPackageNamesParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/package_names", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Page != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page", runtime.ParamLocationQuery, *params.Page); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PerPage != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "per_page", runtime.ParamLocationQuery, *params.PerPage); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.CreatedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "created_after", runtime.ParamLocationQuery, *params.CreatedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.UpdatedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "updated_after", runtime.ParamLocationQuery, *params.UpdatedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.CreatedBefore != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "created_before", runtime.ParamLocationQuery, *params.CreatedBefore); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.UpdatedBefore != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "updated_before", runtime.ParamLocationQuery, *params.UpdatedBefore); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sort != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sort", runtime.ParamLocationQuery, *params.Sort); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Order != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "order", runtime.ParamLocationQuery, *params.Order); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryPackagesRequest generates requests for GetRegistryPackages
func NewGetRegistryPackagesRequest(server string, registryName string, params *GetRegistryPackagesParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/packages", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Page != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page", runtime.ParamLocationQuery, *params.Page); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PerPage != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "per_page", runtime.ParamLocationQuery, *params.PerPage); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.CreatedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "created_after", runtime.ParamLocationQuery, *params.CreatedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.UpdatedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "updated_after", runtime.ParamLocationQuery, *params.UpdatedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.CreatedBefore != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "created_before", runtime.ParamLocationQuery, *params.CreatedBefore); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.UpdatedBefore != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "updated_before", runtime.ParamLocationQuery, *params.UpdatedBefore); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Critical != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "critical", runtime.ParamLocationQuery, *params.Critical); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sort != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sort", runtime.ParamLocationQuery, *params.Sort); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Order != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "order", runtime.ParamLocationQuery, *params.Order); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryPackageRequest generates requests for GetRegistryPackage
func NewGetRegistryPackageRequest(server string, registryName string, packageName string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "packageName", runtime.ParamLocationPath, packageName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/packages/%s", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryPackageDependentPackageKindsRequest generates requests for GetRegistryPackageDependentPackageKinds
func NewGetRegistryPackageDependentPackageKindsRequest(server string, registryName string, packageName string, params *GetRegistryPackageDependentPackageKindsParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "packageName", runtime.ParamLocationPath, packageName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/packages/%s/dependent_package_kinds", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Latest != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "latest", runtime.ParamLocationQuery, *params.Latest); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryPackageDependentPackagesRequest generates requests for GetRegistryPackageDependentPackages
func NewGetRegistryPackageDependentPackagesRequest(server string, registryName string, packageName string, params *GetRegistryPackageDependentPackagesParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "packageName", runtime.ParamLocationPath, packageName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/packages/%s/dependent_packages", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Page != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page", runtime.ParamLocationQuery, *params.Page); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PerPage != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "per_page", runtime.ParamLocationQuery, *params.PerPage); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.CreatedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "created_after", runtime.ParamLocationQuery, *params.CreatedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.UpdatedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "updated_after", runtime.ParamLocationQuery, *params.UpdatedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sort != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sort", runtime.ParamLocationQuery, *params.Sort); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Order != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "order", runtime.ParamLocationQuery, *params.Order); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Latest != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "latest", runtime.ParamLocationQuery, *params.Latest); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Kind != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "kind", runtime.ParamLocationQuery, *params.Kind); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryPackageRelatedPackagesRequest generates requests for GetRegistryPackageRelatedPackages
func NewGetRegistryPackageRelatedPackagesRequest(server string, registryName string, packageName string, params *GetRegistryPackageRelatedPackagesParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "packageName", runtime.ParamLocationPath, packageName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/packages/%s/related_packages", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Page != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page", runtime.ParamLocationQuery, *params.Page); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PerPage != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "per_page", runtime.ParamLocationQuery, *params.PerPage); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.CreatedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "created_after", runtime.ParamLocationQuery, *params.CreatedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.UpdatedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "updated_after", runtime.ParamLocationQuery, *params.UpdatedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sort != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sort", runtime.ParamLocationQuery, *params.Sort); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Order != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "order", runtime.ParamLocationQuery, *params.Order); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryPackageVersionNumbersRequest generates requests for GetRegistryPackageVersionNumbers
func NewGetRegistryPackageVersionNumbersRequest(server string, registryName string, packageName string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "packageName", runtime.ParamLocationPath, packageName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/packages/%s/version_numbers", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryPackageVersionsRequest generates requests for GetRegistryPackageVersions
func NewGetRegistryPackageVersionsRequest(server string, registryName string, packageName string, params *GetRegistryPackageVersionsParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "packageName", runtime.ParamLocationPath, packageName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/packages/%s/versions", pathParam0, pathParam1)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Page != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page", runtime.ParamLocationQuery, *params.Page); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PerPage != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "per_page", runtime.ParamLocationQuery, *params.PerPage); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.CreatedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "created_after", runtime.ParamLocationQuery, *params.CreatedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.UpdatedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "updated_after", runtime.ParamLocationQuery, *params.UpdatedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PublishedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "published_after", runtime.ParamLocationQuery, *params.PublishedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PublishedBefore != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "published_before", runtime.ParamLocationQuery, *params.PublishedBefore); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.CreatedBefore != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "created_before", runtime.ParamLocationQuery, *params.CreatedBefore); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.UpdatedBefore != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "updated_before", runtime.ParamLocationQuery, *params.UpdatedBefore); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sort != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sort", runtime.ParamLocationQuery, *params.Sort); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Order != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "order", runtime.ParamLocationQuery, *params.Order); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryPackageVersionRequest generates requests for GetRegistryPackageVersion
func NewGetRegistryPackageVersionRequest(server string, registryName string, packageName string, versionNumber string) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	var pathParam1 string

	pathParam1, err = runtime.StyleParamWithLocation("simple", false, "packageName", runtime.ParamLocationPath, packageName)
	if err != nil {
		return nil, err
	}

	var pathParam2 string

	pathParam2, err = runtime.StyleParamWithLocation("simple", false, "versionNumber", runtime.ParamLocationPath, versionNumber)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/packages/%s/versions/%s", pathParam0, pathParam1, pathParam2)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

// NewGetRegistryRecentVersionsRequest generates requests for GetRegistryRecentVersions
func NewGetRegistryRecentVersionsRequest(server string, registryName string, params *GetRegistryRecentVersionsParams) (*http.Request, error) {
	var err error

	var pathParam0 string

	pathParam0, err = runtime.StyleParamWithLocation("simple", false, "registryName", runtime.ParamLocationPath, registryName)
	if err != nil {
		return nil, err
	}

	serverURL, err := url.Parse(server)
	if err != nil {
		return nil, err
	}

	operationPath := fmt.Sprintf("/registries/%s/versions", pathParam0)
	if operationPath[0] == '/' {
		operationPath = "." + operationPath
	}

	queryURL, err := serverURL.Parse(operationPath)
	if err != nil {
		return nil, err
	}

	if params != nil {
		queryValues := queryURL.Query()

		if params.Page != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "page", runtime.ParamLocationQuery, *params.Page); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PerPage != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "per_page", runtime.ParamLocationQuery, *params.PerPage); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.CreatedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "created_after", runtime.ParamLocationQuery, *params.CreatedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.UpdatedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "updated_after", runtime.ParamLocationQuery, *params.UpdatedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PublishedAfter != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "published_after", runtime.ParamLocationQuery, *params.PublishedAfter); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.PublishedBefore != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "published_before", runtime.ParamLocationQuery, *params.PublishedBefore); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.CreatedBefore != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "created_before", runtime.ParamLocationQuery, *params.CreatedBefore); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.UpdatedBefore != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "updated_before", runtime.ParamLocationQuery, *params.UpdatedBefore); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Sort != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "sort", runtime.ParamLocationQuery, *params.Sort); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		if params.Order != nil {

			if queryFrag, err := runtime.StyleParamWithLocation("form", true, "order", runtime.ParamLocationQuery, *params.Order); err != nil {
				return nil, err
			} else if parsed, err := url.ParseQuery(queryFrag); err != nil {
				return nil, err
			} else {
				for k, v := range parsed {
					for _, v2 := range v {
						queryValues.Add(k, v2)
					}
				}
			}

		}

		queryURL.RawQuery = queryValues.Encode()
	}

	req, err := http.NewRequest("GET", queryURL.String(), nil)
	if err != nil {
		return nil, err
	}

	return req, nil
}

func (c *Client) applyEditors(ctx context.Context, req *http.Request, additionalEditors []RequestEditorFn) error {
	for _, r := range c.RequestEditors {
		if err := r(ctx, req); err != nil {
			return err
		}
	}
	for _, r := range additionalEditors {
		if err := r(ctx, req); err != nil {
			return err
		}
	}
	return nil
}

// ClientWithResponses builds on ClientInterface to offer response payloads
type ClientWithResponses struct {
	ClientInterface
}

// NewClientWithResponses creates a new ClientWithResponses, which wraps
// Client with return type handling
func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error) {
	client, err := NewClient(server, opts...)
	if err != nil {
		return nil, err
	}
	return &ClientWithResponses{client}, nil
}

// WithBaseURL overrides the baseURL.
func WithBaseURL(baseURL string) ClientOption {
	return func(c *Client) error {
		newBaseURL, err := url.Parse(baseURL)
		if err != nil {
			return err
		}
		c.Server = newBaseURL.String()
		return nil
	}
}

// ClientWithResponsesInterface is the interface specification for the client with responses above.
type ClientWithResponsesInterface interface {
	// GetDependenciesWithResponse request
	GetDependenciesWithResponse(ctx context.Context, params *GetDependenciesParams, reqEditors ...RequestEditorFn) (*GetDependenciesResponse, error)

	// GetKeywordsWithResponse request
	GetKeywordsWithResponse(ctx context.Context, params *GetKeywordsParams, reqEditors ...RequestEditorFn) (*GetKeywordsResponse, error)

	// GetKeywordWithResponse request
	GetKeywordWithResponse(ctx context.Context, keywordName string, params *GetKeywordParams, reqEditors ...RequestEditorFn) (*GetKeywordResponse, error)

	// LookupPackageWithResponse request
	LookupPackageWithResponse(ctx context.Context, params *LookupPackageParams, reqEditors ...RequestEditorFn) (*LookupPackageResponse, error)

	// GetRegistriesWithResponse request
	GetRegistriesWithResponse(ctx context.Context, params *GetRegistriesParams, reqEditors ...RequestEditorFn) (*GetRegistriesResponse, error)

	// GetRegistryWithResponse request
	GetRegistryWithResponse(ctx context.Context, registryName string, params *GetRegistryParams, reqEditors ...RequestEditorFn) (*GetRegistryResponse, error)

	// LookupRegistryPackageWithResponse request
	LookupRegistryPackageWithResponse(ctx context.Context, registryName string, params *LookupRegistryPackageParams, reqEditors ...RequestEditorFn) (*LookupRegistryPackageResponse, error)

	// GetRegistryMaintainersWithResponse request
	GetRegistryMaintainersWithResponse(ctx context.Context, registryName string, params *GetRegistryMaintainersParams, reqEditors ...RequestEditorFn) (*GetRegistryMaintainersResponse, error)

	// GetRegistryMaintainerWithResponse request
	GetRegistryMaintainerWithResponse(ctx context.Context, registryName string, maintainerLoginOrUUID string, reqEditors ...RequestEditorFn) (*GetRegistryMaintainerResponse, error)

	// GetRegistryMaintainerPackagesWithResponse request
	GetRegistryMaintainerPackagesWithResponse(ctx context.Context, registryName string, maintainerLoginOrUUID string, params *GetRegistryMaintainerPackagesParams, reqEditors ...RequestEditorFn) (*GetRegistryMaintainerPackagesResponse, error)

	// GetRegistryNamespacesWithResponse request
	GetRegistryNamespacesWithResponse(ctx context.Context, registryName string, params *GetRegistryNamespacesParams, reqEditors ...RequestEditorFn) (*GetRegistryNamespacesResponse, error)

	// GetRegistryNamespaceWithResponse request
	GetRegistryNamespaceWithResponse(ctx context.Context, registryName string, namespaceName string, reqEditors ...RequestEditorFn) (*GetRegistryNamespaceResponse, error)

	// GetRegistryNamespacePackagesWithResponse request
	GetRegistryNamespacePackagesWithResponse(ctx context.Context, registryName string, namespaceName string, params *GetRegistryNamespacePackagesParams, reqEditors ...RequestEditorFn) (*GetRegistryNamespacePackagesResponse, error)

	// GetRegistryPackageNamesWithResponse request
	GetRegistryPackageNamesWithResponse(ctx context.Context, registryName string, params *GetRegistryPackageNamesParams, reqEditors ...RequestEditorFn) (*GetRegistryPackageNamesResponse, error)

	// GetRegistryPackagesWithResponse request
	GetRegistryPackagesWithResponse(ctx context.Context, registryName string, params *GetRegistryPackagesParams, reqEditors ...RequestEditorFn) (*GetRegistryPackagesResponse, error)

	// GetRegistryPackageWithResponse request
	GetRegistryPackageWithResponse(ctx context.Context, registryName string, packageName string, reqEditors ...RequestEditorFn) (*GetRegistryPackageResponse, error)

	// GetRegistryPackageDependentPackageKindsWithResponse request
	GetRegistryPackageDependentPackageKindsWithResponse(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageDependentPackageKindsParams, reqEditors ...RequestEditorFn) (*GetRegistryPackageDependentPackageKindsResponse, error)

	// GetRegistryPackageDependentPackagesWithResponse request
	GetRegistryPackageDependentPackagesWithResponse(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageDependentPackagesParams, reqEditors ...RequestEditorFn) (*GetRegistryPackageDependentPackagesResponse, error)

	// GetRegistryPackageRelatedPackagesWithResponse request
	GetRegistryPackageRelatedPackagesWithResponse(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageRelatedPackagesParams, reqEditors ...RequestEditorFn) (*GetRegistryPackageRelatedPackagesResponse, error)

	// GetRegistryPackageVersionNumbersWithResponse request
	GetRegistryPackageVersionNumbersWithResponse(ctx context.Context, registryName string, packageName string, reqEditors ...RequestEditorFn) (*GetRegistryPackageVersionNumbersResponse, error)

	// GetRegistryPackageVersionsWithResponse request
	GetRegistryPackageVersionsWithResponse(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageVersionsParams, reqEditors ...RequestEditorFn) (*GetRegistryPackageVersionsResponse, error)

	// GetRegistryPackageVersionWithResponse request
	GetRegistryPackageVersionWithResponse(ctx context.Context, registryName string, packageName string, versionNumber string, reqEditors ...RequestEditorFn) (*GetRegistryPackageVersionResponse, error)

	// GetRegistryRecentVersionsWithResponse request
	GetRegistryRecentVersionsWithResponse(ctx context.Context, registryName string, params *GetRegistryRecentVersionsParams, reqEditors ...RequestEditorFn) (*GetRegistryRecentVersionsResponse, error)
}

type GetDependenciesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]Dependency
}

// Status returns HTTPResponse.Status
func (r GetDependenciesResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetDependenciesResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetKeywordsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]Keyword
}

// Status returns HTTPResponse.Status
func (r GetKeywordsResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetKeywordsResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetKeywordResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *KeywordWithPackages
}

// Status returns HTTPResponse.Status
func (r GetKeywordResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetKeywordResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type LookupPackageResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]PackageWithRegistry
}

// Status returns HTTPResponse.Status
func (r LookupPackageResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r LookupPackageResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistriesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]Registry
}

// Status returns HTTPResponse.Status
func (r GetRegistriesResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistriesResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Registry
}

// Status returns HTTPResponse.Status
func (r GetRegistryResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type LookupRegistryPackageResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]PackageWithRegistry
}

// Status returns HTTPResponse.Status
func (r LookupRegistryPackageResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r LookupRegistryPackageResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryMaintainersResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]Maintainer
}

// Status returns HTTPResponse.Status
func (r GetRegistryMaintainersResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryMaintainersResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryMaintainerResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Maintainer
}

// Status returns HTTPResponse.Status
func (r GetRegistryMaintainerResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryMaintainerResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryMaintainerPackagesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]Package
}

// Status returns HTTPResponse.Status
func (r GetRegistryMaintainerPackagesResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryMaintainerPackagesResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryNamespacesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]Namespace
}

// Status returns HTTPResponse.Status
func (r GetRegistryNamespacesResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryNamespacesResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryNamespaceResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Namespace
}

// Status returns HTTPResponse.Status
func (r GetRegistryNamespaceResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryNamespaceResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryNamespacePackagesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]Package
}

// Status returns HTTPResponse.Status
func (r GetRegistryNamespacePackagesResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryNamespacePackagesResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryPackageNamesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]string
}

// Status returns HTTPResponse.Status
func (r GetRegistryPackageNamesResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryPackageNamesResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryPackagesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]Package
}

// Status returns HTTPResponse.Status
func (r GetRegistryPackagesResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryPackagesResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryPackageResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *Package
}

// Status returns HTTPResponse.Status
func (r GetRegistryPackageResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryPackageResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryPackageDependentPackageKindsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]string
}

// Status returns HTTPResponse.Status
func (r GetRegistryPackageDependentPackageKindsResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryPackageDependentPackageKindsResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryPackageDependentPackagesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]Package
}

// Status returns HTTPResponse.Status
func (r GetRegistryPackageDependentPackagesResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryPackageDependentPackagesResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryPackageRelatedPackagesResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]Package
}

// Status returns HTTPResponse.Status
func (r GetRegistryPackageRelatedPackagesResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryPackageRelatedPackagesResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryPackageVersionNumbersResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]string
}

// Status returns HTTPResponse.Status
func (r GetRegistryPackageVersionNumbersResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryPackageVersionNumbersResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryPackageVersionsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]Version
}

// Status returns HTTPResponse.Status
func (r GetRegistryPackageVersionsResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryPackageVersionsResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryPackageVersionResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *VersionWithDependencies
}

// Status returns HTTPResponse.Status
func (r GetRegistryPackageVersionResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryPackageVersionResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

type GetRegistryRecentVersionsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *[]VersionWithPackage
}

// Status returns HTTPResponse.Status
func (r GetRegistryRecentVersionsResponse) Status() string {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.Status
	}
	return http.StatusText(0)
}

// StatusCode returns HTTPResponse.StatusCode
func (r GetRegistryRecentVersionsResponse) StatusCode() int {
	if r.HTTPResponse != nil {
		return r.HTTPResponse.StatusCode
	}
	return 0
}

// GetDependenciesWithResponse request returning *GetDependenciesResponse
func (c *ClientWithResponses) GetDependenciesWithResponse(ctx context.Context, params *GetDependenciesParams, reqEditors ...RequestEditorFn) (*GetDependenciesResponse, error) {
	rsp, err := c.GetDependencies(ctx, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetDependenciesResponse(rsp)
}

// GetKeywordsWithResponse request returning *GetKeywordsResponse
func (c *ClientWithResponses) GetKeywordsWithResponse(ctx context.Context, params *GetKeywordsParams, reqEditors ...RequestEditorFn) (*GetKeywordsResponse, error) {
	rsp, err := c.GetKeywords(ctx, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetKeywordsResponse(rsp)
}

// GetKeywordWithResponse request returning *GetKeywordResponse
func (c *ClientWithResponses) GetKeywordWithResponse(ctx context.Context, keywordName string, params *GetKeywordParams, reqEditors ...RequestEditorFn) (*GetKeywordResponse, error) {
	rsp, err := c.GetKeyword(ctx, keywordName, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetKeywordResponse(rsp)
}

// LookupPackageWithResponse request returning *LookupPackageResponse
func (c *ClientWithResponses) LookupPackageWithResponse(ctx context.Context, params *LookupPackageParams, reqEditors ...RequestEditorFn) (*LookupPackageResponse, error) {
	rsp, err := c.LookupPackage(ctx, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseLookupPackageResponse(rsp)
}

// GetRegistriesWithResponse request returning *GetRegistriesResponse
func (c *ClientWithResponses) GetRegistriesWithResponse(ctx context.Context, params *GetRegistriesParams, reqEditors ...RequestEditorFn) (*GetRegistriesResponse, error) {
	rsp, err := c.GetRegistries(ctx, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistriesResponse(rsp)
}

// GetRegistryWithResponse request returning *GetRegistryResponse
func (c *ClientWithResponses) GetRegistryWithResponse(ctx context.Context, registryName string, params *GetRegistryParams, reqEditors ...RequestEditorFn) (*GetRegistryResponse, error) {
	rsp, err := c.GetRegistry(ctx, registryName, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryResponse(rsp)
}

// LookupRegistryPackageWithResponse request returning *LookupRegistryPackageResponse
func (c *ClientWithResponses) LookupRegistryPackageWithResponse(ctx context.Context, registryName string, params *LookupRegistryPackageParams, reqEditors ...RequestEditorFn) (*LookupRegistryPackageResponse, error) {
	rsp, err := c.LookupRegistryPackage(ctx, registryName, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseLookupRegistryPackageResponse(rsp)
}

// GetRegistryMaintainersWithResponse request returning *GetRegistryMaintainersResponse
func (c *ClientWithResponses) GetRegistryMaintainersWithResponse(ctx context.Context, registryName string, params *GetRegistryMaintainersParams, reqEditors ...RequestEditorFn) (*GetRegistryMaintainersResponse, error) {
	rsp, err := c.GetRegistryMaintainers(ctx, registryName, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryMaintainersResponse(rsp)
}

// GetRegistryMaintainerWithResponse request returning *GetRegistryMaintainerResponse
func (c *ClientWithResponses) GetRegistryMaintainerWithResponse(ctx context.Context, registryName string, maintainerLoginOrUUID string, reqEditors ...RequestEditorFn) (*GetRegistryMaintainerResponse, error) {
	rsp, err := c.GetRegistryMaintainer(ctx, registryName, maintainerLoginOrUUID, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryMaintainerResponse(rsp)
}

// GetRegistryMaintainerPackagesWithResponse request returning *GetRegistryMaintainerPackagesResponse
func (c *ClientWithResponses) GetRegistryMaintainerPackagesWithResponse(ctx context.Context, registryName string, maintainerLoginOrUUID string, params *GetRegistryMaintainerPackagesParams, reqEditors ...RequestEditorFn) (*GetRegistryMaintainerPackagesResponse, error) {
	rsp, err := c.GetRegistryMaintainerPackages(ctx, registryName, maintainerLoginOrUUID, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryMaintainerPackagesResponse(rsp)
}

// GetRegistryNamespacesWithResponse request returning *GetRegistryNamespacesResponse
func (c *ClientWithResponses) GetRegistryNamespacesWithResponse(ctx context.Context, registryName string, params *GetRegistryNamespacesParams, reqEditors ...RequestEditorFn) (*GetRegistryNamespacesResponse, error) {
	rsp, err := c.GetRegistryNamespaces(ctx, registryName, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryNamespacesResponse(rsp)
}

// GetRegistryNamespaceWithResponse request returning *GetRegistryNamespaceResponse
func (c *ClientWithResponses) GetRegistryNamespaceWithResponse(ctx context.Context, registryName string, namespaceName string, reqEditors ...RequestEditorFn) (*GetRegistryNamespaceResponse, error) {
	rsp, err := c.GetRegistryNamespace(ctx, registryName, namespaceName, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryNamespaceResponse(rsp)
}

// GetRegistryNamespacePackagesWithResponse request returning *GetRegistryNamespacePackagesResponse
func (c *ClientWithResponses) GetRegistryNamespacePackagesWithResponse(ctx context.Context, registryName string, namespaceName string, params *GetRegistryNamespacePackagesParams, reqEditors ...RequestEditorFn) (*GetRegistryNamespacePackagesResponse, error) {
	rsp, err := c.GetRegistryNamespacePackages(ctx, registryName, namespaceName, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryNamespacePackagesResponse(rsp)
}

// GetRegistryPackageNamesWithResponse request returning *GetRegistryPackageNamesResponse
func (c *ClientWithResponses) GetRegistryPackageNamesWithResponse(ctx context.Context, registryName string, params *GetRegistryPackageNamesParams, reqEditors ...RequestEditorFn) (*GetRegistryPackageNamesResponse, error) {
	rsp, err := c.GetRegistryPackageNames(ctx, registryName, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryPackageNamesResponse(rsp)
}

// GetRegistryPackagesWithResponse request returning *GetRegistryPackagesResponse
func (c *ClientWithResponses) GetRegistryPackagesWithResponse(ctx context.Context, registryName string, params *GetRegistryPackagesParams, reqEditors ...RequestEditorFn) (*GetRegistryPackagesResponse, error) {
	rsp, err := c.GetRegistryPackages(ctx, registryName, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryPackagesResponse(rsp)
}

// GetRegistryPackageWithResponse request returning *GetRegistryPackageResponse
func (c *ClientWithResponses) GetRegistryPackageWithResponse(ctx context.Context, registryName string, packageName string, reqEditors ...RequestEditorFn) (*GetRegistryPackageResponse, error) {
	rsp, err := c.GetRegistryPackage(ctx, registryName, packageName, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryPackageResponse(rsp)
}

// GetRegistryPackageDependentPackageKindsWithResponse request returning *GetRegistryPackageDependentPackageKindsResponse
func (c *ClientWithResponses) GetRegistryPackageDependentPackageKindsWithResponse(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageDependentPackageKindsParams, reqEditors ...RequestEditorFn) (*GetRegistryPackageDependentPackageKindsResponse, error) {
	rsp, err := c.GetRegistryPackageDependentPackageKinds(ctx, registryName, packageName, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryPackageDependentPackageKindsResponse(rsp)
}

// GetRegistryPackageDependentPackagesWithResponse request returning *GetRegistryPackageDependentPackagesResponse
func (c *ClientWithResponses) GetRegistryPackageDependentPackagesWithResponse(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageDependentPackagesParams, reqEditors ...RequestEditorFn) (*GetRegistryPackageDependentPackagesResponse, error) {
	rsp, err := c.GetRegistryPackageDependentPackages(ctx, registryName, packageName, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryPackageDependentPackagesResponse(rsp)
}

// GetRegistryPackageRelatedPackagesWithResponse request returning *GetRegistryPackageRelatedPackagesResponse
func (c *ClientWithResponses) GetRegistryPackageRelatedPackagesWithResponse(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageRelatedPackagesParams, reqEditors ...RequestEditorFn) (*GetRegistryPackageRelatedPackagesResponse, error) {
	rsp, err := c.GetRegistryPackageRelatedPackages(ctx, registryName, packageName, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryPackageRelatedPackagesResponse(rsp)
}

// GetRegistryPackageVersionNumbersWithResponse request returning *GetRegistryPackageVersionNumbersResponse
func (c *ClientWithResponses) GetRegistryPackageVersionNumbersWithResponse(ctx context.Context, registryName string, packageName string, reqEditors ...RequestEditorFn) (*GetRegistryPackageVersionNumbersResponse, error) {
	rsp, err := c.GetRegistryPackageVersionNumbers(ctx, registryName, packageName, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryPackageVersionNumbersResponse(rsp)
}

// GetRegistryPackageVersionsWithResponse request returning *GetRegistryPackageVersionsResponse
func (c *ClientWithResponses) GetRegistryPackageVersionsWithResponse(ctx context.Context, registryName string, packageName string, params *GetRegistryPackageVersionsParams, reqEditors ...RequestEditorFn) (*GetRegistryPackageVersionsResponse, error) {
	rsp, err := c.GetRegistryPackageVersions(ctx, registryName, packageName, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryPackageVersionsResponse(rsp)
}

// GetRegistryPackageVersionWithResponse request returning *GetRegistryPackageVersionResponse
func (c *ClientWithResponses) GetRegistryPackageVersionWithResponse(ctx context.Context, registryName string, packageName string, versionNumber string, reqEditors ...RequestEditorFn) (*GetRegistryPackageVersionResponse, error) {
	rsp, err := c.GetRegistryPackageVersion(ctx, registryName, packageName, versionNumber, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryPackageVersionResponse(rsp)
}

// GetRegistryRecentVersionsWithResponse request returning *GetRegistryRecentVersionsResponse
func (c *ClientWithResponses) GetRegistryRecentVersionsWithResponse(ctx context.Context, registryName string, params *GetRegistryRecentVersionsParams, reqEditors ...RequestEditorFn) (*GetRegistryRecentVersionsResponse, error) {
	rsp, err := c.GetRegistryRecentVersions(ctx, registryName, params, reqEditors...)
	if err != nil {
		return nil, err
	}
	return ParseGetRegistryRecentVersionsResponse(rsp)
}

// ParseGetDependenciesResponse parses an HTTP response from a GetDependenciesWithResponse call
func ParseGetDependenciesResponse(rsp *http.Response) (*GetDependenciesResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetDependenciesResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []Dependency
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetKeywordsResponse parses an HTTP response from a GetKeywordsWithResponse call
func ParseGetKeywordsResponse(rsp *http.Response) (*GetKeywordsResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetKeywordsResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []Keyword
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetKeywordResponse parses an HTTP response from a GetKeywordWithResponse call
func ParseGetKeywordResponse(rsp *http.Response) (*GetKeywordResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetKeywordResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest KeywordWithPackages
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseLookupPackageResponse parses an HTTP response from a LookupPackageWithResponse call
func ParseLookupPackageResponse(rsp *http.Response) (*LookupPackageResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &LookupPackageResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []PackageWithRegistry
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistriesResponse parses an HTTP response from a GetRegistriesWithResponse call
func ParseGetRegistriesResponse(rsp *http.Response) (*GetRegistriesResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistriesResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []Registry
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryResponse parses an HTTP response from a GetRegistryWithResponse call
func ParseGetRegistryResponse(rsp *http.Response) (*GetRegistryResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Registry
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseLookupRegistryPackageResponse parses an HTTP response from a LookupRegistryPackageWithResponse call
func ParseLookupRegistryPackageResponse(rsp *http.Response) (*LookupRegistryPackageResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &LookupRegistryPackageResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []PackageWithRegistry
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryMaintainersResponse parses an HTTP response from a GetRegistryMaintainersWithResponse call
func ParseGetRegistryMaintainersResponse(rsp *http.Response) (*GetRegistryMaintainersResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryMaintainersResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []Maintainer
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryMaintainerResponse parses an HTTP response from a GetRegistryMaintainerWithResponse call
func ParseGetRegistryMaintainerResponse(rsp *http.Response) (*GetRegistryMaintainerResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryMaintainerResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Maintainer
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryMaintainerPackagesResponse parses an HTTP response from a GetRegistryMaintainerPackagesWithResponse call
func ParseGetRegistryMaintainerPackagesResponse(rsp *http.Response) (*GetRegistryMaintainerPackagesResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryMaintainerPackagesResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []Package
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryNamespacesResponse parses an HTTP response from a GetRegistryNamespacesWithResponse call
func ParseGetRegistryNamespacesResponse(rsp *http.Response) (*GetRegistryNamespacesResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryNamespacesResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []Namespace
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryNamespaceResponse parses an HTTP response from a GetRegistryNamespaceWithResponse call
func ParseGetRegistryNamespaceResponse(rsp *http.Response) (*GetRegistryNamespaceResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryNamespaceResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Namespace
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryNamespacePackagesResponse parses an HTTP response from a GetRegistryNamespacePackagesWithResponse call
func ParseGetRegistryNamespacePackagesResponse(rsp *http.Response) (*GetRegistryNamespacePackagesResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryNamespacePackagesResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []Package
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryPackageNamesResponse parses an HTTP response from a GetRegistryPackageNamesWithResponse call
func ParseGetRegistryPackageNamesResponse(rsp *http.Response) (*GetRegistryPackageNamesResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryPackageNamesResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []string
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryPackagesResponse parses an HTTP response from a GetRegistryPackagesWithResponse call
func ParseGetRegistryPackagesResponse(rsp *http.Response) (*GetRegistryPackagesResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryPackagesResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []Package
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryPackageResponse parses an HTTP response from a GetRegistryPackageWithResponse call
func ParseGetRegistryPackageResponse(rsp *http.Response) (*GetRegistryPackageResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryPackageResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest Package
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryPackageDependentPackageKindsResponse parses an HTTP response from a GetRegistryPackageDependentPackageKindsWithResponse call
func ParseGetRegistryPackageDependentPackageKindsResponse(rsp *http.Response) (*GetRegistryPackageDependentPackageKindsResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryPackageDependentPackageKindsResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []string
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryPackageDependentPackagesResponse parses an HTTP response from a GetRegistryPackageDependentPackagesWithResponse call
func ParseGetRegistryPackageDependentPackagesResponse(rsp *http.Response) (*GetRegistryPackageDependentPackagesResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryPackageDependentPackagesResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []Package
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryPackageRelatedPackagesResponse parses an HTTP response from a GetRegistryPackageRelatedPackagesWithResponse call
func ParseGetRegistryPackageRelatedPackagesResponse(rsp *http.Response) (*GetRegistryPackageRelatedPackagesResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryPackageRelatedPackagesResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []Package
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryPackageVersionNumbersResponse parses an HTTP response from a GetRegistryPackageVersionNumbersWithResponse call
func ParseGetRegistryPackageVersionNumbersResponse(rsp *http.Response) (*GetRegistryPackageVersionNumbersResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryPackageVersionNumbersResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []string
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryPackageVersionsResponse parses an HTTP response from a GetRegistryPackageVersionsWithResponse call
func ParseGetRegistryPackageVersionsResponse(rsp *http.Response) (*GetRegistryPackageVersionsResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryPackageVersionsResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []Version
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryPackageVersionResponse parses an HTTP response from a GetRegistryPackageVersionWithResponse call
func ParseGetRegistryPackageVersionResponse(rsp *http.Response) (*GetRegistryPackageVersionResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryPackageVersionResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest VersionWithDependencies
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}

// ParseGetRegistryRecentVersionsResponse parses an HTTP response from a GetRegistryRecentVersionsWithResponse call
func ParseGetRegistryRecentVersionsResponse(rsp *http.Response) (*GetRegistryRecentVersionsResponse, error) {
	bodyBytes, err := io.ReadAll(rsp.Body)
	defer func() { _ = rsp.Body.Close() }()
	if err != nil {
		return nil, err
	}

	response := &GetRegistryRecentVersionsResponse{
		Body:         bodyBytes,
		HTTPResponse: rsp,
	}

	switch {
	case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200:
		var dest []VersionWithPackage
		if err := json.Unmarshal(bodyBytes, &dest); err != nil {
			return nil, err
		}
		response.JSON200 = &dest

	}

	return response, nil
}


================================================
FILE: ecosystems/repos/repos.go
================================================
// Package repos provides primitives to interact with the openapi HTTP API.
//
// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.4.1 DO NOT EDIT.
package repos

import (
	"context"
	"encoding/json"
	"fmt"
	"io"
	"net/http"
	"net/url"
	"strings"
	"time"

	"github.com/oapi-codegen/runtime"
)

// Dependency defines model for Dependency.
type Dependency struct {
	Direct       *bool   `json:"direct,omitempty"`
	Ecosystem    *string `json:"ecosystem,omitempty"`
	Id           *int    `json:"id,omitempty"`
	Kind         *string `json:"kind,omitempty"`
	Optional     *bool   `json:"optional,omitempty"`
	PackageName  *string `json:"package_name,omitempty"`
	Requirements *string `json:"requirements,omitempty"`
}

// DependencyWithRepository defines model for DependencyWithRepository.
type DependencyWithRepository struct {
	Direct       *bool       `json:"direct,omitempty"`
	Ecosystem    *string     `json:"ecosystem,omitempty"`
	Id           *int        `json:"id,omitempty"`
	Kind         *string     `json:"kind,omitempty"`
	Manifest     *Manifest   `json:"manifest,omitempty"`
	Optional     *bool       `json:"optional,omitempty"`
	PackageName  *string     `json:"package_name,omitempty"`
	Repository   *Repository `json:"repository,omitempty"`
	Requirements *string     `json:"requirements,omitempty"`
}

// Ecosystem defines model for Ecosystem.
type Ecosystem struct {
	EcosystemUrl  *string `json:"ecosystem_url,omitempty"`
	Name          *string `json:"name,omitempty"`
	PackagesCount *int    `json:"packages_count,omitempty"`
}

// Host defines model for Host.
type Host struct {
	CreatedAt          *time.Time `json:"created_at,omitempty"`
	HostUrl            *string    `json:"host_url,omitempty"`
	IconUrl            *string    `json:"icon_url,omitempty"`
	Kind               *string    `json:"kind,omitempty"`
	Name               *string    `json:"name,omitempty"`
	OwnersCount        *int       `json:"owners_count,omitempty"`
	OwnersUrl          *string    `json:"owners_url,omitempty"`
	RepositoriesCount  *int       `json:"repositories_count,omitempty"`
	RepositorisUrl     *string    `json:"repositoris_url,omitempty"`
	RepositoryNamesUrl *string    `json:"repository_names_url,omitempty"`
	UpdatedAt          *time.Time `json:"updated_at,omitempty"`
	Url                *string    `json:"url,omitempty"`
	Version            *string    `json:"version,omitempty"`
}

// Manifest defines model for Manifest.
type Manifest struct {
	CreatedAt      *time.Time    `json:"created_at,omitempty"`
	Dependencies   *[]Dependency `json:"dependencies,omitempty"`
	Ecosystem      *string       `json:"ecosystem,omitempty"`
	Filepath       *string       `json:"filepath,omitempty"`
	Kind           *string       `json:"kind,omitempty"`
	RepositoryLink *string       `json:"repository_link,omitempty"`
	Sha            *string       `json:"sha,omitempty"`
	UpdatedAt      *time.Time    `json:"updated_at,omitempty"`
}

// Owner defines model for Owner.
type Owner struct {
	Company           *string                 `json:"company,omitempty"`
	CreatedAt         *time.Time              `json:"created_at,omitempty"`
	Description       *string                 `json:"description,omitempty"`
	Email             *string                 `json:"email,omitempty"`
	Followers         *int                    `json:"followers,omitempty"`
	Following         *int                    `json:"following,omitempty"`
	FundingLinks      *[]string               `json:"funding_links,omitempty"`
	HtmlUrl           *string                 `json:"html_url,omitempty"`
	IconUrl           *string                 `json:"icon_url,omitempty"`
	Kind              *string                 `json:"kind,omitempty"`
	LastSyncedAt      *time.Time              `json:"last_synced_at,omitempty"`
	Location          *string                 `json:"location,omitempty"`
	Login             *string                 `json:"login,omitempty"`
	Metadata          *map[string]interface{} `json:"metadata,omitempty"`
	Name              *string                 `json:"name,omitempty"`
	OwnerUrl          *string                 `json:"owner_url,omitempty"`
	RepositoriesCount *int                    `json:"repositories_count,omitempty"`
	RepositoriesUrl   *string                 `json:"repositories_url,omitempty"`
	TotalStars        *int                    `json:"total_stars,omitempty"`
	Twitter           *string                 `json:"twitter,omitempty"`
	UpdatedAt         *time.Time              `json:"updated_at,omitempty"`
	Uuid              *string                 `json:"uuid,omitempty"`
	Website           *string                 `json:"website,omitempty"`
}

// PackageUsage defines model for PackageUsage.
type PackageUsage struct {
	DependenciesUrl *string `json:"dependencies_url,omitempty"`
	DependentsCount *int    `json:"dependents_count,omitempty"`
	Ecosystem       *string `json:"ecosystem,omitempty"`
	Name            *string `json:"name,omitempty"`
	PackageUsageUrl *string `json:"package_usage_url,omitempty"`
}

// Release defines model for Release.
type Release struct {
	Assets          *[]map[string]interface{} `json:"assets,omitempty"`
	Author          *string                   `json:"author,omitempty"`
	Body            *string                   `json:"body,omitempty"`
	CreatedAt       *time.Time                `json:"created_at,omitempty"`
	Draft           *bool                     `json:"draft,omitempty"`
	HtmlUrl         *string                   `json:"html_url,omitempty"`
	LastSyncedAt    *time.Time                `json:"last_synced_at,omitempty"`
	Name            *string                   `json:"name,omitempty"`
	Prerelease      *bool                     `json:"prerelease,omitempty"`
	PublishedAt     *time.Time                `json:"published_at,omitempty"`
	TagName         *string                   `json:"tag_name,omitempty"`
	TagUrl          *string                   `json:"tag_url,omitempty"`
	TargetCommitish *string                   `json:"target_commitish,omitempty"`
	Uuid            *string                   `json:"uuid,omitempty"`
}

// Repository defines model for Repository.
type Repository struct {
	Archived             *bool                   `json:"archived,omitempty"`
	CommitStats          *map[string]interface{} `json:"commit_stats,omitempty"`
	CreatedAt            *time.Time              `json:"created_at,omitempty"`
	DefaultBranch        *string                 `json:"default_branch,omitempty"`
	DependenciesParsedAt *time.Time              `json:"dependencies_parsed_at,omitempty"`
	DependencyJobId      *string                 `json:"dependency_job_id,omitempty"`
	Description          *string                 `json:"description,omitempty"`
	DownloadUrl          *string                 `json:"download_url,omitempty"`
	Etag                 *string                 `json:"etag,omitempty"`
	Fork                 *bool                   `json:"fork,omitempty"`
	ForksCount           *int                    `json:"forks_count,omitempty"`
	FullName             *string                 `json:"full_name,omitempty"`
	HasIssues            *bool                   `json:"has_issues,omitempty"`
	HasPages             *bool                   `json:"has_pages,omitempty"`
	HasWiki              *bool                   `json:"has_wiki,omitempty"`
	Homepage             *string                 `json:"homepage,omitempty"`
	Host                 *Host                   `json:"host,omitempty"`
	HtmlUrl              *string                 `json:"html_url,omitempty"`
	IconUrl              *string                 `json:"icon_url,omitempty"`
	Id                   *int                    `json:"id,omitempty"`
	Language             *string                 `json:"language,omitempty"`
	LastSyncedAt         *time.Time              `json:"last_synced_at,omitempty"`
	LatestCommitSha      *string                 `json:"latest_commit_sha,omitempty"`
	LatestTagName        *string                 `json:"latest_tag_name,omitempty"`
	LatestTagPublishedAt *time.Time              `json:"latest_tag_published_at,omitempty"`
	License              *string                 `json:"license,omitempty"`
	ManifestsUrl         *string                 `json:"manifests_url,omitempty"`
	Metadata             *map[string]interface{} `json:"metadata,omitempty"`
	MirrorUrl            *string                 `json:"mirror_url,omitempty"`
	OpenIssuesCount      *int                    `json:"open_issues_count,omitempty"`
	Owner                *string                 `json:"owner,omitempty"`
	OwnerUrl             *string                 `json:"owner_url,omitempty"`
	Prev
Download .txt
gitextract_b9stc6rp/

├── .circleci/
│   └── config.yml
├── .github/
│   ├── CODEOWNERS
│   └── workflows/
│       ├── ci.yml
│       ├── release.yml
│       └── security.yml
├── .gitignore
├── .gitleaks.toml
├── .golangci.yaml
├── .goreleaser.yml
├── .pre-commit-config.yaml
├── .snyk
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── NOTICE
├── README.md
├── SECURITY.md
├── acceptance.bats
├── catalog-info.yaml
├── ecosystems/
│   ├── packages/
│   │   └── packages.go
│   └── repos/
│       └── repos.go
├── go.mod
├── go.sum
├── internal/
│   ├── commands/
│   │   ├── default.go
│   │   ├── deps/
│   │   │   ├── repos.go
│   │   │   └── root.go
│   │   ├── ecosystems/
│   │   │   ├── enrich.go
│   │   │   ├── packages.go
│   │   │   ├── repos.go
│   │   │   └── root.go
│   │   ├── scorecard/
│   │   │   ├── enrich.go
│   │   │   └── root.go
│   │   └── snyk/
│   │       ├── config.go
│   │       ├── enrich.go
│   │       ├── packages.go
│   │       └── root.go
│   └── utils/
│       ├── cdx.go
│       ├── cdx_test.go
│       ├── input.go
│       ├── input_test.go
│       ├── spdx.go
│       └── spdx_test.go
├── lib/
│   ├── deps/
│   │   └── repo.go
│   ├── ecosystems/
│   │   ├── cache.go
│   │   ├── cache_test.go
│   │   ├── enrich.go
│   │   ├── enrich_cyclonedx.go
│   │   ├── enrich_cyclonedx_test.go
│   │   ├── enrich_spdx.go
│   │   ├── enrich_spdx_test.go
│   │   ├── package.go
│   │   ├── package_test.go
│   │   ├── repo.go
│   │   └── repo_test.go
│   ├── sbom/
│   │   ├── cyclonedx.go
│   │   ├── decode.go
│   │   ├── decode_test.go
│   │   ├── encode.go
│   │   ├── format.go
│   │   ├── sbom.go
│   │   └── spdx.go
│   ├── scorecard/
│   │   ├── enrich.go
│   │   ├── enrich_cyclonedx.go
│   │   ├── enrich_spdx.go
│   │   └── enrich_test.go
│   └── snyk/
│       ├── config.go
│       ├── enrich.go
│       ├── enrich_cyclonedx.go
│       ├── enrich_spdx.go
│       ├── enrich_test.go
│       ├── package.go
│       ├── package_test.go
│       ├── self.go
│       ├── self_test.go
│       ├── service.go
│       └── testdata/
│           ├── no_issues.json
│           ├── numpy_issues.json
│           ├── pandas_issues.json
│           └── self.json
├── main.go
├── snyk/
│   ├── issues/
│   │   └── issues.go
│   └── users/
│       └── users.go
├── specs/
│   ├── packages.yaml
│   ├── repos.yaml
│   ├── snyk-experimental.json
│   └── snyk.json
└── testing/
    ├── sbom.cyclonedx-1.5.json
    ├── sbom.cyclonedx.json
    ├── sbom.cyclonedx.xml
    ├── sbom.spdx-2.3.json
    ├── sbom2.cyclonedx.json
    └── sbom3.cyclonedx.json
Download .txt
SYMBOL INDEX (953 symbols across 57 files)

FILE: ecosystems/packages/packages.go
  type Advisory (line 20) | type Advisory struct
  type Dependency (line 41) | type Dependency struct
  type Keyword (line 51) | type Keyword struct
  type KeywordWithPackages (line 58) | type KeywordWithPackages struct
  type Maintainer (line 67) | type Maintainer struct
  type Namespace (line 83) | type Namespace struct
  type Package (line 90) | type Package struct
  type PackageWithRegistry (line 137) | type PackageWithRegistry struct
  type Registry (line 185) | type Registry struct
  type Version (line 207) | type Version struct
  type VersionWithDependencies (line 227) | type VersionWithDependencies struct
  type VersionWithPackage (line 249) | type VersionWithPackage struct
  type GetDependenciesParams (line 270) | type GetDependenciesParams struct
  type GetKeywordsParams (line 300) | type GetKeywordsParams struct
  type GetKeywordParams (line 309) | type GetKeywordParams struct
  type LookupPackageParams (line 318) | type LookupPackageParams struct
  type GetRegistriesParams (line 339) | type GetRegistriesParams struct
  type GetRegistryParams (line 348) | type GetRegistryParams struct
  type LookupRegistryPackageParams (line 357) | type LookupRegistryPackageParams struct
  type GetRegistryMaintainersParams (line 378) | type GetRegistryMaintainersParams struct
  type GetRegistryMaintainerPackagesParams (line 399) | type GetRegistryMaintainerPackagesParams struct
  type GetRegistryNamespacesParams (line 408) | type GetRegistryNamespacesParams struct
  type GetRegistryNamespacePackagesParams (line 417) | type GetRegistryNamespacePackagesParams struct
  type GetRegistryPackageNamesParams (line 426) | type GetRegistryPackageNamesParams struct
  type GetRegistryPackagesParams (line 453) | type GetRegistryPackagesParams struct
  type GetRegistryPackageDependentPackageKindsParams (line 483) | type GetRegistryPackageDependentPackageKindsParams struct
  type GetRegistryPackageDependentPackagesParams (line 489) | type GetRegistryPackageDependentPackagesParams struct
  type GetRegistryPackageRelatedPackagesParams (line 516) | type GetRegistryPackageRelatedPackagesParams struct
  type GetRegistryPackageVersionsParams (line 537) | type GetRegistryPackageVersionsParams struct
  type GetRegistryRecentVersionsParams (line 570) | type GetRegistryRecentVersionsParams struct
  type RequestEditorFn (line 603) | type RequestEditorFn
  type HttpRequestDoer (line 608) | type HttpRequestDoer interface
  type Client (line 613) | type Client struct
    method GetDependencies (line 745) | func (c *Client) GetDependencies(ctx context.Context, params *GetDepen...
    method GetKeywords (line 757) | func (c *Client) GetKeywords(ctx context.Context, params *GetKeywordsP...
    method GetKeyword (line 769) | func (c *Client) GetKeyword(ctx context.Context, keywordName string, p...
    method LookupPackage (line 781) | func (c *Client) LookupPackage(ctx context.Context, params *LookupPack...
    method GetRegistries (line 793) | func (c *Client) GetRegistries(ctx context.Context, params *GetRegistr...
    method GetRegistry (line 805) | func (c *Client) GetRegistry(ctx context.Context, registryName string,...
    method LookupRegistryPackage (line 817) | func (c *Client) LookupRegistryPackage(ctx context.Context, registryNa...
    method GetRegistryMaintainers (line 829) | func (c *Client) GetRegistryMaintainers(ctx context.Context, registryN...
    method GetRegistryMaintainer (line 841) | func (c *Client) GetRegistryMaintainer(ctx context.Context, registryNa...
    method GetRegistryMaintainerPackages (line 853) | func (c *Client) GetRegistryMaintainerPackages(ctx context.Context, re...
    method GetRegistryNamespaces (line 865) | func (c *Client) GetRegistryNamespaces(ctx context.Context, registryNa...
    method GetRegistryNamespace (line 877) | func (c *Client) GetRegistryNamespace(ctx context.Context, registryNam...
    method GetRegistryNamespacePackages (line 889) | func (c *Client) GetRegistryNamespacePackages(ctx context.Context, reg...
    method GetRegistryPackageNames (line 901) | func (c *Client) GetRegistryPackageNames(ctx context.Context, registry...
    method GetRegistryPackages (line 913) | func (c *Client) GetRegistryPackages(ctx context.Context, registryName...
    method GetRegistryPackage (line 925) | func (c *Client) GetRegistryPackage(ctx context.Context, registryName ...
    method GetRegistryPackageDependentPackageKinds (line 937) | func (c *Client) GetRegistryPackageDependentPackageKinds(ctx context.C...
    method GetRegistryPackageDependentPackages (line 949) | func (c *Client) GetRegistryPackageDependentPackages(ctx context.Conte...
    method GetRegistryPackageRelatedPackages (line 961) | func (c *Client) GetRegistryPackageRelatedPackages(ctx context.Context...
    method GetRegistryPackageVersionNumbers (line 973) | func (c *Client) GetRegistryPackageVersionNumbers(ctx context.Context,...
    method GetRegistryPackageVersions (line 985) | func (c *Client) GetRegistryPackageVersions(ctx context.Context, regis...
    method GetRegistryPackageVersion (line 997) | func (c *Client) GetRegistryPackageVersion(ctx context.Context, regist...
    method GetRegistryRecentVersions (line 1009) | func (c *Client) GetRegistryRecentVersions(ctx context.Context, regist...
    method applyEditors (line 3455) | func (c *Client) applyEditors(ctx context.Context, req *http.Request, ...
  type ClientOption (line 630) | type ClientOption
  function NewClient (line 633) | func NewClient(server string, opts ...ClientOption) (*Client, error) {
  function WithHTTPClient (line 657) | func WithHTTPClient(doer HttpRequestDoer) ClientOption {
  function WithRequestEditorFn (line 666) | func WithRequestEditorFn(fn RequestEditorFn) ClientOption {
  type ClientInterface (line 674) | type ClientInterface interface
  function NewGetDependenciesRequest (line 1022) | func NewGetDependenciesRequest(server string, params *GetDependenciesPar...
  function NewGetKeywordsRequest (line 1199) | func NewGetKeywordsRequest(server string, params *GetKeywordsParams) (*h...
  function NewGetKeywordRequest (line 1264) | func NewGetKeywordRequest(server string, keywordName string, params *Get...
  function NewLookupPackageRequest (line 1336) | func NewLookupPackageRequest(server string, params *LookupPackageParams)...
  function NewGetRegistriesRequest (line 1465) | func NewGetRegistriesRequest(server string, params *GetRegistriesParams)...
  function NewGetRegistryRequest (line 1530) | func NewGetRegistryRequest(server string, registryName string, params *G...
  function NewLookupRegistryPackageRequest (line 1602) | func NewLookupRegistryPackageRequest(server string, registryName string,...
  function NewGetRegistryMaintainersRequest (line 1738) | func NewGetRegistryMaintainersRequest(server string, registryName string...
  function NewGetRegistryMaintainerRequest (line 1874) | func NewGetRegistryMaintainerRequest(server string, registryName string,...
  function NewGetRegistryMaintainerPackagesRequest (line 1915) | func NewGetRegistryMaintainerPackagesRequest(server string, registryName...
  function NewGetRegistryNamespacesRequest (line 1994) | func NewGetRegistryNamespacesRequest(server string, registryName string,...
  function NewGetRegistryNamespaceRequest (line 2066) | func NewGetRegistryNamespaceRequest(server string, registryName string, ...
  function NewGetRegistryNamespacePackagesRequest (line 2107) | func NewGetRegistryNamespacePackagesRequest(server string, registryName ...
  function NewGetRegistryPackageNamesRequest (line 2186) | func NewGetRegistryPackageNamesRequest(server string, registryName strin...
  function NewGetRegistryPackagesRequest (line 2354) | func NewGetRegistryPackagesRequest(server string, registryName string, p...
  function NewGetRegistryPackageRequest (line 2538) | func NewGetRegistryPackageRequest(server string, registryName string, pa...
  function NewGetRegistryPackageDependentPackageKindsRequest (line 2579) | func NewGetRegistryPackageDependentPackageKindsRequest(server string, re...
  function NewGetRegistryPackageDependentPackagesRequest (line 2642) | func NewGetRegistryPackageDependentPackagesRequest(server string, regist...
  function NewGetRegistryPackageRelatedPackagesRequest (line 2817) | func NewGetRegistryPackageRelatedPackagesRequest(server string, registry...
  function NewGetRegistryPackageVersionNumbersRequest (line 2960) | func NewGetRegistryPackageVersionNumbersRequest(server string, registryN...
  function NewGetRegistryPackageVersionsRequest (line 3001) | func NewGetRegistryPackageVersionsRequest(server string, registryName st...
  function NewGetRegistryPackageVersionRequest (line 3208) | func NewGetRegistryPackageVersionRequest(server string, registryName str...
  function NewGetRegistryRecentVersionsRequest (line 3256) | func NewGetRegistryRecentVersionsRequest(server string, registryName str...
  type ClientWithResponses (line 3470) | type ClientWithResponses struct
    method GetDependenciesWithResponse (line 4075) | func (c *ClientWithResponses) GetDependenciesWithResponse(ctx context....
    method GetKeywordsWithResponse (line 4084) | func (c *ClientWithResponses) GetKeywordsWithResponse(ctx context.Cont...
    method GetKeywordWithResponse (line 4093) | func (c *ClientWithResponses) GetKeywordWithResponse(ctx context.Conte...
    method LookupPackageWithResponse (line 4102) | func (c *ClientWithResponses) LookupPackageWithResponse(ctx context.Co...
    method GetRegistriesWithResponse (line 4111) | func (c *ClientWithResponses) GetRegistriesWithResponse(ctx context.Co...
    method GetRegistryWithResponse (line 4120) | func (c *ClientWithResponses) GetRegistryWithResponse(ctx context.Cont...
    method LookupRegistryPackageWithResponse (line 4129) | func (c *ClientWithResponses) LookupRegistryPackageWithResponse(ctx co...
    method GetRegistryMaintainersWithResponse (line 4138) | func (c *ClientWithResponses) GetRegistryMaintainersWithResponse(ctx c...
    method GetRegistryMaintainerWithResponse (line 4147) | func (c *ClientWithResponses) GetRegistryMaintainerWithResponse(ctx co...
    method GetRegistryMaintainerPackagesWithResponse (line 4156) | func (c *ClientWithResponses) GetRegistryMaintainerPackagesWithRespons...
    method GetRegistryNamespacesWithResponse (line 4165) | func (c *ClientWithResponses) GetRegistryNamespacesWithResponse(ctx co...
    method GetRegistryNamespaceWithResponse (line 4174) | func (c *ClientWithResponses) GetRegistryNamespaceWithResponse(ctx con...
    method GetRegistryNamespacePackagesWithResponse (line 4183) | func (c *ClientWithResponses) GetRegistryNamespacePackagesWithResponse...
    method GetRegistryPackageNamesWithResponse (line 4192) | func (c *ClientWithResponses) GetRegistryPackageNamesWithResponse(ctx ...
    method GetRegistryPackagesWithResponse (line 4201) | func (c *ClientWithResponses) GetRegistryPackagesWithResponse(ctx cont...
    method GetRegistryPackageWithResponse (line 4210) | func (c *ClientWithResponses) GetRegistryPackageWithResponse(ctx conte...
    method GetRegistryPackageDependentPackageKindsWithResponse (line 4219) | func (c *ClientWithResponses) GetRegistryPackageDependentPackageKindsW...
    method GetRegistryPackageDependentPackagesWithResponse (line 4228) | func (c *ClientWithResponses) GetRegistryPackageDependentPackagesWithR...
    method GetRegistryPackageRelatedPackagesWithResponse (line 4237) | func (c *ClientWithResponses) GetRegistryPackageRelatedPackagesWithRes...
    method GetRegistryPackageVersionNumbersWithResponse (line 4246) | func (c *ClientWithResponses) GetRegistryPackageVersionNumbersWithResp...
    method GetRegistryPackageVersionsWithResponse (line 4255) | func (c *ClientWithResponses) GetRegistryPackageVersionsWithResponse(c...
    method GetRegistryPackageVersionWithResponse (line 4264) | func (c *ClientWithResponses) GetRegistryPackageVersionWithResponse(ct...
    method GetRegistryRecentVersionsWithResponse (line 4273) | func (c *ClientWithResponses) GetRegistryRecentVersionsWithResponse(ct...
  function NewClientWithResponses (line 3476) | func NewClientWithResponses(server string, opts ...ClientOption) (*Clien...
  function WithBaseURL (line 3485) | func WithBaseURL(baseURL string) ClientOption {
  type ClientWithResponsesInterface (line 3497) | type ClientWithResponsesInterface interface
  type GetDependenciesResponse (line 3568) | type GetDependenciesResponse struct
    method Status (line 3575) | func (r GetDependenciesResponse) Status() string {
    method StatusCode (line 3583) | func (r GetDependenciesResponse) StatusCode() int {
  type GetKeywordsResponse (line 3590) | type GetKeywordsResponse struct
    method Status (line 3597) | func (r GetKeywordsResponse) Status() string {
    method StatusCode (line 3605) | func (r GetKeywordsResponse) StatusCode() int {
  type GetKeywordResponse (line 3612) | type GetKeywordResponse struct
    method Status (line 3619) | func (r GetKeywordResponse) Status() string {
    method StatusCode (line 3627) | func (r GetKeywordResponse) StatusCode() int {
  type LookupPackageResponse (line 3634) | type LookupPackageResponse struct
    method Status (line 3641) | func (r LookupPackageResponse) Status() string {
    method StatusCode (line 3649) | func (r LookupPackageResponse) StatusCode() int {
  type GetRegistriesResponse (line 3656) | type GetRegistriesResponse struct
    method Status (line 3663) | func (r GetRegistriesResponse) Status() string {
    method StatusCode (line 3671) | func (r GetRegistriesResponse) StatusCode() int {
  type GetRegistryResponse (line 3678) | type GetRegistryResponse struct
    method Status (line 3685) | func (r GetRegistryResponse) Status() string {
    method StatusCode (line 3693) | func (r GetRegistryResponse) StatusCode() int {
  type LookupRegistryPackageResponse (line 3700) | type LookupRegistryPackageResponse struct
    method Status (line 3707) | func (r LookupRegistryPackageResponse) Status() string {
    method StatusCode (line 3715) | func (r LookupRegistryPackageResponse) StatusCode() int {
  type GetRegistryMaintainersResponse (line 3722) | type GetRegistryMaintainersResponse struct
    method Status (line 3729) | func (r GetRegistryMaintainersResponse) Status() string {
    method StatusCode (line 3737) | func (r GetRegistryMaintainersResponse) StatusCode() int {
  type GetRegistryMaintainerResponse (line 3744) | type GetRegistryMaintainerResponse struct
    method Status (line 3751) | func (r GetRegistryMaintainerResponse) Status() string {
    method StatusCode (line 3759) | func (r GetRegistryMaintainerResponse) StatusCode() int {
  type GetRegistryMaintainerPackagesResponse (line 3766) | type GetRegistryMaintainerPackagesResponse struct
    method Status (line 3773) | func (r GetRegistryMaintainerPackagesResponse) Status() string {
    method StatusCode (line 3781) | func (r GetRegistryMaintainerPackagesResponse) StatusCode() int {
  type GetRegistryNamespacesResponse (line 3788) | type GetRegistryNamespacesResponse struct
    method Status (line 3795) | func (r GetRegistryNamespacesResponse) Status() string {
    method StatusCode (line 3803) | func (r GetRegistryNamespacesResponse) StatusCode() int {
  type GetRegistryNamespaceResponse (line 3810) | type GetRegistryNamespaceResponse struct
    method Status (line 3817) | func (r GetRegistryNamespaceResponse) Status() string {
    method StatusCode (line 3825) | func (r GetRegistryNamespaceResponse) StatusCode() int {
  type GetRegistryNamespacePackagesResponse (line 3832) | type GetRegistryNamespacePackagesResponse struct
    method Status (line 3839) | func (r GetRegistryNamespacePackagesResponse) Status() string {
    method StatusCode (line 3847) | func (r GetRegistryNamespacePackagesResponse) StatusCode() int {
  type GetRegistryPackageNamesResponse (line 3854) | type GetRegistryPackageNamesResponse struct
    method Status (line 3861) | func (r GetRegistryPackageNamesResponse) Status() string {
    method StatusCode (line 3869) | func (r GetRegistryPackageNamesResponse) StatusCode() int {
  type GetRegistryPackagesResponse (line 3876) | type GetRegistryPackagesResponse struct
    method Status (line 3883) | func (r GetRegistryPackagesResponse) Status() string {
    method StatusCode (line 3891) | func (r GetRegistryPackagesResponse) StatusCode() int {
  type GetRegistryPackageResponse (line 3898) | type GetRegistryPackageResponse struct
    method Status (line 3905) | func (r GetRegistryPackageResponse) Status() string {
    method StatusCode (line 3913) | func (r GetRegistryPackageResponse) StatusCode() int {
  type GetRegistryPackageDependentPackageKindsResponse (line 3920) | type GetRegistryPackageDependentPackageKindsResponse struct
    method Status (line 3927) | func (r GetRegistryPackageDependentPackageKindsResponse) Status() stri...
    method StatusCode (line 3935) | func (r GetRegistryPackageDependentPackageKindsResponse) StatusCode() ...
  type GetRegistryPackageDependentPackagesResponse (line 3942) | type GetRegistryPackageDependentPackagesResponse struct
    method Status (line 3949) | func (r GetRegistryPackageDependentPackagesResponse) Status() string {
    method StatusCode (line 3957) | func (r GetRegistryPackageDependentPackagesResponse) StatusCode() int {
  type GetRegistryPackageRelatedPackagesResponse (line 3964) | type GetRegistryPackageRelatedPackagesResponse struct
    method Status (line 3971) | func (r GetRegistryPackageRelatedPackagesResponse) Status() string {
    method StatusCode (line 3979) | func (r GetRegistryPackageRelatedPackagesResponse) StatusCode() int {
  type GetRegistryPackageVersionNumbersResponse (line 3986) | type GetRegistryPackageVersionNumbersResponse struct
    method Status (line 3993) | func (r GetRegistryPackageVersionNumbersResponse) Status() string {
    method StatusCode (line 4001) | func (r GetRegistryPackageVersionNumbersResponse) StatusCode() int {
  type GetRegistryPackageVersionsResponse (line 4008) | type GetRegistryPackageVersionsResponse struct
    method Status (line 4015) | func (r GetRegistryPackageVersionsResponse) Status() string {
    method StatusCode (line 4023) | func (r GetRegistryPackageVersionsResponse) StatusCode() int {
  type GetRegistryPackageVersionResponse (line 4030) | type GetRegistryPackageVersionResponse struct
    method Status (line 4037) | func (r GetRegistryPackageVersionResponse) Status() string {
    method StatusCode (line 4045) | func (r GetRegistryPackageVersionResponse) StatusCode() int {
  type GetRegistryRecentVersionsResponse (line 4052) | type GetRegistryRecentVersionsResponse struct
    method Status (line 4059) | func (r GetRegistryRecentVersionsResponse) Status() string {
    method StatusCode (line 4067) | func (r GetRegistryRecentVersionsResponse) StatusCode() int {
  function ParseGetDependenciesResponse (line 4282) | func ParseGetDependenciesResponse(rsp *http.Response) (*GetDependenciesR...
  function ParseGetKeywordsResponse (line 4308) | func ParseGetKeywordsResponse(rsp *http.Response) (*GetKeywordsResponse,...
  function ParseGetKeywordResponse (line 4334) | func ParseGetKeywordResponse(rsp *http.Response) (*GetKeywordResponse, e...
  function ParseLookupPackageResponse (line 4360) | func ParseLookupPackageResponse(rsp *http.Response) (*LookupPackageRespo...
  function ParseGetRegistriesResponse (line 4386) | func ParseGetRegistriesResponse(rsp *http.Response) (*GetRegistriesRespo...
  function ParseGetRegistryResponse (line 4412) | func ParseGetRegistryResponse(rsp *http.Response) (*GetRegistryResponse,...
  function ParseLookupRegistryPackageResponse (line 4438) | func ParseLookupRegistryPackageResponse(rsp *http.Response) (*LookupRegi...
  function ParseGetRegistryMaintainersResponse (line 4464) | func ParseGetRegistryMaintainersResponse(rsp *http.Response) (*GetRegist...
  function ParseGetRegistryMaintainerResponse (line 4490) | func ParseGetRegistryMaintainerResponse(rsp *http.Response) (*GetRegistr...
  function ParseGetRegistryMaintainerPackagesResponse (line 4516) | func ParseGetRegistryMaintainerPackagesResponse(rsp *http.Response) (*Ge...
  function ParseGetRegistryNamespacesResponse (line 4542) | func ParseGetRegistryNamespacesResponse(rsp *http.Response) (*GetRegistr...
  function ParseGetRegistryNamespaceResponse (line 4568) | func ParseGetRegistryNamespaceResponse(rsp *http.Response) (*GetRegistry...
  function ParseGetRegistryNamespacePackagesResponse (line 4594) | func ParseGetRegistryNamespacePackagesResponse(rsp *http.Response) (*Get...
  function ParseGetRegistryPackageNamesResponse (line 4620) | func ParseGetRegistryPackageNamesResponse(rsp *http.Response) (*GetRegis...
  function ParseGetRegistryPackagesResponse (line 4646) | func ParseGetRegistryPackagesResponse(rsp *http.Response) (*GetRegistryP...
  function ParseGetRegistryPackageResponse (line 4672) | func ParseGetRegistryPackageResponse(rsp *http.Response) (*GetRegistryPa...
  function ParseGetRegistryPackageDependentPackageKindsResponse (line 4698) | func ParseGetRegistryPackageDependentPackageKindsResponse(rsp *http.Resp...
  function ParseGetRegistryPackageDependentPackagesResponse (line 4724) | func ParseGetRegistryPackageDependentPackagesResponse(rsp *http.Response...
  function ParseGetRegistryPackageRelatedPackagesResponse (line 4750) | func ParseGetRegistryPackageRelatedPackagesResponse(rsp *http.Response) ...
  function ParseGetRegistryPackageVersionNumbersResponse (line 4776) | func ParseGetRegistryPackageVersionNumbersResponse(rsp *http.Response) (...
  function ParseGetRegistryPackageVersionsResponse (line 4802) | func ParseGetRegistryPackageVersionsResponse(rsp *http.Response) (*GetRe...
  function ParseGetRegistryPackageVersionResponse (line 4828) | func ParseGetRegistryPackageVersionResponse(rsp *http.Response) (*GetReg...
  function ParseGetRegistryRecentVersionsResponse (line 4854) | func ParseGetRegistryRecentVersionsResponse(rsp *http.Response) (*GetReg...

FILE: ecosystems/repos/repos.go
  type Dependency (line 20) | type Dependency struct
  type DependencyWithRepository (line 31) | type DependencyWithRepository struct
  type Ecosystem (line 44) | type Ecosystem struct
  type Host (line 51) | type Host struct
  type Manifest (line 68) | type Manifest struct
  type Owner (line 80) | type Owner struct
  type PackageUsage (line 107) | type PackageUsage struct
  type Release (line 116) | type Release struct
  type Repository (line 134) | type Repository struct
  type Tag (line 188) | type Tag struct
  type Topic (line 202) | type Topic struct
  type TopicWithRepositories (line 209) | type TopicWithRepositories struct
  type GetRegistriesParams (line 218) | type GetRegistriesParams struct
  type LookupHostOwnerParams (line 227) | type LookupHostOwnerParams struct
  type GetHostParams (line 236) | type GetHostParams struct
  type GetHostOwnersParams (line 245) | type GetHostOwnersParams struct
  type GetHostOwnerRepositoriesParams (line 266) | type GetHostOwnerRepositoriesParams struct
  type GetHostRepositoriesParams (line 293) | type GetHostRepositoriesParams struct
  type GetHostRepositoryManifestsParams (line 320) | type GetHostRepositoryManifestsParams struct
  type GetHostRepositoryReleasesParams (line 329) | type GetHostRepositoryReleasesParams struct
  type GetHostRepositoryTagsParams (line 344) | type GetHostRepositoryTagsParams struct
  type GetHostRepositoryNamesParams (line 359) | type GetHostRepositoryNamesParams struct
  type RepositoriesLookupParams (line 386) | type RepositoriesLookupParams struct
  type TopicsParams (line 395) | type TopicsParams struct
  type TopicParams (line 404) | type TopicParams struct
  type RequestEditorFn (line 431) | type RequestEditorFn
  type HttpRequestDoer (line 436) | type HttpRequestDoer interface
  type Client (line 441) | type Client struct
    method GetRegistries (line 570) | func (c *Client) GetRegistries(ctx context.Context, params *GetRegistr...
    method LookupHostOwner (line 582) | func (c *Client) LookupHostOwner(ctx context.Context, hostName string,...
    method GetHost (line 594) | func (c *Client) GetHost(ctx context.Context, hostName string, params ...
    method GetHostOwners (line 606) | func (c *Client) GetHostOwners(ctx context.Context, hostName string, p...
    method GetHostOwner (line 618) | func (c *Client) GetHostOwner(ctx context.Context, hostName string, ow...
    method GetHostOwnerRepositories (line 630) | func (c *Client) GetHostOwnerRepositories(ctx context.Context, hostNam...
    method GetHostRepositories (line 642) | func (c *Client) GetHostRepositories(ctx context.Context, hostName str...
    method GetHostRepository (line 654) | func (c *Client) GetHostRepository(ctx context.Context, hostName strin...
    method GetHostRepositoryManifests (line 666) | func (c *Client) GetHostRepositoryManifests(ctx context.Context, hostN...
    method GetHostRepositoryReleases (line 678) | func (c *Client) GetHostRepositoryReleases(ctx context.Context, hostNa...
    method GetHostRepositoryRelease (line 690) | func (c *Client) GetHostRepositoryRelease(ctx context.Context, hostNam...
    method GetHostRepositoryTags (line 702) | func (c *Client) GetHostRepositoryTags(ctx context.Context, hostName s...
    method GetHostRepositoryTag (line 714) | func (c *Client) GetHostRepositoryTag(ctx context.Context, hostName st...
    method GetHostRepositoryTagManifests (line 726) | func (c *Client) GetHostRepositoryTagManifests(ctx context.Context, ho...
    method GetHostRepositoryNames (line 738) | func (c *Client) GetHostRepositoryNames(ctx context.Context, hostName ...
    method RepositoriesLookup (line 750) | func (c *Client) RepositoriesLookup(ctx context.Context, params *Repos...
    method Topics (line 762) | func (c *Client) Topics(ctx context.Context, params *TopicsParams, req...
    method Topic (line 774) | func (c *Client) Topic(ctx context.Context, topic string, params *Topi...
    method Usage (line 786) | func (c *Client) Usage(ctx context.Context, reqEditors ...RequestEdito...
    method UsageEcosystem (line 798) | func (c *Client) UsageEcosystem(ctx context.Context, ecosystem string,...
    method UsagePackage (line 810) | func (c *Client) UsagePackage(ctx context.Context, ecosystem string, p...
    method UsagePackageDependencies (line 822) | func (c *Client) UsagePackageDependencies(ctx context.Context, ecosyst...
    method applyEditors (line 2658) | func (c *Client) applyEditors(ctx context.Context, req *http.Request, ...
  type ClientOption (line 458) | type ClientOption
  function NewClient (line 461) | func NewClient(server string, opts ...ClientOption) (*Client, error) {
  function WithHTTPClient (line 485) | func WithHTTPClient(doer HttpRequestDoer) ClientOption {
  function WithRequestEditorFn (line 494) | func WithRequestEditorFn(fn RequestEditorFn) ClientOption {
  type ClientInterface (line 502) | type ClientInterface interface
  function NewGetRegistriesRequest (line 835) | func NewGetRegistriesRequest(server string, params *GetRegistriesParams)...
  function NewLookupHostOwnerRequest (line 900) | func NewLookupHostOwnerRequest(server string, hostName string, params *L...
  function NewGetHostRequest (line 972) | func NewGetHostRequest(server string, hostName string, params *GetHostPa...
  function NewGetHostOwnersRequest (line 1044) | func NewGetHostOwnersRequest(server string, hostName string, params *Get...
  function NewGetHostOwnerRequest (line 1180) | func NewGetHostOwnerRequest(server string, hostName string, ownerLogin s...
  function NewGetHostOwnerRepositoriesRequest (line 1221) | func NewGetHostOwnerRepositoriesRequest(server string, hostName string, ...
  function NewGetHostRepositoriesRequest (line 1396) | func NewGetHostRepositoriesRequest(server string, hostName string, param...
  function NewGetHostRepositoryRequest (line 1564) | func NewGetHostRepositoryRequest(server string, hostName string, reposit...
  function NewGetHostRepositoryManifestsRequest (line 1605) | func NewGetHostRepositoryManifestsRequest(server string, hostName string...
  function NewGetHostRepositoryReleasesRequest (line 1684) | func NewGetHostRepositoryReleasesRequest(server string, hostName string,...
  function NewGetHostRepositoryReleaseRequest (line 1795) | func NewGetHostRepositoryReleaseRequest(server string, hostName string, ...
  function NewGetHostRepositoryTagsRequest (line 1843) | func NewGetHostRepositoryTagsRequest(server string, hostName string, rep...
  function NewGetHostRepositoryTagRequest (line 1954) | func NewGetHostRepositoryTagRequest(server string, hostName string, repo...
  function NewGetHostRepositoryTagManifestsRequest (line 2002) | func NewGetHostRepositoryTagManifestsRequest(server string, hostName str...
  function NewGetHostRepositoryNamesRequest (line 2050) | func NewGetHostRepositoryNamesRequest(server string, hostName string, pa...
  function NewRepositoriesLookupRequest (line 2218) | func NewRepositoriesLookupRequest(server string, params *RepositoriesLoo...
  function NewTopicsRequest (line 2283) | func NewTopicsRequest(server string, params *TopicsParams) (*http.Reques...
  function NewTopicRequest (line 2348) | func NewTopicRequest(server string, topic string, params *TopicParams) (...
  function NewUsageRequest (line 2516) | func NewUsageRequest(server string) (*http.Request, error) {
  function NewUsageEcosystemRequest (line 2543) | func NewUsageEcosystemRequest(server string, ecosystem string) (*http.Re...
  function NewUsagePackageRequest (line 2577) | func NewUsagePackageRequest(server string, ecosystem string, pPackage st...
  function NewUsagePackageDependenciesRequest (line 2618) | func NewUsagePackageDependenciesRequest(server string, ecosystem string,...
  type ClientWithResponses (line 2673) | type ClientWithResponses struct
    method GetRegistriesWithResponse (line 3253) | func (c *ClientWithResponses) GetRegistriesWithResponse(ctx context.Co...
    method LookupHostOwnerWithResponse (line 3262) | func (c *ClientWithResponses) LookupHostOwnerWithResponse(ctx context....
    method GetHostWithResponse (line 3271) | func (c *ClientWithResponses) GetHostWithResponse(ctx context.Context,...
    method GetHostOwnersWithResponse (line 3280) | func (c *ClientWithResponses) GetHostOwnersWithResponse(ctx context.Co...
    method GetHostOwnerWithResponse (line 3289) | func (c *ClientWithResponses) GetHostOwnerWithResponse(ctx context.Con...
    method GetHostOwnerRepositoriesWithResponse (line 3298) | func (c *ClientWithResponses) GetHostOwnerRepositoriesWithResponse(ctx...
    method GetHostRepositoriesWithResponse (line 3307) | func (c *ClientWithResponses) GetHostRepositoriesWithResponse(ctx cont...
    method GetHostRepositoryWithResponse (line 3316) | func (c *ClientWithResponses) GetHostRepositoryWithResponse(ctx contex...
    method GetHostRepositoryManifestsWithResponse (line 3325) | func (c *ClientWithResponses) GetHostRepositoryManifestsWithResponse(c...
    method GetHostRepositoryReleasesWithResponse (line 3334) | func (c *ClientWithResponses) GetHostRepositoryReleasesWithResponse(ct...
    method GetHostRepositoryReleaseWithResponse (line 3343) | func (c *ClientWithResponses) GetHostRepositoryReleaseWithResponse(ctx...
    method GetHostRepositoryTagsWithResponse (line 3352) | func (c *ClientWithResponses) GetHostRepositoryTagsWithResponse(ctx co...
    method GetHostRepositoryTagWithResponse (line 3361) | func (c *ClientWithResponses) GetHostRepositoryTagWithResponse(ctx con...
    method GetHostRepositoryTagManifestsWithResponse (line 3370) | func (c *ClientWithResponses) GetHostRepositoryTagManifestsWithRespons...
    method GetHostRepositoryNamesWithResponse (line 3379) | func (c *ClientWithResponses) GetHostRepositoryNamesWithResponse(ctx c...
    method RepositoriesLookupWithResponse (line 3388) | func (c *ClientWithResponses) RepositoriesLookupWithResponse(ctx conte...
    method TopicsWithResponse (line 3397) | func (c *ClientWithResponses) TopicsWithResponse(ctx context.Context, ...
    method TopicWithResponse (line 3406) | func (c *ClientWithResponses) TopicWithResponse(ctx context.Context, t...
    method UsageWithResponse (line 3415) | func (c *ClientWithResponses) UsageWithResponse(ctx context.Context, r...
    method UsageEcosystemWithResponse (line 3424) | func (c *ClientWithResponses) UsageEcosystemWithResponse(ctx context.C...
    method UsagePackageWithResponse (line 3433) | func (c *ClientWithResponses) UsagePackageWithResponse(ctx context.Con...
    method UsagePackageDependenciesWithResponse (line 3442) | func (c *ClientWithResponses) UsagePackageDependenciesWithResponse(ctx...
  function NewClientWithResponses (line 2679) | func NewClientWithResponses(server string, opts ...ClientOption) (*Clien...
  function WithBaseURL (line 2688) | func WithBaseURL(baseURL string) ClientOption {
  type ClientWithResponsesInterface (line 2700) | type ClientWithResponsesInterface interface
  type GetRegistriesResponse (line 2768) | type GetRegistriesResponse struct
    method Status (line 2775) | func (r GetRegistriesResponse) Status() string {
    method StatusCode (line 2783) | func (r GetRegistriesResponse) StatusCode() int {
  type LookupHostOwnerResponse (line 2790) | type LookupHostOwnerResponse struct
    method Status (line 2797) | func (r LookupHostOwnerResponse) Status() string {
    method StatusCode (line 2805) | func (r LookupHostOwnerResponse) StatusCode() int {
  type GetHostResponse (line 2812) | type GetHostResponse struct
    method Status (line 2819) | func (r GetHostResponse) Status() string {
    method StatusCode (line 2827) | func (r GetHostResponse) StatusCode() int {
  type GetHostOwnersResponse (line 2834) | type GetHostOwnersResponse struct
    method Status (line 2841) | func (r GetHostOwnersResponse) Status() string {
    method StatusCode (line 2849) | func (r GetHostOwnersResponse) StatusCode() int {
  type GetHostOwnerResponse (line 2856) | type GetHostOwnerResponse struct
    method Status (line 2863) | func (r GetHostOwnerResponse) Status() string {
    method StatusCode (line 2871) | func (r GetHostOwnerResponse) StatusCode() int {
  type GetHostOwnerRepositoriesResponse (line 2878) | type GetHostOwnerRepositoriesResponse struct
    method Status (line 2885) | func (r GetHostOwnerRepositoriesResponse) Status() string {
    method StatusCode (line 2893) | func (r GetHostOwnerRepositoriesResponse) StatusCode() int {
  type GetHostRepositoriesResponse (line 2900) | type GetHostRepositoriesResponse struct
    method Status (line 2907) | func (r GetHostRepositoriesResponse) Status() string {
    method StatusCode (line 2915) | func (r GetHostRepositoriesResponse) StatusCode() int {
  type GetHostRepositoryResponse (line 2922) | type GetHostRepositoryResponse struct
    method Status (line 2929) | func (r GetHostRepositoryResponse) Status() string {
    method StatusCode (line 2937) | func (r GetHostRepositoryResponse) StatusCode() int {
  type GetHostRepositoryManifestsResponse (line 2944) | type GetHostRepositoryManifestsResponse struct
    method Status (line 2951) | func (r GetHostRepositoryManifestsResponse) Status() string {
    method StatusCode (line 2959) | func (r GetHostRepositoryManifestsResponse) StatusCode() int {
  type GetHostRepositoryReleasesResponse (line 2966) | type GetHostRepositoryReleasesResponse struct
    method Status (line 2973) | func (r GetHostRepositoryReleasesResponse) Status() string {
    method StatusCode (line 2981) | func (r GetHostRepositoryReleasesResponse) StatusCode() int {
  type GetHostRepositoryReleaseResponse (line 2988) | type GetHostRepositoryReleaseResponse struct
    method Status (line 2995) | func (r GetHostRepositoryReleaseResponse) Status() string {
    method StatusCode (line 3003) | func (r GetHostRepositoryReleaseResponse) StatusCode() int {
  type GetHostRepositoryTagsResponse (line 3010) | type GetHostRepositoryTagsResponse struct
    method Status (line 3017) | func (r GetHostRepositoryTagsResponse) Status() string {
    method StatusCode (line 3025) | func (r GetHostRepositoryTagsResponse) StatusCode() int {
  type GetHostRepositoryTagResponse (line 3032) | type GetHostRepositoryTagResponse struct
    method Status (line 3039) | func (r GetHostRepositoryTagResponse) Status() string {
    method StatusCode (line 3047) | func (r GetHostRepositoryTagResponse) StatusCode() int {
  type GetHostRepositoryTagManifestsResponse (line 3054) | type GetHostRepositoryTagManifestsResponse struct
    method Status (line 3061) | func (r GetHostRepositoryTagManifestsResponse) Status() string {
    method StatusCode (line 3069) | func (r GetHostRepositoryTagManifestsResponse) StatusCode() int {
  type GetHostRepositoryNamesResponse (line 3076) | type GetHostRepositoryNamesResponse struct
    method Status (line 3083) | func (r GetHostRepositoryNamesResponse) Status() string {
    method StatusCode (line 3091) | func (r GetHostRepositoryNamesResponse) StatusCode() int {
  type RepositoriesLookupResponse (line 3098) | type RepositoriesLookupResponse struct
    method Status (line 3105) | func (r RepositoriesLookupResponse) Status() string {
    method StatusCode (line 3113) | func (r RepositoriesLookupResponse) StatusCode() int {
  type TopicsResponse (line 3120) | type TopicsResponse struct
    method Status (line 3127) | func (r TopicsResponse) Status() string {
    method StatusCode (line 3135) | func (r TopicsResponse) StatusCode() int {
  type TopicResponse (line 3142) | type TopicResponse struct
    method Status (line 3149) | func (r TopicResponse) Status() string {
    method StatusCode (line 3157) | func (r TopicResponse) StatusCode() int {
  type UsageResponse (line 3164) | type UsageResponse struct
    method Status (line 3171) | func (r UsageResponse) Status() string {
    method StatusCode (line 3179) | func (r UsageResponse) StatusCode() int {
  type UsageEcosystemResponse (line 3186) | type UsageEcosystemResponse struct
    method Status (line 3193) | func (r UsageEcosystemResponse) Status() string {
    method StatusCode (line 3201) | func (r UsageEcosystemResponse) StatusCode() int {
  type UsagePackageResponse (line 3208) | type UsagePackageResponse struct
    method Status (line 3215) | func (r UsagePackageResponse) Status() string {
    method StatusCode (line 3223) | func (r UsagePackageResponse) StatusCode() int {
  type UsagePackageDependenciesResponse (line 3230) | type UsagePackageDependenciesResponse struct
    method Status (line 3237) | func (r UsagePackageDependenciesResponse) Status() string {
    method StatusCode (line 3245) | func (r UsagePackageDependenciesResponse) StatusCode() int {
  function ParseGetRegistriesResponse (line 3451) | func ParseGetRegistriesResponse(rsp *http.Response) (*GetRegistriesRespo...
  function ParseLookupHostOwnerResponse (line 3477) | func ParseLookupHostOwnerResponse(rsp *http.Response) (*LookupHostOwnerR...
  function ParseGetHostResponse (line 3503) | func ParseGetHostResponse(rsp *http.Response) (*GetHostResponse, error) {
  function ParseGetHostOwnersResponse (line 3529) | func ParseGetHostOwnersResponse(rsp *http.Response) (*GetHostOwnersRespo...
  function ParseGetHostOwnerResponse (line 3555) | func ParseGetHostOwnerResponse(rsp *http.Response) (*GetHostOwnerRespons...
  function ParseGetHostOwnerRepositoriesResponse (line 3581) | func ParseGetHostOwnerRepositoriesResponse(rsp *http.Response) (*GetHost...
  function ParseGetHostRepositoriesResponse (line 3607) | func ParseGetHostRepositoriesResponse(rsp *http.Response) (*GetHostRepos...
  function ParseGetHostRepositoryResponse (line 3633) | func ParseGetHostRepositoryResponse(rsp *http.Response) (*GetHostReposit...
  function ParseGetHostRepositoryManifestsResponse (line 3659) | func ParseGetHostRepositoryManifestsResponse(rsp *http.Response) (*GetHo...
  function ParseGetHostRepositoryReleasesResponse (line 3685) | func ParseGetHostRepositoryReleasesResponse(rsp *http.Response) (*GetHos...
  function ParseGetHostRepositoryReleaseResponse (line 3711) | func ParseGetHostRepositoryReleaseResponse(rsp *http.Response) (*GetHost...
  function ParseGetHostRepositoryTagsResponse (line 3737) | func ParseGetHostRepositoryTagsResponse(rsp *http.Response) (*GetHostRep...
  function ParseGetHostRepositoryTagResponse (line 3763) | func ParseGetHostRepositoryTagResponse(rsp *http.Response) (*GetHostRepo...
  function ParseGetHostRepositoryTagManifestsResponse (line 3789) | func ParseGetHostRepositoryTagManifestsResponse(rsp *http.Response) (*Ge...
  function ParseGetHostRepositoryNamesResponse (line 3815) | func ParseGetHostRepositoryNamesResponse(rsp *http.Response) (*GetHostRe...
  function ParseRepositoriesLookupResponse (line 3841) | func ParseRepositoriesLookupResponse(rsp *http.Response) (*RepositoriesL...
  function ParseTopicsResponse (line 3867) | func ParseTopicsResponse(rsp *http.Response) (*TopicsResponse, error) {
  function ParseTopicResponse (line 3893) | func ParseTopicResponse(rsp *http.Response) (*TopicResponse, error) {
  function ParseUsageResponse (line 3919) | func ParseUsageResponse(rsp *http.Response) (*UsageResponse, error) {
  function ParseUsageEcosystemResponse (line 3945) | func ParseUsageEcosystemResponse(rsp *http.Response) (*UsageEcosystemRes...
  function ParseUsagePackageResponse (line 3971) | func ParseUsagePackageResponse(rsp *http.Response) (*UsagePackageRespons...
  function ParseUsagePackageDependenciesResponse (line 3997) | func ParseUsagePackageDependenciesResponse(rsp *http.Response) (*UsagePa...

FILE: internal/commands/default.go
  function NewDefaultCommand (line 21) | func NewDefaultCommand() *cobra.Command {
  function GetVersion (line 59) | func GetVersion() string {

FILE: internal/commands/deps/repos.go
  function NewRepoCommand (line 13) | func NewRepoCommand(logger *zerolog.Logger) *cobra.Command {

FILE: internal/commands/deps/root.go
  function NewDepsRootCommand (line 8) | func NewDepsRootCommand(logger *zerolog.Logger) *cobra.Command {

FILE: internal/commands/ecosystems/enrich.go
  function NewEnrichCommand (line 14) | func NewEnrichCommand(logger *zerolog.Logger) *cobra.Command {

FILE: internal/commands/ecosystems/packages.go
  function NewPackageCommand (line 13) | func NewPackageCommand(logger *zerolog.Logger) *cobra.Command {

FILE: internal/commands/ecosystems/repos.go
  function NewRepoCommand (line 12) | func NewRepoCommand(logger *zerolog.Logger) *cobra.Command {

FILE: internal/commands/ecosystems/root.go
  function NewEcosystemsRootCommand (line 8) | func NewEcosystemsRootCommand(logger *zerolog.Logger) *cobra.Command {

FILE: internal/commands/scorecard/enrich.go
  function NewEnrichCommand (line 14) | func NewEnrichCommand(logger *zerolog.Logger) *cobra.Command {

FILE: internal/commands/scorecard/root.go
  function NewRootCommand (line 8) | func NewRootCommand(logger *zerolog.Logger) *cobra.Command {

FILE: internal/commands/snyk/config.go
  function config (line 9) | func config() *snyk.Config {

FILE: internal/commands/snyk/enrich.go
  function NewEnrichCommand (line 14) | func NewEnrichCommand(logger *zerolog.Logger) *cobra.Command {

FILE: internal/commands/snyk/packages.go
  function NewPackageCommand (line 13) | func NewPackageCommand(logger *zerolog.Logger) *cobra.Command {

FILE: internal/commands/snyk/root.go
  function NewSnykRootCommand (line 8) | func NewSnykRootCommand(logger *zerolog.Logger) *cobra.Command {

FILE: internal/utils/cdx.go
  function traverseComponent (line 7) | func traverseComponent(comps *[]*cdx.Component, comp *cdx.Component) {
  function DiscoverCDXComponents (line 17) | func DiscoverCDXComponents(bom *cdx.BOM) []*cdx.Component {

FILE: internal/utils/cdx_test.go
  function TestDiscoverCDXComponents (line 12) | func TestDiscoverCDXComponents(t *testing.T) {

FILE: internal/utils/input.go
  function GetUserInput (line 12) | func GetUserInput(filename string, file io.Reader) (b []byte, err error) {

FILE: internal/utils/input_test.go
  function TestGetUserInput_File (line 12) | func TestGetUserInput_File(t *testing.T) {
  function TestGetUserInput_BadFile (line 22) | func TestGetUserInput_BadFile(t *testing.T) {
  function TestGetUserInput_Stdin (line 29) | func TestGetUserInput_Stdin(t *testing.T) {
  function TestGetUserInput_NoContent (line 38) | func TestGetUserInput_NoContent(t *testing.T) {
  function writeToTempFile (line 47) | func writeToTempFile(t *testing.T, b []byte) *os.File {

FILE: internal/utils/spdx.go
  function GetPurlFromSPDXPackage (line 13) | func GetPurlFromSPDXPackage(pkg *spdx_2_3.Package) (*packageurl.PackageU...
  function GetLicensesFromEcosystemsLicense (line 35) | func GetLicensesFromEcosystemsLicense(pkgVersionData *packages.VersionWi...
  function GetLicenseExpressionFromEcosystemsLicense (line 44) | func GetLicenseExpressionFromEcosystemsLicense(pkgVersionData *packages....

FILE: internal/utils/spdx_test.go
  function TestGetSPDXLicenseExpressionFromEcosystemsLicense (line 12) | func TestGetSPDXLicenseExpressionFromEcosystemsLicense(t *testing.T) {
  function TestGetSPDXLicenseExpressionFromEcosystemsLicense_NoData (line 22) | func TestGetSPDXLicenseExpressionFromEcosystemsLicense_NoData(t *testing...
  function TestGetSPDXLicenseExpressionFromEcosystemsLicense_NoVersionedData (line 28) | func TestGetSPDXLicenseExpressionFromEcosystemsLicense_NoVersionedData(t...
  function TestGetSPDXLicenseExpressionFromEcosystemsLicense_NoLatestData (line 37) | func TestGetSPDXLicenseExpressionFromEcosystemsLicense_NoLatestData(t *t...
  function TestGetSPDXLicenseExpressionFromEcosystemsLicense_NoLicenses (line 46) | func TestGetSPDXLicenseExpressionFromEcosystemsLicense_NoLicenses(t *tes...
  function TestGetSPDXLicenseExpressionFromEcosystemsLicense_EmptyLicenses (line 54) | func TestGetSPDXLicenseExpressionFromEcosystemsLicense_EmptyLicenses(t *...

FILE: lib/deps/repo.go
  function GetRepoData (line 23) | func GetRepoData(url string) (*depsdev.Project, error) {

FILE: lib/ecosystems/cache.go
  type Cache (line 27) | type Cache interface
  type InMemoryCache (line 32) | type InMemoryCache struct
    method GetPackageData (line 66) | func (c *InMemoryCache) GetPackageData(purl packageurl.PackageURL) (*p...
    method GetPackageVersionData (line 88) | func (c *InMemoryCache) GetPackageVersionData(purl packageurl.PackageU...
    method GetCacheStats (line 110) | func (c *InMemoryCache) GetCacheStats() (int, int) {
  function NewInMemoryCache (line 43) | func NewInMemoryCache() *InMemoryCache {
  function GetGlobalCache (line 53) | func GetGlobalCache() *InMemoryCache {
  function ResetGlobalCache (line 61) | func ResetGlobalCache() {

FILE: lib/ecosystems/cache_test.go
  function TestInMemoryCache_GetPackageData (line 29) | func TestInMemoryCache_GetPackageData(t *testing.T) {
  function TestInMemoryCache_GetPackageVersionData (line 61) | func TestInMemoryCache_GetPackageVersionData(t *testing.T) {
  function TestInMemoryCache_DifferentPackages (line 93) | func TestInMemoryCache_DifferentPackages(t *testing.T) {
  function TestInMemoryCache_SamePackageDifferentVersions (line 122) | func TestInMemoryCache_SamePackageDifferentVersions(t *testing.T) {
  function TestInMemoryCache_APIError (line 152) | func TestInMemoryCache_APIError(t *testing.T) {
  function TestInMemoryCache_404NotFound (line 187) | func TestInMemoryCache_404NotFound(t *testing.T) {
  function TestInMemoryCache_404NotFoundVersionData (line 222) | func TestInMemoryCache_404NotFoundVersionData(t *testing.T) {
  function TestInMemoryCache_ConcurrentAccess (line 256) | func TestInMemoryCache_ConcurrentAccess(t *testing.T) {
  function TestGetGlobalCache_Singleton (line 295) | func TestGetGlobalCache_Singleton(t *testing.T) {
  function TestGetGlobalCache_SharesDataAcrossEnrichments (line 303) | func TestGetGlobalCache_SharesDataAcrossEnrichments(t *testing.T) {

FILE: lib/ecosystems/enrich.go
  function EnrichSBOM (line 27) | func EnrichSBOM(doc *sbom.SBOMDocument, logger *zerolog.Logger) *sbom.SB...

FILE: lib/ecosystems/enrich_cyclonedx.go
  function enrichCDXDescription (line 57) | func enrichCDXDescription(comp *cdx.Component, data *packages.Package) {
  function enrichCDXLicense (line 63) | func enrichCDXLicense(comp *cdx.Component, pkgVersionData *packages.Vers...
  function enrichExternalReference (line 71) | func enrichExternalReference(comp *cdx.Component, ref *string, refType c...
  function enrichProperty (line 89) | func enrichProperty(comp *cdx.Component, name string, value string) {
  function enrichCDXHomepage (line 101) | func enrichCDXHomepage(comp *cdx.Component, data *packages.Package) {
  function enrichCDXRegistryURL (line 105) | func enrichCDXRegistryURL(comp *cdx.Component, data *packages.Package) {
  function enrichCDXRepositoryURL (line 109) | func enrichCDXRepositoryURL(comp *cdx.Component, data *packages.Package) {
  function enrichCDXDocumentationURL (line 113) | func enrichCDXDocumentationURL(comp *cdx.Component, data *packages.Packa...
  function enrichCDXFirstReleasePublishedAt (line 117) | func enrichCDXFirstReleasePublishedAt(comp *cdx.Component, data *package...
  function enrichCDXLatestReleasePublishedAt (line 125) | func enrichCDXLatestReleasePublishedAt(comp *cdx.Component, data *packag...
  function enrichCDXRepoArchived (line 133) | func enrichCDXRepoArchived(comp *cdx.Component, data *packages.Package) {
  function enrichCDXLocation (line 141) | func enrichCDXLocation(comp *cdx.Component, data *packages.Package) {
  function enrichCDXAuthor (line 152) | func enrichCDXAuthor(comp *cdx.Component, data *packages.Package) {
  function enrichCDXSupplier (line 163) | func enrichCDXSupplier(comp *cdx.Component, data *packages.Package) {
  function enrichCDXTopics (line 184) | func enrichCDXTopics(comp *cdx.Component, data *packages.Package) {
  function enrichCDX (line 198) | func enrichCDX(bom *cdx.BOM, logger *zerolog.Logger) {

FILE: lib/ecosystems/enrich_cyclonedx_test.go
  function TestEnrichSBOM_CycloneDX (line 33) | func TestEnrichSBOM_CycloneDX(t *testing.T) {
  function TestEnrichSBOM_CycloneDX_NestedComps (line 95) | func TestEnrichSBOM_CycloneDX_NestedComps(t *testing.T) {
  function TestEnrichSBOMWithoutLicense (line 134) | func TestEnrichSBOMWithoutLicense(t *testing.T) {
  function TestEnrichDescription (line 172) | func TestEnrichDescription(t *testing.T) {
  function TestEnrichLicense (line 188) | func TestEnrichLicense(t *testing.T) {
  function TestEnrichLicenseNoVersionedLicense (line 207) | func TestEnrichLicenseNoVersionedLicense(t *testing.T) {
  function TestEnrichLicenseNoLatestLicense (line 226) | func TestEnrichLicenseNoLatestLicense(t *testing.T) {
  function TestEnrichBlankSBOM (line 245) | func TestEnrichBlankSBOM(t *testing.T) {
  function TestEnrichExternalReferenceWithNilURL (line 255) | func TestEnrichExternalReferenceWithNilURL(t *testing.T) {
  function TestEnrichExternalReferenceWithNonNullURL (line 264) | func TestEnrichExternalReferenceWithNonNullURL(t *testing.T) {
  function TestEnrichHomepageWithNilHomepage (line 276) | func TestEnrichHomepageWithNilHomepage(t *testing.T) {
  function TestEnrichHomepageWithNonNullHomepage (line 285) | func TestEnrichHomepageWithNonNullHomepage(t *testing.T) {
  function TestEnrichRegistryURLWithNilRegistryURL (line 297) | func TestEnrichRegistryURLWithNilRegistryURL(t *testing.T) {
  function TestEnrichRegistryURLWithNonNullRegistryURL (line 306) | func TestEnrichRegistryURLWithNonNullRegistryURL(t *testing.T) {
  function pointerToString (line 318) | func pointerToString(t *testing.T, s string) *string {
  function TestEnrichLatestReleasePublishedAt (line 323) | func TestEnrichLatestReleasePublishedAt(t *testing.T) {
  function TestEnrichLocation (line 345) | func TestEnrichLocation(t *testing.T) {

FILE: lib/ecosystems/enrich_spdx.go
  function enrichSPDX (line 33) | func enrichSPDX(bom *spdx.Document, logger *zerolog.Logger) {
  function extractPurl (line 74) | func extractPurl(pkg *v2_3.Package) (*packageurl.PackageURL, error) {
  function enrichSPDXSupplier (line 88) | func enrichSPDXSupplier(pkg *v2_3.Package, data *packages.Package) {
  function enrichSPDXLicense (line 102) | func enrichSPDXLicense(pkg *v2_3.Package, pkgVersionData *packages.Versi...
  function enrichSPDXHomepage (line 109) | func enrichSPDXHomepage(pkg *v2_3.Package, data *packages.Package) {
  function enrichSPDXDescription (line 116) | func enrichSPDXDescription(pkg *v2_3.Package, data *packages.Package) {

FILE: lib/ecosystems/enrich_spdx_test.go
  function parseJson (line 35) | func parseJson(t *testing.T, jsonStr string) map[string]any {
  function setupHttpmock (line 42) | func setupHttpmock(t *testing.T, packageVersionsResponse, packageRespons...
  function TestEnrichSBOM_SPDX (line 62) | func TestEnrichSBOM_SPDX(t *testing.T) {
  function TestEnrichSBOM_MissingVersionedLicense (line 119) | func TestEnrichSBOM_MissingVersionedLicense(t *testing.T) {
  function TestEnrichSBOM_SPDX_NoSupplierName (line 177) | func TestEnrichSBOM_SPDX_NoSupplierName(t *testing.T) {

FILE: lib/ecosystems/package.go
  constant server (line 30) | server = "https://packages.ecosyste.ms/api/v1"
  function getUserAgent (line 35) | func getUserAgent() string {
  function GetPackageData (line 39) | func GetPackageData(purl packageurl.PackageURL) (*packages.GetRegistryPa...
  function GetPackageVersionData (line 59) | func GetPackageVersionData(purl packageurl.PackageURL) (*packages.GetReg...
  function repositoryURLfromPurl (line 79) | func repositoryURLfromPurl(purl packageurl.PackageURL) *url.URL {
  function purlToEcosystemsRegistry (line 92) | func purlToEcosystemsRegistry(purl packageurl.PackageURL) string {
  function purlToEcosystemsName (line 125) | func purlToEcosystemsName(purl packageurl.PackageURL) string {

FILE: lib/ecosystems/package_test.go
  function TestGetPackageData (line 30) | func TestGetPackageData(t *testing.T) {
  function TestGetPackageDataUserAgent (line 51) | func TestGetPackageDataUserAgent(t *testing.T) {
  function TestGetPackageVersionDataUserAgent (line 79) | func TestGetPackageVersionDataUserAgent(t *testing.T) {
  function TestPurlToEcosystemsRegistry (line 102) | func TestPurlToEcosystemsRegistry(t *testing.T) {
  function TestPurlToEcosystemsName (line 147) | func TestPurlToEcosystemsName(t *testing.T) {

FILE: lib/ecosystems/repo.go
  constant repos_server (line 26) | repos_server = "https://repos.ecosyste.ms/api/v1"
  function GetRepoData (line 28) | func GetRepoData(url string) (*repos.RepositoriesLookupResponse, error) {

FILE: lib/ecosystems/repo_test.go
  function TestGetRepoData (line 29) | func TestGetRepoData(t *testing.T) {
  function TestGetRepoDataUserAgent (line 47) | func TestGetRepoDataUserAgent(t *testing.T) {

FILE: lib/sbom/cyclonedx.go
  function decodeCycloneDX1_4JSON (line 26) | func decodeCycloneDX1_4JSON(b []byte) (*cdx.BOM, error) {
  function decodeCycloneDX1_4XML (line 30) | func decodeCycloneDX1_4XML(b []byte) (*cdx.BOM, error) {
  function decodeCycloneDX (line 34) | func decodeCycloneDX(b []byte, f cdx.BOMFileFormat) (*cdx.BOM, error) {
  function encodeCycloneDX1_4JSON (line 43) | func encodeCycloneDX1_4JSON(bom *cdx.BOM) encoderFn {
  function encodeCycloneDX1_4XML (line 47) | func encodeCycloneDX1_4XML(bom *cdx.BOM) encoderFn {
  function encodeCycloneDX (line 51) | func encodeCycloneDX(bom *cdx.BOM, f cdx.BOMFileFormat) encoderFn {

FILE: lib/sbom/decode.go
  function DecodeSBOMDocument (line 25) | func DecodeSBOMDocument(b []byte) (*SBOMDocument, error) {
  function identifySBOMFormat (line 63) | func identifySBOMFormat(b []byte) (SBOMFormat, error) {

FILE: lib/sbom/decode_test.go
  function TestDecodeSBOMDocument_CycloneDX1_4JSON (line 36) | func TestDecodeSBOMDocument_CycloneDX1_4JSON(t *testing.T) {
  function TestDecodeSBOMDocument_CycloneDX1_4XML (line 48) | func TestDecodeSBOMDocument_CycloneDX1_4XML(t *testing.T) {
  function TestDecodeSBOMDocument_SPDX2_3JSON (line 60) | func TestDecodeSBOMDocument_SPDX2_3JSON(t *testing.T) {
  function TestDecodeSBOMDocument_Unknown (line 72) | func TestDecodeSBOMDocument_Unknown(t *testing.T) {
  function Test_identifySBOMFormat (line 79) | func Test_identifySBOMFormat(t *testing.T) {

FILE: lib/sbom/encode.go
  type SBOMEncoder (line 22) | type SBOMEncoder interface
  type encoderFn (line 26) | type encoderFn

FILE: lib/sbom/format.go
  type SBOMFormat (line 19) | type SBOMFormat
  constant SBOMFormatCycloneDX1_4JSON (line 22) | SBOMFormatCycloneDX1_4JSON = SBOMFormat("CycloneDX 1.4 JSON")
  constant SBOMFormatCycloneDX1_4XML (line 23) | SBOMFormatCycloneDX1_4XML  = SBOMFormat("CycloneDX 1.4 XML")
  constant SBOMFormatSPDX2_3JSON (line 25) | SBOMFormatSPDX2_3JSON = SBOMFormat("SPDX 2.3 JSON")

FILE: lib/sbom/sbom.go
  type SBOMDocument (line 24) | type SBOMDocument struct
    method Encode (line 33) | func (d *SBOMDocument) Encode(w io.Writer) error {

FILE: lib/sbom/spdx.go
  function decodeSPDX2_3JSON (line 27) | func decodeSPDX2_3JSON(b []byte) (*spdx.Document, error) {
  function encodeSPDX2_3JSON (line 31) | func encodeSPDX2_3JSON(bom *spdx.Document) encoderFn {

FILE: lib/scorecard/enrich.go
  function EnrichSBOM (line 26) | func EnrichSBOM(doc *sbom.SBOMDocument) *sbom.SBOMDocument {

FILE: lib/scorecard/enrich_cyclonedx.go
  function cdxEnrichExternalReference (line 33) | func cdxEnrichExternalReference(comp *cdx.Component, url, comment string...
  function enrichCDX (line 47) | func enrichCDX(bom *cdx.BOM) {

FILE: lib/scorecard/enrich_spdx.go
  function enrichSPDX (line 31) | func enrichSPDX(bom *spdx.Document) {

FILE: lib/scorecard/enrich_test.go
  constant scorecardURL (line 33) | scorecardURL = "https://api.securityscorecards.dev/projects/example.com/...
  function TestEnrichSBOM_CycloneDX (line 35) | func TestEnrichSBOM_CycloneDX(t *testing.T) {
  function TestEnrichSBOM_CycloneDX_NestedComponents (line 66) | func TestEnrichSBOM_CycloneDX_NestedComponents(t *testing.T) {
  function TestEnrichSBOM_ErrorFetchingPackageData (line 104) | func TestEnrichSBOM_ErrorFetchingPackageData(t *testing.T) {
  function TestEnrichSBOM_ErrorFetchingScorecard (line 133) | func TestEnrichSBOM_ErrorFetchingScorecard(t *testing.T) {
  function TestEnrichSBOM_SPDX (line 166) | func TestEnrichSBOM_SPDX(t *testing.T) {
  function setupEcosystemsAPIMock (line 197) | func setupEcosystemsAPIMock(t *testing.T) func() {

FILE: lib/snyk/config.go
  type Config (line 28) | type Config struct
  function DefaultConfig (line 33) | func DefaultConfig() *Config {
  function getUserAgent (line 39) | func getUserAgent() string {
  function addParlayUserAgent (line 43) | func addParlayUserAgent(ctx context.Context, req *http.Request) error {

FILE: lib/snyk/enrich.go
  constant snykAdvisorWebURL (line 28) | snykAdvisorWebURL         = "https://snyk.io/advisor"
  constant snykVulnerabilityDBWebURL (line 29) | snykVulnerabilityDBWebURL = "https://security.snyk.io"
  function EnrichSBOM (line 32) | func EnrichSBOM(cfg *Config, doc *sbom.SBOMDocument, logger *zerolog.Log...

FILE: lib/snyk/enrich_cyclonedx.go
  type cdxPurlGroup (line 36) | type cdxPurlGroup struct
  function enrichCDXSnykVulnerabilityDBData (line 46) | func enrichCDXSnykVulnerabilityDBData(cfg *Config, component *cdx.Compon...
  function enrichCDXSnykAdvisorData (line 62) | func enrichCDXSnykAdvisorData(cfg *Config, component *cdx.Component, pur...
  function enrichCycloneDX (line 78) | func enrichCycloneDX(cfg *Config, bom *cdx.BOM, logger *zerolog.Logger) ...
  function levelToCdxSeverity (line 281) | func levelToCdxSeverity(level *string) (severity cdx.Severity) {
  function versionToCdxMethod (line 297) | func versionToCdxMethod(version *string) (method cdx.ScoringMethod) {

FILE: lib/snyk/enrich_spdx.go
  type spdxPurlGroup (line 37) | type spdxPurlGroup struct
  function enrichSPDXSnykAdvisorData (line 47) | func enrichSPDXSnykAdvisorData(cfg *Config, component *spdx_2_3.Package,...
  function enrichSPDXSnykVulnerabilityDBData (line 64) | func enrichSPDXSnykVulnerabilityDBData(cfg *Config, component *spdx_2_3....
  function enrichSPDX (line 81) | func enrichSPDX(cfg *Config, bom *spdx.Document, logger *zerolog.Logger)...

FILE: lib/snyk/enrich_test.go
  function TestEnrichSBOM_CycloneDXWithVulnerabilities (line 29) | func TestEnrichSBOM_CycloneDXWithVulnerabilities(t *testing.T) {
  function TestEnrichSBOM_CycloneDXDeduplicatesRequests (line 60) | func TestEnrichSBOM_CycloneDXDeduplicatesRequests(t *testing.T) {
  function TestEnrichSBOM_CycloneDXExternalRefs (line 115) | func TestEnrichSBOM_CycloneDXExternalRefs(t *testing.T) {
  function TestEnrichSBOM_CycloneDXExternalRefs_WithNamespace (line 147) | func TestEnrichSBOM_CycloneDXExternalRefs_WithNamespace(t *testing.T) {
  function TestEnrichSBOM_CycloneDXWithVulnerabilities_NestedComponents (line 179) | func TestEnrichSBOM_CycloneDXWithVulnerabilities_NestedComponents(t *tes...
  function TestEnrichSBOM_CycloneDXWithoutVulnerabilities (line 208) | func TestEnrichSBOM_CycloneDXWithoutVulnerabilities(t *testing.T) {
  function TestEnrichSBOM_SPDXWithVulnerabilities (line 228) | func TestEnrichSBOM_SPDXWithVulnerabilities(t *testing.T) {
  function TestEnrichSBOM_SPDXDeduplicatesRequests (line 258) | func TestEnrichSBOM_SPDXDeduplicatesRequests(t *testing.T) {
  function TestEnrichSBOM_SPDXExternalRefs (line 331) | func TestEnrichSBOM_SPDXExternalRefs(t *testing.T) {
  function setupTestEnv (line 372) | func setupTestEnv(t *testing.T) Service {
  function respond (line 414) | func respond(w http.ResponseWriter, data []byte) {

FILE: lib/snyk/package.go
  constant version (line 35) | version = "2024-06-26"
  function purlToSnykAdvisor (line 37) | func purlToSnykAdvisor(purl *packageurl.PackageURL) string {
  function SnykAdvisorURL (line 46) | func SnykAdvisorURL(cfg *Config, purl *packageurl.PackageURL) string {
  function purlToSnykVulnDB (line 59) | func purlToSnykVulnDB(purl *packageurl.PackageURL) string {
  function SnykVulnURL (line 76) | func SnykVulnURL(cfg *Config, purl *packageurl.PackageURL) string {
  function GetPackageVulnerabilities (line 89) | func GetPackageVulnerabilities(cfg *Config, purl *packageurl.PackageURL,...
  function getRetryClient (line 112) | func getRetryClient(logger *zerolog.Logger) *http.Client {
  function parseRateLimitHeader (line 137) | func parseRateLimitHeader(v string) (time.Duration, bool) {

FILE: lib/snyk/package_test.go
  function TestGetPackageVulnerabilities_RetryRateLimited (line 31) | func TestGetPackageVulnerabilities_RetryRateLimited(t *testing.T) {
  function TestGetPackageVulnerabilities_HandlesNilResponses (line 62) | func TestGetPackageVulnerabilities_HandlesNilResponses(t *testing.T) {
  function TestGetPackageVulnerabilities_SetsUserAgent (line 93) | func TestGetPackageVulnerabilities_SetsUserAgent(t *testing.T) {

FILE: lib/snyk/self.go
  constant experimentalVersion (line 31) | experimentalVersion = "2023-04-28~experimental"
  function SnykOrgID (line 33) | func SnykOrgID(cfg *Config, auth *securityprovider.SecurityProviderApiKe...
  function AuthFromToken (line 64) | func AuthFromToken(token string) (*securityprovider.SecurityProviderApiK...

FILE: lib/snyk/self_test.go
  function TestSnykOrgID_Success (line 34) | func TestSnykOrgID_Success(t *testing.T) {
  function TestSnykOrgID_Unauthorized (line 51) | func TestSnykOrgID_Unauthorized(t *testing.T) {
  function TestSnykOrgID_SetsUserAgent (line 69) | func TestSnykOrgID_SetsUserAgent(t *testing.T) {

FILE: lib/snyk/service.go
  type Service (line 13) | type Service interface
  type serviceImpl (line 18) | type serviceImpl struct
    method EnrichSBOM (line 29) | func (svc *serviceImpl) EnrichSBOM(doc *sbom.SBOMDocument) *sbom.SBOMD...
    method GetPackageVulnerabilities (line 33) | func (svc *serviceImpl) GetPackageVulnerabilities(purl *packageurl.Pac...
    method getAuth (line 47) | func (svc *serviceImpl) getAuth() (*securityprovider.SecurityProviderA...
    method getOrgID (line 51) | func (svc *serviceImpl) getOrgID(auth *securityprovider.SecurityProvid...
  function NewService (line 25) | func NewService(cfg *Config, logger *zerolog.Logger) Service {

FILE: main.go
  function main (line 25) | func main() {

FILE: snyk/issues/issues.go
  constant APITokenScopes (line 23) | APITokenScopes   = "APIToken.Scopes"
  constant BearerAuthScopes (line 24) | BearerAuthScopes = "BearerAuth.Scopes"
  constant Compliance (line 29) | Compliance   ClassTypeDef = "compliance"
  constant RuleCategory (line 30) | RuleCategory ClassTypeDef = "rule-category"
  constant Weakness (line 31) | Weakness     ClassTypeDef = "weakness"
  constant CommonIssueModelVThreeAttributesEffectiveSeverityLevelCritical (line 36) | CommonIssueModelVThreeAttributesEffectiveSeverityLevelCritical CommonIss...
  constant CommonIssueModelVThreeAttributesEffectiveSeverityLevelHigh (line 37) | CommonIssueModelVThreeAttributesEffectiveSeverityLevelHigh     CommonIss...
  constant CommonIssueModelVThreeAttributesEffectiveSeverityLevelInfo (line 38) | CommonIssueModelVThreeAttributesEffectiveSeverityLevelInfo     CommonIss...
  constant CommonIssueModelVThreeAttributesEffectiveSeverityLevelLow (line 39) | CommonIssueModelVThreeAttributesEffectiveSeverityLevelLow      CommonIss...
  constant CommonIssueModelVThreeAttributesEffectiveSeverityLevelMedium (line 40) | CommonIssueModelVThreeAttributesEffectiveSeverityLevelMedium   CommonIss...
  constant Ignore (line 45) | Ignore IgnoreType = "ignore"
  constant Function (line 50) | Function      IssueAttributesCoordinatesReachability = "function"
  constant NoInfo (line 51) | NoInfo        IssueAttributesCoordinatesReachability = "no-info"
  constant NotApplicable (line 52) | NotApplicable IssueAttributesCoordinatesReachability = "not-applicable"
  constant Package (line 53) | Package       IssueAttributesCoordinatesReachability = "package"
  constant IssueAttributesCoordinatesRemediesTypeArm (line 58) | IssueAttributesCoordinatesRemediesTypeArm               IssueAttributesC...
  constant IssueAttributesCoordinatesRemediesTypeAutomated (line 59) | IssueAttributesCoordinatesRemediesTypeAutomated         IssueAttributesC...
  constant IssueAttributesCoordinatesRemediesTypeCli (line 60) | IssueAttributesCoordinatesRemediesTypeCli               IssueAttributesC...
  constant IssueAttributesCoordinatesRemediesTypeCloudformation (line 61) | IssueAttributesCoordinatesRemediesTypeCloudformation    IssueAttributesC...
  constant IssueAttributesCoordinatesRemediesTypeIndeterminate (line 62) | IssueAttributesCoordinatesRemediesTypeIndeterminate     IssueAttributesC...
  constant IssueAttributesCoordinatesRemediesTypeKubernetes (line 63) | IssueAttributesCoordinatesRemediesTypeKubernetes        IssueAttributesC...
  constant IssueAttributesCoordinatesRemediesTypeManual (line 64) | IssueAttributesCoordinatesRemediesTypeManual            IssueAttributesC...
  constant IssueAttributesCoordinatesRemediesTypeRuleResultMessage (line 65) | IssueAttributesCoordinatesRemediesTypeRuleResultMessage IssueAttributesC...
  constant IssueAttributesCoordinatesRemediesTypeTerraform (line 66) | IssueAttributesCoordinatesRemediesTypeTerraform         IssueAttributesC...
  constant IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentTypeAws (line 71) | IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentTypeAw...
  constant IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentTypeAzure (line 72) | IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentTypeAz...
  constant IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentTypeAzureAd (line 73) | IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentTypeAz...
  constant IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentTypeCli (line 74) | IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentTypeCl...
  constant IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentTypeGoogle (line 75) | IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentTypeGo...
  constant IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentTypeScm (line 76) | IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentTypeSc...
  constant IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentTypeTfc (line 77) | IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentTypeTf...
  constant Arm (line 82) | Arm       IssueAttributesCoordinatesRepresentations2CloudResourceResourc...
  constant Cfn (line 83) | Cfn       IssueAttributesCoordinatesRepresentations2CloudResourceResourc...
  constant CloudScan (line 84) | CloudScan IssueAttributesCoordinatesRepresentations2CloudResourceResourc...
  constant K8s (line 85) | K8s       IssueAttributesCoordinatesRepresentations2CloudResourceResourc...
  constant Tf (line 86) | Tf        IssueAttributesCoordinatesRepresentations2CloudResourceResourc...
  constant TfHcl (line 87) | TfHcl     IssueAttributesCoordinatesRepresentations2CloudResourceResourc...
  constant TfPlan (line 88) | TfPlan    IssueAttributesCoordinatesRepresentations2CloudResourceResourc...
  constant TfState (line 89) | TfState   IssueAttributesCoordinatesRepresentations2CloudResourceResourc...
  constant IssueAttributesCoordinatesRepresentations2CloudResourceResourceTypeCloud (line 94) | IssueAttributesCoordinatesRepresentations2CloudResourceResourceTypeCloud...
  constant IssueAttributesCoordinatesRepresentations2CloudResourceResourceTypeIac (line 95) | IssueAttributesCoordinatesRepresentations2CloudResourceResourceTypeIac  ...
  constant IssueAttributesEffectiveSeverityLevelCritical (line 100) | IssueAttributesEffectiveSeverityLevelCritical IssueAttributesEffectiveSe...
  constant IssueAttributesEffectiveSeverityLevelHigh (line 101) | IssueAttributesEffectiveSeverityLevelHigh     IssueAttributesEffectiveSe...
  constant IssueAttributesEffectiveSeverityLevelInfo (line 102) | IssueAttributesEffectiveSeverityLevelInfo     IssueAttributesEffectiveSe...
  constant IssueAttributesEffectiveSeverityLevelLow (line 103) | IssueAttributesEffectiveSeverityLevelLow      IssueAttributesEffectiveSe...
  constant IssueAttributesEffectiveSeverityLevelMedium (line 104) | IssueAttributesEffectiveSeverityLevelMedium   IssueAttributesEffectiveSe...
  constant IssueAttributesStatusOpen (line 109) | IssueAttributesStatusOpen     IssueAttributesStatus = "open"
  constant IssueAttributesStatusResolved (line 110) | IssueAttributesStatusResolved IssueAttributesStatus = "resolved"
  constant IssueTypeIssue (line 115) | IssueTypeIssue IssueType = "issue"
  constant Organization (line 120) | Organization OrganizationType = "organization"
  constant Rule (line 125) | Rule          ProblemTypeDef = "rule"
  constant Vulnerability (line 126) | Vulnerability ProblemTypeDef = "vulnerability"
  constant Disappeared (line 131) | Disappeared ResolutionTypeDef = "disappeared"
  constant Fixed (line 132) | Fixed       ResolutionTypeDef = "fixed"
  constant Environment (line 137) | Environment ScanItemType = "environment"
  constant Project (line 138) | Project     ScanItemType = "project"
  constant CustomExecution (line 143) | CustomExecution       TestExecutionType = "custom-execution"
  constant TestWorkflowExecution (line 144) | TestWorkflowExecution TestExecutionType = "test-workflow-execution"
  constant TypeDefCloud (line 149) | TypeDefCloud                TypeDef = "cloud"
  constant TypeDefCode (line 150) | TypeDefCode                 TypeDef = "code"
  constant TypeDefConfig (line 151) | TypeDefConfig               TypeDef = "config"
  constant TypeDefCustom (line 152) | TypeDefCustom               TypeDef = "custom"
  constant TypeDefLicense (line 153) | TypeDefLicense              TypeDef = "license"
  constant TypeDefPackageVulnerability (line 154) | TypeDefPackageVulnerability TypeDef = "package_vulnerability"
  constant ListGroupIssuesParamsEffectiveSeverityLevelCritical (line 159) | ListGroupIssuesParamsEffectiveSeverityLevelCritical ListGroupIssuesParam...
  constant ListGroupIssuesParamsEffectiveSeverityLevelHigh (line 160) | ListGroupIssuesParamsEffectiveSeverityLevelHigh     ListGroupIssuesParam...
  constant ListGroupIssuesParamsEffectiveSeverityLevelInfo (line 161) | ListGroupIssuesParamsEffectiveSeverityLevelInfo     ListGroupIssuesParam...
  constant ListGroupIssuesParamsEffectiveSeverityLevelLow (line 162) | ListGroupIssuesParamsEffectiveSeverityLevelLow      ListGroupIssuesParam...
  constant ListGroupIssuesParamsEffectiveSeverityLevelMedium (line 163) | ListGroupIssuesParamsEffectiveSeverityLevelMedium   ListGroupIssuesParam...
  constant ListGroupIssuesParamsStatusOpen (line 168) | ListGroupIssuesParamsStatusOpen     ListGroupIssuesParamsStatus = "open"
  constant ListGroupIssuesParamsStatusResolved (line 169) | ListGroupIssuesParamsStatusResolved ListGroupIssuesParamsStatus = "resol...
  constant ListOrgIssuesParamsEffectiveSeverityLevelCritical (line 174) | ListOrgIssuesParamsEffectiveSeverityLevelCritical ListOrgIssuesParamsEff...
  constant ListOrgIssuesParamsEffectiveSeverityLevelHigh (line 175) | ListOrgIssuesParamsEffectiveSeverityLevelHigh     ListOrgIssuesParamsEff...
  constant ListOrgIssuesParamsEffectiveSeverityLevelInfo (line 176) | ListOrgIssuesParamsEffectiveSeverityLevelInfo     ListOrgIssuesParamsEff...
  constant ListOrgIssuesParamsEffectiveSeverityLevelLow (line 177) | ListOrgIssuesParamsEffectiveSeverityLevelLow      ListOrgIssuesParamsEff...
  constant ListOrgIssuesParamsEffectiveSeverityLevelMedium (line 178) | ListOrgIssuesParamsEffectiveSeverityLevelMedium   ListOrgIssuesParamsEff...
  constant Open (line 183) | Open     ListOrgIssuesParamsStatus = "open"
  constant Resolved (line 184) | Resolved ListOrgIssuesParamsStatus = "resolved"
  type BulkPackageUrlsRequestBody (line 191) | type BulkPackageUrlsRequestBody struct
  type CVSSSource (line 202) | type CVSSSource struct
  type Class (line 214) | type Class struct
  type ClassTypeDef (line 224) | type ClassTypeDef
  type CommonIssueModelVThree (line 227) | type CommonIssueModelVThree struct
  type CommonIssueModelVThreeAttributesEffectiveSeverityLevel (line 261) | type CommonIssueModelVThreeAttributesEffectiveSeverityLevel
  type Coordinate (line 264) | type Coordinate struct
  type Coordinate_Representations_Item (line 272) | type Coordinate_Representations_Item struct
    method AsResourcePathRepresentation (line 1065) | func (t Coordinate_Representations_Item) AsResourcePathRepresentation(...
    method FromResourcePathRepresentation (line 1072) | func (t *Coordinate_Representations_Item) FromResourcePathRepresentati...
    method MergeResourcePathRepresentation (line 1079) | func (t *Coordinate_Representations_Item) MergeResourcePathRepresentat...
    method AsPackageRepresentation (line 1091) | func (t Coordinate_Representations_Item) AsPackageRepresentation() (Pa...
    method FromPackageRepresentation (line 1098) | func (t *Coordinate_Representations_Item) FromPackageRepresentation(v ...
    method MergePackageRepresentation (line 1105) | func (t *Coordinate_Representations_Item) MergePackageRepresentation(v...
    method MarshalJSON (line 1116) | func (t Coordinate_Representations_Item) MarshalJSON() ([]byte, error) {
    method UnmarshalJSON (line 1121) | func (t *Coordinate_Representations_Item) UnmarshalJSON(b []byte) error {
  type DeployedRiskFactor (line 277) | type DeployedRiskFactor struct
  type Error (line 286) | type Error struct
  type ErrorDocument (line 315) | type ErrorDocument struct
  type ErrorLink (line 321) | type ErrorLink struct
  type ExploitDetails (line 326) | type ExploitDetails struct
  type IgnoreType (line 335) | type IgnoreType
  type Issue (line 338) | type Issue struct
  type IssueAttributes (line 349) | type IssueAttributes struct
  type IssueAttributesCoordinatesReachability (line 438) | type IssueAttributesCoordinatesReachability
  type IssueAttributesCoordinatesRemediesType (line 441) | type IssueAttributesCoordinatesRemediesType
  type IssueAttributesCoordinatesRepresentations0 (line 444) | type IssueAttributesCoordinatesRepresentations0 struct
  type IssueAttributesCoordinatesRepresentations1 (line 449) | type IssueAttributesCoordinatesRepresentations1 struct
  type IssueAttributesCoordinatesRepresentations2 (line 460) | type IssueAttributesCoordinatesRepresentations2 struct
  type IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentType (line 492) | type IssueAttributesCoordinatesRepresentations2CloudResourceEnvironmentType
  type IssueAttributesCoordinatesRepresentations2CloudResourceResourceInputType (line 495) | type IssueAttributesCoordinatesRepresentations2CloudResourceResourceInpu...
  type IssueAttributesCoordinatesRepresentations2CloudResourceResourceType (line 498) | type IssueAttributesCoordinatesRepresentations2CloudResourceResourceType
  type IssueAttributesCoordinatesRepresentations3 (line 501) | type IssueAttributesCoordinatesRepresentations3 struct
  type IssueAttributes_Coordinates_Representations_Item (line 520) | type IssueAttributes_Coordinates_Representations_Item struct
    method AsIssueAttributesCoordinatesRepresentations0 (line 1127) | func (t IssueAttributes_Coordinates_Representations_Item) AsIssueAttri...
    method FromIssueAttributesCoordinatesRepresentations0 (line 1134) | func (t *IssueAttributes_Coordinates_Representations_Item) FromIssueAt...
    method MergeIssueAttributesCoordinatesRepresentations0 (line 1141) | func (t *IssueAttributes_Coordinates_Representations_Item) MergeIssueA...
    method AsIssueAttributesCoordinatesRepresentations1 (line 1153) | func (t IssueAttributes_Coordinates_Representations_Item) AsIssueAttri...
    method FromIssueAttributesCoordinatesRepresentations1 (line 1160) | func (t *IssueAttributes_Coordinates_Representations_Item) FromIssueAt...
    method MergeIssueAttributesCoordinatesRepresentations1 (line 1167) | func (t *IssueAttributes_Coordinates_Representations_Item) MergeIssueA...
    method AsIssueAttributesCoordinatesRepresentations2 (line 1179) | func (t IssueAttributes_Coordinates_Representations_Item) AsIssueAttri...
    method FromIssueAttributesCoordinatesRepresentations2 (line 1186) | func (t *IssueAttributes_Coordinates_Representations_Item) FromIssueAt...
    method MergeIssueAttributesCoordinatesRepresentations2 (line 1193) | func (t *IssueAttributes_Coordinates_Representations_Item) MergeIssueA...
    method AsIssueAttributesCoordinatesRepresentations3 (line 1205) | func (t IssueAttributes_Coordinates_Representations_Item) AsIssueAttri...
    method FromIssueAttributesCoordinatesRepresentations3 (line 1212) | func (t *IssueAttributes_Coordinates_Representations_Item) FromIssueAt...
    method MergeIssueAttributesCoordinatesRepresentations3 (line 1219) | func (t *IssueAttributes_Coordinates_Representations_Item) MergeIssueA...
    method MarshalJSON (line 1230) | func (t IssueAttributes_Coordinates_Representations_Item) MarshalJSON(...
    method UnmarshalJSON (line 1235) | func (t *IssueAttributes_Coordinates_Representations_Item) UnmarshalJS...
  type IssueAttributesEffectiveSeverityLevel (line 526) | type IssueAttributesEffectiveSeverityLevel
  type IssueAttributesStatus (line 529) | type IssueAttributesStatus
  type IssueRelationships (line 532) | type IssueRelationships struct
  type IssueType (line 566) | type IssueType
  type IssuesMeta (line 569) | type IssuesMeta struct
  type IssuesResponse (line 574) | type IssuesResponse struct
  type IssuesWithPurlsResponse (line 582) | type IssuesWithPurlsResponse struct
  type JsonApi (line 592) | type JsonApi struct
  type LinkProperty (line 598) | type LinkProperty struct
    method AsLinkProperty0 (line 1241) | func (t LinkProperty) AsLinkProperty0() (LinkProperty0, error) {
    method FromLinkProperty0 (line 1248) | func (t *LinkProperty) FromLinkProperty0(v LinkProperty0) error {
    method MergeLinkProperty0 (line 1255) | func (t *LinkProperty) MergeLinkProperty0(v LinkProperty0) error {
    method AsLinkProperty1 (line 1267) | func (t LinkProperty) AsLinkProperty1() (LinkProperty1, error) {
    method FromLinkProperty1 (line 1274) | func (t *LinkProperty) FromLinkProperty1(v LinkProperty1) error {
    method MergeLinkProperty1 (line 1281) | func (t *LinkProperty) MergeLinkProperty1(v LinkProperty1) error {
    method MarshalJSON (line 1292) | func (t LinkProperty) MarshalJSON() ([]byte, error) {
    method UnmarshalJSON (line 1297) | func (t *LinkProperty) UnmarshalJSON(b []byte) error {
  type LinkProperty1 (line 606) | type LinkProperty1 struct
  type LoadedPackageRiskFactor (line 615) | type LoadedPackageRiskFactor struct
  type MaturityLevel (line 624) | type MaturityLevel struct
  type Meta (line 636) | type Meta
  type OSConditionRiskFactor (line 639) | type OSConditionRiskFactor struct
  type OrganizationType (line 648) | type OrganizationType
  type PackageMeta (line 651) | type PackageMeta struct
  type PackageRepresentation (line 669) | type PackageRepresentation struct
  type PaginatedLinks (line 674) | type PaginatedLinks struct
  type Problem (line 683) | type Problem struct
  type Problem3 (line 701) | type Problem3 struct
  type ProblemTypeDef (line 718) | type ProblemTypeDef
  type PublicFacingRiskFactor (line 721) | type PublicFacingRiskFactor struct
  type Remedy3 (line 733) | type Remedy3 struct
  type Resolution (line 747) | type Resolution struct
  type ResolutionTypeDef (line 757) | type ResolutionTypeDef
  type ResourcePathRepresentation (line 763) | type ResourcePathRepresentation struct
  type Risk (line 768) | type Risk struct
  type RiskFactor (line 777) | type RiskFactor struct
    method AsDeployedRiskFactor (line 1303) | func (t RiskFactor) AsDeployedRiskFactor() (DeployedRiskFactor, error) {
    method FromDeployedRiskFactor (line 1310) | func (t *RiskFactor) FromDeployedRiskFactor(v DeployedRiskFactor) error {
    method MergeDeployedRiskFactor (line 1318) | func (t *RiskFactor) MergeDeployedRiskFactor(v DeployedRiskFactor) err...
    method AsOSConditionRiskFactor (line 1331) | func (t RiskFactor) AsOSConditionRiskFactor() (OSConditionRiskFactor, ...
    method FromOSConditionRiskFactor (line 1338) | func (t *RiskFactor) FromOSConditionRiskFactor(v OSConditionRiskFactor...
    method MergeOSConditionRiskFactor (line 1346) | func (t *RiskFactor) MergeOSConditionRiskFactor(v OSConditionRiskFacto...
    method AsPublicFacingRiskFactor (line 1359) | func (t RiskFactor) AsPublicFacingRiskFactor() (PublicFacingRiskFactor...
    method FromPublicFacingRiskFactor (line 1366) | func (t *RiskFactor) FromPublicFacingRiskFactor(v PublicFacingRiskFact...
    method MergePublicFacingRiskFactor (line 1374) | func (t *RiskFactor) MergePublicFacingRiskFactor(v PublicFacingRiskFac...
    method AsLoadedPackageRiskFactor (line 1387) | func (t RiskFactor) AsLoadedPackageRiskFactor() (LoadedPackageRiskFact...
    method FromLoadedPackageRiskFactor (line 1394) | func (t *RiskFactor) FromLoadedPackageRiskFactor(v LoadedPackageRiskFa...
    method MergeLoadedPackageRiskFactor (line 1402) | func (t *RiskFactor) MergeLoadedPackageRiskFactor(v LoadedPackageRiskF...
    method Discriminator (line 1414) | func (t RiskFactor) Discriminator() (string, error) {
    method ValueByDiscriminator (line 1422) | func (t RiskFactor) ValueByDiscriminator() (interface{}, error) {
    method MarshalJSON (line 1441) | func (t RiskFactor) MarshalJSON() ([]byte, error) {
    method UnmarshalJSON (line 1446) | func (t *RiskFactor) UnmarshalJSON(b []byte) error {
  type RiskFactorLinks (line 782) | type RiskFactorLinks struct
  type RiskScore (line 787) | type RiskScore struct
  type ScanItemType (line 797) | type ScanItemType
  type Severity3 (line 800) | type Severity3 struct
  type Slots (line 821) | type Slots struct
  type TestExecutionType (line 840) | type TestExecutionType
  type TypeDef (line 843) | type TypeDef
  type GetIssue20020240123 (line 915) | type GetIssue20020240123 struct
  type ListIssues200 (line 923) | type ListIssues200 struct
  type ListGroupIssuesParams (line 930) | type ListGroupIssuesParams struct
  type ListGroupIssuesParamsEffectiveSeverityLevel (line 975) | type ListGroupIssuesParamsEffectiveSeverityLevel
  type ListGroupIssuesParamsStatus (line 978) | type ListGroupIssuesParamsStatus
  type GetGroupIssueByIssueIDParams (line 981) | type GetGroupIssueByIssueIDParams struct
  type ListOrgIssuesParams (line 987) | type ListOrgIssuesParams struct
  type ListOrgIssuesParamsEffectiveSeverityLevel (line 1032) | type ListOrgIssuesParamsEffectiveSeverityLevel
  type ListOrgIssuesParamsStatus (line 1035) | type ListOrgIssuesParamsStatus
  type GetOrgIssueByIssueIDParams (line 1038) | type GetOrgIssueByIssueIDParams struct
  type ListIssuesForManyPurlsParams (line 1044) | type ListIssuesForManyPurlsParams struct
  type FetchIssuesPerPurlParams (line 1050) | type FetchIssuesPerPurlParams struct
  type RequestEditorFn (line 1452) | type RequestEditorFn
  type HttpRequestDoer (line 1457) | type HttpRequestDoer interface
  type Client (line 1462) | type Client struct
    method ListGroupIssues (line 1545) | func (c *Client) ListGroupIssues(ctx context.Context, groupId openapi_...
    method GetGroupIssueByIssueID (line 1557) | func (c *Client) GetGroupIssueByIssueID(ctx context.Context, groupId o...
    method ListOrgIssues (line 1569) | func (c *Client) ListOrgIssues(ctx context.Context, orgId openapi_type...
    method GetOrgIssueByIssueID (line 1581) | func (c *Client) GetOrgIssueByIssueID(ctx context.Context, orgId opena...
    method ListIssuesForManyPurlsWithBody (line 1593) | func (c *Client) ListIssuesForManyPurlsWithBody(ctx context.Context, o...
    method ListIssuesForManyPurlsWithApplicationVndAPIPlusJSONBody (line 1605) | func (c *Client) ListIssuesForManyPurlsWithApplicationVndAPIPlusJSONBo...
    method FetchIssuesPerPurl (line 1617) | func (c *Client) FetchIssuesPerPurl(ctx context.Context, orgId OrgId, ...
    method applyEditors (line 2423) | func (c *Client) applyEditors(ctx context.Context, req *http.Request, ...
  type ClientOption (line 1479) | type ClientOption
  function NewClient (line 1482) | func NewClient(server string, opts ...ClientOption) (*Client, error) {
  function WithHTTPClient (line 1506) | func WithHTTPClient(doer HttpRequestDoer) ClientOption {
  function WithRequestEditorFn (line 1515) | func WithRequestEditorFn(fn RequestEditorFn) ClientOption {
  type ClientInterface (line 1523) | type ClientInterface interface
  function NewListGroupIssuesRequest (line 1630) | func NewListGroupIssuesRequest(server string, groupId openapi_types.UUID...
  function NewGetGroupIssueByIssueIDRequest (line 1890) | func NewGetGroupIssueByIssueIDRequest(server string, groupId openapi_typ...
  function NewListOrgIssuesRequest (line 1949) | func NewListOrgIssuesRequest(server string, orgId openapi_types.UUID, pa...
  function NewGetOrgIssueByIssueIDRequest (line 2209) | func NewGetOrgIssueByIssueIDRequest(server string, orgId openapi_types.U...
  function NewListIssuesForManyPurlsRequestWithApplicationVndAPIPlusJSONBody (line 2268) | func NewListIssuesForManyPurlsRequestWithApplicationVndAPIPlusJSONBody(s...
  function NewListIssuesForManyPurlsRequestWithBody (line 2279) | func NewListIssuesForManyPurlsRequestWithBody(server string, orgId OrgId...
  function NewFetchIssuesPerPurlRequest (line 2333) | func NewFetchIssuesPerPurlRequest(server string, orgId OrgId, purl Packa...
  type ClientWithResponses (line 2438) | type ClientWithResponses struct
    method ListGroupIssuesWithResponse (line 3232) | func (c *ClientWithResponses) ListGroupIssuesWithResponse(ctx context....
    method GetGroupIssueByIssueIDWithResponse (line 3241) | func (c *ClientWithResponses) GetGroupIssueByIssueIDWithResponse(ctx c...
    method ListOrgIssuesWithResponse (line 3250) | func (c *ClientWithResponses) ListOrgIssuesWithResponse(ctx context.Co...
    method GetOrgIssueByIssueIDWithResponse (line 3259) | func (c *ClientWithResponses) GetOrgIssueByIssueIDWithResponse(ctx con...
    method ListIssuesForManyPurlsWithBodyWithResponse (line 3268) | func (c *ClientWithResponses) ListIssuesForManyPurlsWithBodyWithRespon...
    method ListIssuesForManyPurlsWithApplicationVndAPIPlusJSONBodyWithResponse (line 3276) | func (c *ClientWithResponses) ListIssuesForManyPurlsWithApplicationVnd...
    method FetchIssuesPerPurlWithResponse (line 3285) | func (c *ClientWithResponses) FetchIssuesPerPurlWithResponse(ctx conte...
  function NewClientWithResponses (line 2444) | func NewClientWithResponses(server string, opts ...ClientOption) (*Clien...
  function WithBaseURL (line 2453) | func WithBaseURL(baseURL string) ClientOption {
  type ClientWithResponsesInterface (line 2465) | type ClientWithResponsesInterface interface
  type ListGroupIssuesResponse (line 2487) | type ListGroupIssuesResponse struct
    method Status (line 2614) | func (r ListGroupIssuesResponse) Status() string {
    method StatusCode (line 2622) | func (r ListGroupIssuesResponse) StatusCode() int {
  type GetGroupIssueByIssueIDResponse (line 2629) | type GetGroupIssueByIssueIDResponse struct
    method Status (line 2816) | func (r GetGroupIssueByIssueIDResponse) Status() string {
    method StatusCode (line 2824) | func (r GetGroupIssueByIssueIDResponse) StatusCode() int {
  type ListOrgIssuesResponse (line 2831) | type ListOrgIssuesResponse struct
    method Status (line 2958) | func (r ListOrgIssuesResponse) Status() string {
    method StatusCode (line 2966) | func (r ListOrgIssuesResponse) StatusCode() int {
  type GetOrgIssueByIssueIDResponse (line 2973) | type GetOrgIssueByIssueIDResponse struct
    method Status (line 3160) | func (r GetOrgIssueByIssueIDResponse) Status() string {
    method StatusCode (line 3168) | func (r GetOrgIssueByIssueIDResponse) StatusCode() int {
  type ListIssuesForManyPurlsResponse (line 3175) | type ListIssuesForManyPurlsResponse struct
    method Status (line 3188) | func (r ListIssuesForManyPurlsResponse) Status() string {
    method StatusCode (line 3196) | func (r ListIssuesForManyPurlsResponse) StatusCode() int {
  type FetchIssuesPerPurlResponse (line 3203) | type FetchIssuesPerPurlResponse struct
    method Status (line 3216) | func (r FetchIssuesPerPurlResponse) Status() string {
    method StatusCode (line 3224) | func (r FetchIssuesPerPurlResponse) StatusCode() int {
  function ParseListGroupIssuesResponse (line 3294) | func ParseListGroupIssuesResponse(rsp *http.Response) (*ListGroupIssuesR...
  function ParseGetGroupIssueByIssueIDResponse (line 3464) | func ParseGetGroupIssueByIssueIDResponse(rsp *http.Response) (*GetGroupI...
  function ParseListOrgIssuesResponse (line 3706) | func ParseListOrgIssuesResponse(rsp *http.Response) (*ListOrgIssuesRespo...
  function ParseGetOrgIssueByIssueIDResponse (line 3876) | func ParseGetOrgIssueByIssueIDResponse(rsp *http.Response) (*GetOrgIssue...
  function ParseListIssuesForManyPurlsResponse (line 4118) | func ParseListIssuesForManyPurlsResponse(rsp *http.Response) (*ListIssue...
  function ParseFetchIssuesPerPurlResponse (line 4186) | func ParseFetchIssuesPerPurlResponse(rsp *http.Response) (*FetchIssuesPe...

FILE: snyk/users/users.go
  constant APITokenScopes (line 22) | APITokenScopes   = "APIToken.Scopes"
  constant BearerAuthScopes (line 23) | BearerAuthScopes = "BearerAuth.Scopes"
  constant Principal20240422TypeAppInstance (line 28) | Principal20240422TypeAppInstance    Principal20240422Type = "app_instance"
  constant Principal20240422TypeServiceAccount (line 29) | Principal20240422TypeServiceAccount Principal20240422Type = "service_acc...
  constant Principal20240422TypeUser (line 30) | Principal20240422TypeUser           Principal20240422Type = "user"
  constant Direct (line 35) | Direct   UserAttributesMembershipStrategy = "direct"
  constant Indirect (line 36) | Indirect UserAttributesMembershipStrategy = "indirect"
  constant UserSettingsTypeUserSettings (line 41) | UserSettingsTypeUserSettings UserSettingsType = "user_settings"
  type AppInstance (line 48) | type AppInstance struct
  type Error (line 57) | type Error struct
  type ErrorDocument (line 86) | type ErrorDocument struct
  type ErrorLink (line 92) | type ErrorLink struct
  type JsonApi (line 97) | type JsonApi struct
  type LinkProperty (line 103) | type LinkProperty struct
    method AsLinkProperty0 (line 309) | func (t LinkProperty) AsLinkProperty0() (LinkProperty0, error) {
    method FromLinkProperty0 (line 316) | func (t *LinkProperty) FromLinkProperty0(v LinkProperty0) error {
    method MergeLinkProperty0 (line 323) | func (t *LinkProperty) MergeLinkProperty0(v LinkProperty0) error {
    method AsLinkProperty1 (line 335) | func (t LinkProperty) AsLinkProperty1() (LinkProperty1, error) {
    method FromLinkProperty1 (line 342) | func (t *LinkProperty) FromLinkProperty1(v LinkProperty1) error {
    method MergeLinkProperty1 (line 349) | func (t *LinkProperty) MergeLinkProperty1(v LinkProperty1) error {
    method MarshalJSON (line 360) | func (t LinkProperty) MarshalJSON() ([]byte, error) {
    method UnmarshalJSON (line 365) | func (t *LinkProperty) UnmarshalJSON(b []byte) error {
  type LinkProperty1 (line 111) | type LinkProperty1 struct
  type Links (line 120) | type Links struct
  type Meta (line 130) | type Meta
  type Principal20240422 (line 133) | type Principal20240422 struct
  type Principal20240422_Attributes (line 144) | type Principal20240422_Attributes struct
    method AsUser20240422 (line 371) | func (t Principal20240422_Attributes) AsUser20240422() (User20240422, ...
    method FromUser20240422 (line 378) | func (t *Principal20240422_Attributes) FromUser20240422(v User20240422...
    method MergeUser20240422 (line 385) | func (t *Principal20240422_Attributes) MergeUser20240422(v User2024042...
    method AsServiceAccount20240422 (line 397) | func (t Principal20240422_Attributes) AsServiceAccount20240422() (Serv...
    method FromServiceAccount20240422 (line 404) | func (t *Principal20240422_Attributes) FromServiceAccount20240422(v Se...
    method MergeServiceAccount20240422 (line 411) | func (t *Principal20240422_Attributes) MergeServiceAccount20240422(v S...
    method AsAppInstance (line 423) | func (t Principal20240422_Attributes) AsAppInstance() (AppInstance, er...
    method FromAppInstance (line 430) | func (t *Principal20240422_Attributes) FromAppInstance(v AppInstance) ...
    method MergeAppInstance (line 437) | func (t *Principal20240422_Attributes) MergeAppInstance(v AppInstance)...
    method MarshalJSON (line 448) | func (t Principal20240422_Attributes) MarshalJSON() ([]byte, error) {
    method UnmarshalJSON (line 453) | func (t *Principal20240422_Attributes) UnmarshalJSON(b []byte) error {
  type Principal20240422Type (line 149) | type Principal20240422Type
  type ServiceAccount20240422 (line 155) | type ServiceAccount20240422 struct
  type User (line 164) | type User struct
  type UserAttributesMembershipStrategy (line 194) | type UserAttributesMembershipStrategy
  type User20240422 (line 197) | type User20240422 struct
  type UserPatchRequestBody (line 215) | type UserPatchRequestBody struct
  type UserPreferredOrgSettings (line 231) | type UserPreferredOrgSettings struct
  type UserSettings (line 240) | type UserSettings struct
  type UserSettings_Attributes (line 251) | type UserSettings_Attributes struct
    method AsUserPreferredOrgSettings (line 459) | func (t UserSettings_Attributes) AsUserPreferredOrgSettings() (UserPre...
    method FromUserPreferredOrgSettings (line 466) | func (t *UserSettings_Attributes) FromUserPreferredOrgSettings(v UserP...
    method MergeUserPreferredOrgSettings (line 473) | func (t *UserSettings_Attributes) MergeUserPreferredOrgSettings(v User...
    method MarshalJSON (line 484) | func (t UserSettings_Attributes) MarshalJSON() ([]byte, error) {
    method UnmarshalJSON (line 489) | func (t *UserSettings_Attributes) UnmarshalJSON(b []byte) error {
  type UserSettingsType (line 256) | type UserSettingsType
  type UpdateUserApplicationVndAPIPlusJSONBody (line 277) | type UpdateUserApplicationVndAPIPlusJSONBody struct
  type UpdateUserParams (line 282) | type UpdateUserParams struct
  type GetUserParams (line 288) | type GetUserParams struct
  type GetSelfParams (line 294) | type GetSelfParams struct
  type GetUserSettingsParams (line 300) | type GetUserSettingsParams struct
  type UpdateUserApplicationVndAPIPlusJSONRequestBody (line 306) | type UpdateUserApplicationVndAPIPlusJSONRequestBody
  type RequestEditorFn (line 495) | type RequestEditorFn
  type HttpRequestDoer (line 500) | type HttpRequestDoer interface
  type Client (line 505) | type Client struct
    method UpdateUserWithBody (line 582) | func (c *Client) UpdateUserWithBody(ctx context.Context, groupId opena...
    method UpdateUserWithApplicationVndAPIPlusJSONBody (line 594) | func (c *Client) UpdateUserWithApplicationVndAPIPlusJSONBody(ctx conte...
    method GetUser (line 606) | func (c *Client) GetUser(ctx context.Context, orgId openapi_types.UUID...
    method GetSelf (line 618) | func (c *Client) GetSelf(ctx context.Context, params *GetSelfParams, r...
    method GetUserSettings (line 630) | func (c *Client) GetUserSettings(ctx context.Context, params *GetUserS...
    method applyEditors (line 863) | func (c *Client) applyEditors(ctx context.Context, req *http.Request, ...
  type ClientOption (line 522) | type ClientOption
  function NewClient (line 525) | func NewClient(server string, opts ...ClientOption) (*Client, error) {
  function WithHTTPClient (line 549) | func WithHTTPClient(doer HttpRequestDoer) ClientOption {
  function WithRequestEditorFn (line 558) | func WithRequestEditorFn(fn RequestEditorFn) ClientOption {
  type ClientInterface (line 566) | type ClientInterface interface
  function NewUpdateUserRequestWithApplicationVndAPIPlusJSONBody (line 643) | func NewUpdateUserRequestWithApplicationVndAPIPlusJSONBody(server string...
  function NewUpdateUserRequestWithBody (line 654) | func NewUpdateUserRequestWithBody(server string, groupId openapi_types.U...
  function NewGetUserRequest (line 715) | func NewGetUserRequest(server string, orgId openapi_types.UUID, id opena...
  function NewGetSelfRequest (line 774) | func NewGetSelfRequest(server string, params *GetSelfParams) (*http.Requ...
  function NewGetUserSettingsRequest (line 819) | func NewGetUserSettingsRequest(server string, params *GetUserSettingsPar...
  type ClientWithResponses (line 878) | type ClientWithResponses struct
    method UpdateUserWithBodyWithResponse (line 1041) | func (c *ClientWithResponses) UpdateUserWithBodyWithResponse(ctx conte...
    method UpdateUserWithApplicationVndAPIPlusJSONBodyWithResponse (line 1049) | func (c *ClientWithResponses) UpdateUserWithApplicationVndAPIPlusJSONB...
    method GetUserWithResponse (line 1058) | func (c *ClientWithResponses) GetUserWithResponse(ctx context.Context,...
    method GetSelfWithResponse (line 1067) | func (c *ClientWithResponses) GetSelfWithResponse(ctx context.Context,...
    method GetUserSettingsWithResponse (line 1076) | func (c *ClientWithResponses) GetUserSettingsWithResponse(ctx context....
  function NewClientWithResponses (line 884) | func NewClientWithResponses(server string, opts ...ClientOption) (*Clien...
  function WithBaseURL (line 893) | func WithBaseURL(baseURL string) ClientOption {
  type ClientWithResponsesInterface (line 905) | type ClientWithResponsesInterface interface
  type UpdateUserResponse (line 921) | type UpdateUserResponse struct
    method Status (line 932) | func (r UpdateUserResponse) Status() string {
    method StatusCode (line 940) | func (r UpdateUserResponse) StatusCode() int {
  type GetUserResponse (line 947) | type GetUserResponse struct
    method Status (line 962) | func (r GetUserResponse) Status() string {
    method StatusCode (line 970) | func (r GetUserResponse) StatusCode() int {
  type GetSelfResponse (line 977) | type GetSelfResponse struct
    method Status (line 993) | func (r GetSelfResponse) Status() string {
    method StatusCode (line 1001) | func (r GetSelfResponse) StatusCode() int {
  type GetUserSettingsResponse (line 1008) | type GetUserSettingsResponse struct
    method Status (line 1025) | func (r GetUserSettingsResponse) Status() string {
    method StatusCode (line 1033) | func (r GetUserSettingsResponse) StatusCode() int {
  function ParseUpdateUserResponse (line 1085) | func ParseUpdateUserResponse(rsp *http.Response) (*UpdateUserResponse, e...
  function ParseGetUserResponse (line 1139) | func ParseGetUserResponse(rsp *http.Response) (*GetUserResponse, error) {
  function ParseGetSelfResponse (line 1203) | func ParseGetSelfResponse(rsp *http.Response) (*GetSelfResponse, error) {
  function ParseGetUserSettingsResponse (line 1268) | func ParseGetUserSettingsResponse(rsp *http.Response) (*GetUserSettingsR...
Condensed preview — 93 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,896K chars).
[
  {
    "path": ".circleci/config.yml",
    "chars": 666,
    "preview": "version: 2.1\n\norbs:\n  prodsec: snyk/prodsec-orb@1\n\ngo_image: &go_image\n  resource_class: small\n  docker:\n    - image: ci"
  },
  {
    "path": ".github/CODEOWNERS",
    "chars": 67,
    "preview": "* @snyk/unify @snyk/codesec_unify @snyk/open-source_unify @garethr\n"
  },
  {
    "path": ".github/workflows/ci.yml",
    "chars": 592,
    "preview": "name: CI\n\non:\n  push:\n  pull_request:\n    branches: [ \"main\" ]\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n   "
  },
  {
    "path": ".github/workflows/release.yml",
    "chars": 720,
    "preview": "name: Release\n\non:\n  push:\n    tags:\n      - 'v*'\n\npermissions:\n  contents: write\n\njobs:\n  release:\n    runs-on: ubuntu-"
  },
  {
    "path": ".github/workflows/security.yml",
    "chars": 862,
    "preview": "name: Security\n\non:\n  push:\n  workflow_dispatch:\n  schedule:\n    - cron:  \"0 0 * * 0\"\n\n  workflow_call:\n    secrets:\n   "
  },
  {
    "path": ".gitignore",
    "chars": 365,
    "preview": "# Binaries for programs and plugins\n*.exe\n*.exe~\n*.dll\n*.so\n*.dylib\n\n# Test binary, built with `go test -c`\n*.test\n\n# Ou"
  },
  {
    "path": ".gitleaks.toml",
    "chars": 61,
    "preview": "[whitelist]\nfiles = [\n    \"specs/snyk-experimental.jsonl\",\n]\n"
  },
  {
    "path": ".golangci.yaml",
    "chars": 744,
    "preview": "version: \"2\"\nrun:\n  issues-exit-code: 1\n  tests: true\nlinters:\n  enable:\n    - misspell\n  settings:\n    errcheck:\n      "
  },
  {
    "path": ".goreleaser.yml",
    "chars": 2020,
    "preview": "version: 2\nbefore:\n  hooks:\n  - go mod download\n  - go install github.com/google/go-licenses@latest\n  - go-licenses save"
  },
  {
    "path": ".pre-commit-config.yaml",
    "chars": 103,
    "preview": "repos:\n  - repo: https://github.com/gitleaks/gitleaks\n    rev: v8.16.1\n    hooks:\n      - id: gitleaks\n"
  },
  {
    "path": ".snyk",
    "chars": 389,
    "preview": "# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.\nversion: v1.25.0\n# ignores vulnerabiliti"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 5231,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 2137,
    "preview": "# CONTRIBUTING.md\n\nFirst and foremost, thank you for considering contributing to Parlay! Your contribution is valuable a"
  },
  {
    "path": "LICENSE",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "Makefile",
    "chars": 1832,
    "preview": "# Copyright 2023 Snyk Ltd.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this fi"
  },
  {
    "path": "NOTICE",
    "chars": 723,
    "preview": "© 2023 Snyk Limited All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not us"
  },
  {
    "path": "README.md",
    "chars": 9979,
    "preview": "# Parlay\n\n[![CI](https://github.com/snyk/parlay/actions/workflows/ci.yml/badge.svg)](https://github.com/snyk/parlay/acti"
  },
  {
    "path": "SECURITY.md",
    "chars": 155,
    "preview": "## Reporting Security Issues\n\nTo report a security vulnerability to us, please see https://docs.snyk.io/snyk-data-and-go"
  },
  {
    "path": "acceptance.bats",
    "chars": 847,
    "preview": "#!/usr/bin/env bats\n\n@test \"Not fail when testing a JavaScript SBOM\" {\n  run ./parlay ecosystems enrich testing/sbom.cyc"
  },
  {
    "path": "catalog-info.yaml",
    "chars": 229,
    "preview": "apiVersion: backstage.io/v1alpha1\nkind: Component\nmetadata:\n  name: parlay\n  annotations:\n    github.com/project-slug: s"
  },
  {
    "path": "ecosystems/packages/packages.go",
    "chars": 149603,
    "preview": "// Package packages provides primitives to interact with the openapi HTTP API.\n//\n// Code generated by github.com/oapi-c"
  },
  {
    "path": "ecosystems/repos/repos.go",
    "chars": 118648,
    "preview": "// Package repos provides primitives to interact with the openapi HTTP API.\n//\n// Code generated by github.com/oapi-code"
  },
  {
    "path": "go.mod",
    "chars": 1766,
    "preview": "module github.com/snyk/parlay\n\ngo 1.25.7\n\nrequire (\n\tgithub.com/CycloneDX/cyclonedx-go v0.9.2\n\tgithub.com/deepmap/oapi-c"
  },
  {
    "path": "go.sum",
    "chars": 55295,
    "preview": "cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ncloud.google.com/go v0.34.0/go.mod h1"
  },
  {
    "path": "internal/commands/default.go",
    "chars": 1643,
    "preview": "package commands\n\nimport (\n\t\"os\"\n\n\t\"github.com/rs/zerolog\"\n\t\"github.com/spf13/cobra\"\n\t\"github.com/spf13/viper\"\n\n\t\"github"
  },
  {
    "path": "internal/commands/deps/repos.go",
    "chars": 703,
    "preview": "package deps\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/rs/zerolog\"\n\t\"github.com/spf13/cobra\"\n\n\t\"github.com/snyk/pa"
  },
  {
    "path": "internal/commands/deps/root.go",
    "chars": 587,
    "preview": "package deps\n\nimport (\n\t\"github.com/rs/zerolog\"\n\t\"github.com/spf13/cobra\"\n)\n\nfunc NewDepsRootCommand(logger *zerolog.Log"
  },
  {
    "path": "internal/commands/ecosystems/enrich.go",
    "chars": 884,
    "preview": "package ecosystems\n\nimport (\n\t\"os\"\n\n\t\"github.com/rs/zerolog\"\n\t\"github.com/spf13/cobra\"\n\n\t\"github.com/snyk/parlay/interna"
  },
  {
    "path": "internal/commands/ecosystems/packages.go",
    "chars": 755,
    "preview": "package ecosystems\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/package-url/packageurl-go\"\n\t\"github.com/rs/zerolog\"\n\t\"github.com/spf13"
  },
  {
    "path": "internal/commands/ecosystems/repos.go",
    "chars": 581,
    "preview": "package ecosystems\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/rs/zerolog\"\n\t\"github.com/spf13/cobra\"\n\n\t\"github.com/snyk/parlay/lib/ec"
  },
  {
    "path": "internal/commands/ecosystems/root.go",
    "chars": 700,
    "preview": "package ecosystems\n\nimport (\n\t\"github.com/rs/zerolog\"\n\t\"github.com/spf13/cobra\"\n)\n\nfunc NewEcosystemsRootCommand(logger "
  },
  {
    "path": "internal/commands/scorecard/enrich.go",
    "chars": 879,
    "preview": "package scorecard\n\nimport (\n\t\"os\"\n\n\t\"github.com/rs/zerolog\"\n\t\"github.com/spf13/cobra\"\n\n\t\"github.com/snyk/parlay/internal"
  },
  {
    "path": "internal/commands/scorecard/root.go",
    "chars": 609,
    "preview": "package scorecard\n\nimport (\n\t\"github.com/rs/zerolog\"\n\t\"github.com/spf13/cobra\"\n)\n\nfunc NewRootCommand(logger *zerolog.Lo"
  },
  {
    "path": "internal/commands/snyk/config.go",
    "chars": 266,
    "preview": "package snyk\n\nimport (\n\t\"os\"\n\n\t\"github.com/snyk/parlay/lib/snyk\"\n)\n\nfunc config() *snyk.Config {\n\tc := snyk.DefaultConfi"
  },
  {
    "path": "internal/commands/snyk/enrich.go",
    "chars": 909,
    "preview": "package snyk\n\nimport (\n\t\"os\"\n\n\t\"github.com/rs/zerolog\"\n\t\"github.com/spf13/cobra\"\n\n\t\"github.com/snyk/parlay/internal/util"
  },
  {
    "path": "internal/commands/snyk/packages.go",
    "chars": 916,
    "preview": "package snyk\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/package-url/packageurl-go\"\n\t\"github.com/rs/zerolog\"\n\t\"github.com/spf13/cobra"
  },
  {
    "path": "internal/commands/snyk/root.go",
    "chars": 628,
    "preview": "package snyk\n\nimport (\n\t\"github.com/rs/zerolog\"\n\t\"github.com/spf13/cobra\"\n)\n\nfunc NewSnykRootCommand(logger *zerolog.Log"
  },
  {
    "path": "internal/utils/cdx.go",
    "chars": 652,
    "preview": "package utils\n\nimport (\n\tcdx \"github.com/CycloneDX/cyclonedx-go\"\n)\n\nfunc traverseComponent(comps *[]*cdx.Component, comp"
  },
  {
    "path": "internal/utils/cdx_test.go",
    "chars": 557,
    "preview": "package utils_test\n\nimport (\n\t\"testing\"\n\n\t\"github.com/snyk/parlay/internal/utils\"\n\n\tcdx \"github.com/CycloneDX/cyclonedx-"
  },
  {
    "path": "internal/utils/input.go",
    "chars": 581,
    "preview": "package utils\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\n// GetUserInput will open and read from the given filename. If f"
  },
  {
    "path": "internal/utils/input_test.go",
    "chars": 1060,
    "preview": "package utils\n\nimport (\n\t\"bytes\"\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n\t\"github.com/stretchr/testify/r"
  },
  {
    "path": "internal/utils/spdx.go",
    "chars": 1293,
    "preview": "package utils\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/package-url/packageurl-go\"\n\tspdx_2_3 \"github.com/spdx/tools-gola"
  },
  {
    "path": "internal/utils/spdx_test.go",
    "chars": 2385,
    "preview": "package utils_test\n\nimport (\n\t\"testing\"\n\n\t\"github.com/snyk/parlay/ecosystems/packages\"\n\t\"github.com/snyk/parlay/internal"
  },
  {
    "path": "lib/deps/repo.go",
    "chars": 835,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/ecosystems/cache.go",
    "chars": 3059,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/ecosystems/cache_test.go",
    "chars": 10001,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/ecosystems/enrich.go",
    "chars": 1004,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/ecosystems/enrich_cyclonedx.go",
    "chars": 7167,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/ecosystems/enrich_cyclonedx_test.go",
    "chars": 11597,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/ecosystems/enrich_spdx.go",
    "chars": 3073,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/ecosystems/enrich_spdx_test.go",
    "chars": 6345,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/ecosystems/package.go",
    "chars": 4492,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/ecosystems/package_test.go",
    "chars": 7275,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/ecosystems/repo.go",
    "chars": 1280,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/ecosystems/repo_test.go",
    "chars": 1817,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/sbom/cyclonedx.go",
    "chars": 1513,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/sbom/decode.go",
    "chars": 2103,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/sbom/decode_test.go",
    "chars": 3154,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/sbom/encode.go",
    "chars": 736,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/sbom/format.go",
    "chars": 837,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/sbom/sbom.go",
    "chars": 936,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/sbom/spdx.go",
    "chars": 968,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/scorecard/enrich.go",
    "chars": 939,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/scorecard/enrich_cyclonedx.go",
    "chars": 2223,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/scorecard/enrich_spdx.go",
    "chars": 1750,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/scorecard/enrich_test.go",
    "chars": 6182,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/snyk/config.go",
    "chars": 1092,
    "preview": "/*\n * © 2024 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/snyk/enrich.go",
    "chars": 1150,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/snyk/enrich_cyclonedx.go",
    "chars": 7942,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/snyk/enrich_spdx.go",
    "chars": 5112,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/snyk/enrich_test.go",
    "chars": 10770,
    "preview": "package snyk\n\nimport (\n\t_ \"embed\"\n\t\"net/http\"\n\t\"net/http/httptest\"\n\t\"sync/atomic\"\n\t\"testing\"\n\n\tcdx \"github.com/CycloneDX"
  },
  {
    "path": "lib/snyk/package.go",
    "chars": 4208,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/snyk/package_test.go",
    "chars": 3242,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/snyk/self.go",
    "chars": 2081,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/snyk/self_test.go",
    "chars": 2444,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "lib/snyk/service.go",
    "chars": 1363,
    "preview": "package snyk\n\nimport (\n\t\"github.com/deepmap/oapi-codegen/pkg/securityprovider\"\n\t\"github.com/google/uuid\"\n\t\"github.com/pa"
  },
  {
    "path": "lib/snyk/testdata/no_issues.json",
    "chars": 229,
    "preview": "{\n  \"jsonapi\": {\n    \"version\": \"1.0\"\n  },\n  \"data\": [],\n  \"links\": {\n    \"self\": \"/orgs/00000000-0000-0000-0000-0000000"
  },
  {
    "path": "lib/snyk/testdata/numpy_issues.json",
    "chars": 4993,
    "preview": "{\n  \"jsonapi\": {\n    \"version\": \"1.0\"\n  },\n  \"data\": [\n    {\n      \"id\": \"SNYK-PYTHON-NUMPY-73513\",\n      \"type\": \"issue"
  },
  {
    "path": "lib/snyk/testdata/pandas_issues.json",
    "chars": 3441,
    "preview": "{\n  \"jsonapi\": {\n    \"version\": \"1.0\"\n  },\n  \"data\": [\n    {\n      \"id\": \"SNYK-PYTHON-PANDAS-5879012\",\n      \"type\": \"is"
  },
  {
    "path": "lib/snyk/testdata/self.json",
    "chars": 466,
    "preview": "{\n  \"jsonapi\": {\n    \"version\": \"1.0\"\n  },\n  \"data\": {\n    \"type\": \"user\",\n    \"id\": \"00000000-0000-0000-0000-0000000000"
  },
  {
    "path": "main.go",
    "chars": 783,
    "preview": "/*\n * © 2023 Snyk Limited All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * "
  },
  {
    "path": "snyk/issues/issues.go",
    "chars": 159331,
    "preview": "// Package issues provides primitives to interact with the openapi HTTP API.\n//\n// Code generated by github.com/oapi-cod"
  },
  {
    "path": "snyk/users/users.go",
    "chars": 41048,
    "preview": "// Package users provides primitives to interact with the openapi HTTP API.\n//\n// Code generated by github.com/oapi-code"
  },
  {
    "path": "specs/packages.yaml",
    "chars": 43741,
    "preview": "---\nopenapi: 3.0.1\ninfo:\n  title: 'Ecosyste.ms: Packages'\n  description: An open API service providing package, version "
  },
  {
    "path": "specs/repos.yaml",
    "chars": 30175,
    "preview": "---\nopenapi: 3.0.1\ninfo:\n  title: 'Ecosyste.ms: Repos'\n  description: An open API service providing repository metadata "
  },
  {
    "path": "specs/snyk-experimental.json",
    "chars": 2147999,
    "preview": "{\"components\":{\"examples\":{\"CloudListIssuesResponse\":{\"summary\":\"An example of a list issue response for a Cloud issue.\""
  },
  {
    "path": "specs/snyk.json",
    "chars": 1105615,
    "preview": "{\"components\":{\"examples\":{\"CloudListIssuesResponse\":{\"summary\":\"An example of a list issue response for a Cloud issue.\""
  },
  {
    "path": "testing/sbom.cyclonedx-1.5.json",
    "chars": 4958,
    "preview": "{\n  \"bomFormat\": \"CycloneDX\",\n  \"specVersion\": \"1.5\",\n  \"serialNumber\": \"urn:uuid:2bc89cc4-93e1-42cc-a0b6-5f6a305161fe\","
  },
  {
    "path": "testing/sbom.cyclonedx.json",
    "chars": 13018,
    "preview": "{\"bomFormat\":\"CycloneDX\",\"specVersion\":\"1.4\",\"version\":1,\"metadata\":{\"timestamp\":\"2023-04-11T06:14:27Z\",\"tools\":[{\"vendo"
  },
  {
    "path": "testing/sbom.cyclonedx.xml",
    "chars": 1986,
    "preview": "<bom xmlns=\"http://cyclonedx.org/schema/bom/1.4\" version=\"1\"><metadata><timestamp>2023-06-12T19:17:47Z</timestamp><tools"
  },
  {
    "path": "testing/sbom.spdx-2.3.json",
    "chars": 4334,
    "preview": "{\n  \"spdxVersion\": \"SPDX-2.3\",\n  \"dataLicense\": \"CC0-1.0\",\n  \"SPDXID\": \"SPDXRef-DOCUMENT\",\n  \"name\": \"package-file-basic"
  },
  {
    "path": "testing/sbom2.cyclonedx.json",
    "chars": 36631,
    "preview": "{\"bomFormat\":\"CycloneDX\",\"specVersion\":\"1.4\",\"version\":1,\"metadata\":{\"timestamp\":\"2023-04-22T09:07:39Z\",\"tools\":[{\"vendo"
  },
  {
    "path": "testing/sbom3.cyclonedx.json",
    "chars": 345720,
    "preview": "{\n  \"bomFormat\": \"CycloneDX\",\n  \"specVersion\": \"1.4\",\n  \"serialNumber\": \"urn:uuid:d4847fa1-34f0-4b59-803c-380702f6405f\","
  }
]

About this extraction

This page contains the full source code of the snyk/parlay GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 93 files (4.2 MB), approximately 1.1M tokens, and a symbol index with 953 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!