# angrycuban13/psstarr architecture

> Architecture diagram of the GitHub repository angrycuban13/psstarr, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/angrycuban13/psstarr
- Repository: https://github.com/angrycuban13/psstarr

## Overview

PSStarr is a PowerShell 7 client module for Radarr, Sonarr, and Prowlarr. Users invoke typed commands to configure instances, read application resources, or issue commands; the client sends API requests and returns results. The tree shows broad application-specific command families and shared configuration, transport, and error-handling code. Source excerpts were not provided, so internal call wiring is inferred conservatively from the module structure and README; individual endpoint-to-transport calls are not mapped.

Main entry points: [`PSStarr/Source/Public/General/Invoke-StarrApiRequest.ps1`](https://github.com/angrycuban13/psstarr/blob/main/PSStarr/Source/Public/General/Invoke-StarrApiRequest.ps1) (API Request), [`PSStarr/Source/Public/General`](https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Public/General) (Instance Commands), [`PSStarr/Source/Public/Radarr`](https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Public/Radarr) (Radarr Commands), [`PSStarr/Source/Public/Sonarr`](https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Public/Sonarr) (Sonarr Commands)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_shared["Shared Client"]
  node_config["Configuration Helpers"]
  node_transport["API Request"]
  node_errors["Error Handling"]
end

subgraph group_general["Common Commands"]
  node_instances["Instance Commands"]
  node_common["Common API Commands"]
end

subgraph group_radarr["Radarr Commands"]
  node_radarrcmd["Radarr Commands"]
end

subgraph group_sonarr["Sonarr Commands"]
  node_sonarrcmd["Sonarr Commands"]
end

subgraph group_prowlarr["Prowlarr Commands"]
  node_prowlarrcmd["Prowlarr Commands"]
end

node_user(("PowerShell User"))
node_radarrapi["Radarr API"]
node_sonarrapi["Sonarr API"]
node_prowlarrapi["Prowlarr API"]

node_user -->|"configures instances"| node_instances
node_user -->|"invokes commands"| node_common
node_user -->|"invokes commands"| node_radarrcmd
node_user -->|"invokes commands"| node_sonarrcmd
node_user -->|"invokes commands"| node_prowlarrcmd
node_instances -->|"manages configuration"| node_config
node_common -->|"requests API"| node_transport
node_radarrcmd -->|"requests API"| node_transport
node_sonarrcmd -->|"requests API"| node_transport
node_prowlarrcmd -->|"requests API"| node_transport
node_transport -->|"sends requests"| node_radarrapi
node_transport -->|"sends requests"| node_sonarrapi
node_transport -->|"sends requests"| node_prowlarrapi
node_transport -->|"handles failures"| node_errors

click node_instances "https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Public/General"
click node_common "https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Public/General"
click node_radarrcmd "https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Public/Radarr"
click node_sonarrcmd "https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Public/Sonarr"
click node_prowlarrcmd "https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Public/Prowlarr"
click node_config "https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Private"
click node_transport "https://github.com/angrycuban13/psstarr/blob/main/PSStarr/Source/Public/General/Invoke-StarrApiRequest.ps1"
click node_errors "https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Private"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_config,node_transport,node_errors,node_user toneBlue
class node_instances,node_common toneAmber
class node_radarrcmd,node_radarrapi,node_sonarrapi,node_prowlarrapi toneMint
class node_sonarrcmd toneRose
class node_prowlarrcmd toneIndigo
```

## Components

### Shared Client

- [Configuration Helpers](https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Private): `PSStarr/Source/Private`
- [API Request](https://github.com/angrycuban13/psstarr/blob/main/PSStarr/Source/Public/General/Invoke-StarrApiRequest.ps1): `PSStarr/Source/Public/General/Invoke-StarrApiRequest.ps1`
- [Error Handling](https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Private): `PSStarr/Source/Private`

### Common Commands

- [Instance Commands](https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Public/General): `PSStarr/Source/Public/General`
- [Common API Commands](https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Public/General): `PSStarr/Source/Public/General`

### Radarr Commands

- [Radarr Commands](https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Public/Radarr): `PSStarr/Source/Public/Radarr`

### Sonarr Commands

- [Sonarr Commands](https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Public/Sonarr): `PSStarr/Source/Public/Sonarr`

### Prowlarr Commands

- [Prowlarr Commands](https://github.com/angrycuban13/psstarr/tree/main/PSStarr/Source/Public/Prowlarr): `PSStarr/Source/Public/Prowlarr`

### Other components

- **PowerShell User**
- **Radarr API**
- **Sonarr API**
- **Prowlarr API**

## Connections

- PowerShell User → Instance Commands: configures instances
- PowerShell User → Common API Commands: invokes commands
- PowerShell User → Radarr Commands: invokes commands
- PowerShell User → Sonarr Commands: invokes commands
- PowerShell User → Prowlarr Commands: invokes commands
- Instance Commands → Configuration Helpers: manages configuration
- Common API Commands → API Request: requests API
- Radarr Commands → API Request: requests API
- Sonarr Commands → API Request: requests API
- Prowlarr Commands → API Request: requests API
- API Request → Radarr API: sends requests
- API Request → Sonarr API: sends requests
- API Request → Prowlarr API: sends requests
- API Request → Error Handling: handles failures
