Files
profilarr/docs/api/v1/schemas/pcd.yaml
2026-02-17 05:06:55 +10:30

391 lines
8.0 KiB
YAML

EntityType:
type: string
enum:
- delay_profile
- regular_expression
- custom_format
- quality_profile
- radarr_naming
- sonarr_naming
- radarr_media_settings
- sonarr_media_settings
- radarr_quality_definitions
- sonarr_quality_definitions
ExportResponse:
type: object
required:
- entityType
- data
properties:
entityType:
$ref: '#/EntityType'
data:
description: |
The portable entity payload. Shape varies by entityType:
- `delay_profile` → PortableDelayProfile
- `regular_expression` → PortableRegularExpression
- `custom_format` → PortableCustomFormat
- `quality_profile` → PortableQualityProfile
- `radarr_naming` → PortableRadarrNaming
- `sonarr_naming` → PortableSonarrNaming
- `radarr_media_settings` → PortableMediaSettings
- `sonarr_media_settings` → PortableMediaSettings
- `radarr_quality_definitions` → PortableQualityDefinitions
- `sonarr_quality_definitions` → PortableQualityDefinitions
oneOf:
- $ref: '#/PortableDelayProfile'
- $ref: '#/PortableRegularExpression'
- $ref: '#/PortableCustomFormat'
- $ref: '#/PortableQualityProfile'
- $ref: '#/PortableRadarrNaming'
- $ref: '#/PortableSonarrNaming'
- $ref: '#/PortableMediaSettings'
- $ref: '#/PortableQualityDefinitions'
BundledDependency:
type: object
required:
- entityType
- data
properties:
entityType:
type: string
description: The entity type of the dependency
data:
type: object
required:
- name
properties:
name:
type: string
additionalProperties: true
description: The portable entity payload for the dependency
ImportConflict:
type: object
required:
- entityType
- name
properties:
entityType:
type: string
description: The entity type that conflicts
name:
type: string
description: The name of the conflicting entity
ConflictResolution:
type: object
required:
- entityType
- originalName
- action
properties:
entityType:
type: string
description: The entity type being resolved
originalName:
type: string
description: The original name of the conflicting entity
action:
type: string
enum: [skip, rename]
description: How to resolve the conflict
newName:
type: string
description: The new name when action is rename
ImportRequest:
type: object
required:
- databaseId
- layer
- entityType
- data
properties:
databaseId:
type: integer
description: The PCD database ID to import into
layer:
type: string
enum: [user, base]
description: The operation layer to write to
entityType:
$ref: '#/EntityType'
data:
description: The portable entity payload (same shape as ExportResponse.data)
oneOf:
- $ref: '#/PortableDelayProfile'
- $ref: '#/PortableRegularExpression'
- $ref: '#/PortableCustomFormat'
- $ref: '#/PortableQualityProfile'
- $ref: '#/PortableRadarrNaming'
- $ref: '#/PortableSonarrNaming'
- $ref: '#/PortableMediaSettings'
- $ref: '#/PortableQualityDefinitions'
ImportResponse:
type: object
required:
- success
properties:
success:
type: boolean
PcdErrorResponse:
type: object
required:
- error
properties:
error:
type: string
# --- Portable entity schemas ---
PortableDelayProfile:
type: object
required:
- name
- preferredProtocol
- usenetDelay
- torrentDelay
- bypassIfHighestQuality
- bypassIfAboveCfScore
- minimumCfScore
properties:
name:
type: string
preferredProtocol:
type: string
enum: [prefer_usenet, prefer_torrent, only_usenet, only_torrent]
usenetDelay:
type: integer
torrentDelay:
type: integer
bypassIfHighestQuality:
type: boolean
bypassIfAboveCfScore:
type: boolean
minimumCfScore:
type: integer
PortableRegularExpression:
type: object
required:
- name
- pattern
- tags
- description
- regex101Id
properties:
name:
type: string
pattern:
type: string
tags:
type: array
items:
type: string
description:
type: string
nullable: true
regex101Id:
type: string
nullable: true
PortableCustomFormatTest:
type: object
required:
- title
- type
- shouldMatch
- description
properties:
title:
type: string
type:
type: string
enum: [movie, series]
shouldMatch:
type: boolean
description:
type: string
nullable: true
PortableCustomFormat:
type: object
required:
- name
- description
- includeInRename
- tags
- conditions
- tests
properties:
name:
type: string
description:
type: string
nullable: true
includeInRename:
type: boolean
tags:
type: array
items:
type: string
conditions:
type: array
items:
type: object
description: Condition data (shape varies by condition type)
tests:
type: array
items:
$ref: '#/PortableCustomFormatTest'
PortableCustomFormatScore:
type: object
required:
- customFormatName
- arrType
- score
properties:
customFormatName:
type: string
arrType:
type: string
score:
type: integer
PortableQualityProfile:
type: object
required:
- name
- description
- tags
- language
- orderedItems
- minimumScore
- upgradeUntilScore
- upgradeScoreIncrement
- customFormatScores
properties:
name:
type: string
description:
type: string
nullable: true
tags:
type: array
items:
type: string
language:
type: string
nullable: true
orderedItems:
type: array
items:
type: object
description: Ordered quality item (quality or group)
minimumScore:
type: integer
upgradeUntilScore:
type: integer
upgradeScoreIncrement:
type: integer
customFormatScores:
type: array
items:
$ref: '#/PortableCustomFormatScore'
PortableRadarrNaming:
type: object
required:
- name
- rename
- movieFormat
- movieFolderFormat
- replaceIllegalCharacters
- colonReplacementFormat
properties:
name:
type: string
rename:
type: boolean
movieFormat:
type: string
movieFolderFormat:
type: string
replaceIllegalCharacters:
type: boolean
colonReplacementFormat:
type: string
PortableSonarrNaming:
type: object
required:
- name
- rename
- standardEpisodeFormat
- dailyEpisodeFormat
- animeEpisodeFormat
- seriesFolderFormat
- seasonFolderFormat
- replaceIllegalCharacters
- colonReplacementFormat
- customColonReplacementFormat
- multiEpisodeStyle
properties:
name:
type: string
rename:
type: boolean
standardEpisodeFormat:
type: string
dailyEpisodeFormat:
type: string
animeEpisodeFormat:
type: string
seriesFolderFormat:
type: string
seasonFolderFormat:
type: string
replaceIllegalCharacters:
type: boolean
colonReplacementFormat:
type: string
customColonReplacementFormat:
type: string
nullable: true
multiEpisodeStyle:
type: string
PortableMediaSettings:
type: object
required:
- name
- propersRepacks
- enableMediaInfo
properties:
name:
type: string
propersRepacks:
type: string
enableMediaInfo:
type: boolean
PortableQualityDefinitions:
type: object
required:
- name
- entries
properties:
name:
type: string
entries:
type: array
items:
type: object
description: Quality definition entry with min/max/preferred sizes