YAML

# MegaRepo YAML Preset
repositories:
  - name: maven-releases
    format: maven
    type: hosted

  - name: maven-central-proxy
    format: maven
    type: proxy
    remoteUrl: https://repo1.maven.org/maven2/

  - name: maven-public
    format: maven
    type: group
    members:
      - maven-releases
      - maven-central-proxy

name string
format string
type string
remoteUrl string
members list
blobStoreName string

# java-team.yml
repositories:
  - name: maven-releases
    format: maven
    type: hosted

  - name: maven-snapshots
    format: maven
    type: hosted

  - name: maven-central
    format: maven
    type: proxy
    remoteUrl: https://repo1.maven.org/maven2/

  - name: maven-public
    format: maven
    type: group
    members:
      - maven-releases
      - maven-snapshots
      - maven-central

# python-team.yml
repositories:
  - name: pypi-hosted
    format: pypi
    type: hosted

  - name: pypi-proxy
    format: pypi
    type: proxy
    remoteUrl: https://pypi.org/

  - name: pypi-public
    format: pypi
    type: group
    members:
      - pypi-hosted
      - pypi-proxy

# full-stack.yml
repositories:
  # Maven
  - name: maven-releases
    format: maven
    type: hosted
  - name: maven-snapshots
    format: maven
    type: hosted
  - name: maven-central
    format: maven
    type: proxy
    remoteUrl: https://repo1.maven.org/maven2/
  - name: maven-public
    format: maven
    type: group
    members:
      - maven-releases
      - maven-snapshots
      - maven-central

  # npm
  - name: npm-hosted
    format: npm
    type: hosted
  - name: npm-proxy
    format: npm
    type: proxy
    remoteUrl: https://registry.npmjs.org/
  - name: npm-public
    format: npm
    type: group
    members:
      - npm-hosted
      - npm-proxy

  # PyPI
  - name: pypi-hosted
    format: pypi
    type: hosted
  - name: pypi-proxy
    format: pypi
    type: proxy
    remoteUrl: https://pypi.org/
  - name: pypi-public
    format: pypi
    type: group
    members:
      - pypi-hosted
      - pypi-proxy

  # Raw file storage
  - name: raw-files
    format: raw
    type: hosted

curl -X POST \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/x-yaml" \
  --data-binary @java-team.yml \
  http://megarepo.example.com:8080/api/v1/repositories/preset

{
  "created": [
    "maven-releases",
    "maven-snapshots",
    "maven-central",
    "maven-public"
  ],
  "skipped": []
}

curl -H "Authorization: Bearer <token>" \
  -H "Accept: application/x-yaml" \
  http://megarepo.example.com:8080/api/v1/repositories/preset \
  -o my-repos.yml