feat: initial implementation with docs and system_config
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
---
|
||||
# generated by https://github.com/hashicorp/terraform-plugin-docs
|
||||
page_title: "immich_albums Data Source - terraform-provider-immich"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
Retrieves a list of all Immich albums.
|
||||
---
|
||||
|
||||
# immich_albums (Data Source)
|
||||
|
||||
Retrieves a list of all Immich albums.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
data "immich_albums" "all" {}
|
||||
|
||||
output "album_names" {
|
||||
value = data.immich_albums.all.albums[*].name
|
||||
}
|
||||
```
|
||||
|
||||
<!-- schema generated by tfplugindocs -->
|
||||
## Schema
|
||||
|
||||
### Read-Only
|
||||
|
||||
- `albums` (Attributes List) List of albums. (see [below for nested schema](#nestedatt--albums))
|
||||
|
||||
<a id="nestedatt--albums"></a>
|
||||
### Nested Schema for `albums`
|
||||
|
||||
Read-Only:
|
||||
|
||||
- `asset_count` (Number) Number of assets in the album.
|
||||
- `description` (String) Description of the album.
|
||||
- `id` (String) Unique identifier for the album.
|
||||
- `name` (String) Display name of the album.
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
# generated by https://github.com/hashicorp/terraform-plugin-docs
|
||||
page_title: "immich_users Data Source - terraform-provider-immich"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
Retrieves a list of all Immich users.
|
||||
---
|
||||
|
||||
# immich_users (Data Source)
|
||||
|
||||
Retrieves a list of all Immich users.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
data "immich_users" "all" {}
|
||||
|
||||
output "user_emails" {
|
||||
value = data.immich_users.all.users[*].email
|
||||
}
|
||||
```
|
||||
|
||||
<!-- schema generated by tfplugindocs -->
|
||||
## Schema
|
||||
|
||||
### Read-Only
|
||||
|
||||
- `users` (Attributes List) List of users. (see [below for nested schema](#nestedatt--users))
|
||||
|
||||
<a id="nestedatt--users"></a>
|
||||
### Nested Schema for `users`
|
||||
|
||||
Read-Only:
|
||||
|
||||
- `email` (String) Email address of the user.
|
||||
- `id` (String) Unique identifier for the user.
|
||||
- `is_admin` (Boolean) Whether the user has administrative privileges.
|
||||
- `name` (String) Full name of the user.
|
||||
- `storage_label` (String) Label used for the user's storage path.
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
page_title: "Provider: Immich"
|
||||
---
|
||||
|
||||
# Immich Provider
|
||||
|
||||
The Immich provider is used to interact with the [Immich](https://immich.app/) API.
|
||||
Immich is a high-performance self-hosted photo and video management solution.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
provider "immich" {
|
||||
endpoint = "http://192.168.1.10:2283/api"
|
||||
api_key = "your-admin-api-key"
|
||||
}
|
||||
```
|
||||
|
||||
<!-- schema generated by tfplugindocs -->
|
||||
## Schema
|
||||
|
||||
### Optional
|
||||
|
||||
- `api_key` (String, Sensitive) The API key for authenticating with the Immich server. Can also be set via the `IMMICH_API_KEY` environment variable.
|
||||
- `endpoint` (String) The full URL of the Immich API endpoint. Can also be set via the `IMMICH_ENDPOINT` environment variable.
|
||||
@@ -0,0 +1,56 @@
|
||||
---
|
||||
# generated by https://github.com/hashicorp/terraform-plugin-docs
|
||||
page_title: "immich_album Resource - terraform-provider-immich"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
Manages an Immich album.
|
||||
---
|
||||
|
||||
# immich_album (Resource)
|
||||
|
||||
Manages an Immich album.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
resource "immich_album" "example" {
|
||||
name = "Vacation 2024"
|
||||
description = "Photos from our summer vacation"
|
||||
order = "desc"
|
||||
|
||||
users = [
|
||||
{
|
||||
user_id = "some-user-id"
|
||||
role = "Editor"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
<!-- schema generated by tfplugindocs -->
|
||||
## Schema
|
||||
|
||||
### Required
|
||||
|
||||
- `name` (String) Display name of the album.
|
||||
|
||||
### Optional
|
||||
|
||||
- `album_thumbnail_asset_id` (String) ID of the asset used as the album's thumbnail.
|
||||
- `asset_ids` (List of String) List of asset IDs to include in the album.
|
||||
- `description` (String) Optional description of the album.
|
||||
- `is_activity_enabled` (Boolean) Whether user activity (comments/likes) is enabled for this album.
|
||||
- `order` (String) Sort order for assets in the album. Must be either `asc` or `desc`.
|
||||
- `users` (Attributes List) List of users to share the album with. (see [below for nested schema](#nestedatt--users))
|
||||
|
||||
### Read-Only
|
||||
|
||||
- `id` (String) Unique identifier for the album.
|
||||
|
||||
<a id="nestedatt--users"></a>
|
||||
### Nested Schema for `users`
|
||||
|
||||
Required:
|
||||
|
||||
- `role` (String) Role granted to the user. Must be either `Editor` or `Viewer`.
|
||||
- `user_id` (String) Unique identifier of the user to share with.
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
# generated by https://github.com/hashicorp/terraform-plugin-docs
|
||||
page_title: "immich_api_key Resource - terraform-provider-immich"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
Manages an Immich personal API key. Note that the secret is only available upon creation.
|
||||
---
|
||||
|
||||
# immich_api_key (Resource)
|
||||
|
||||
Manages an Immich personal API key. Note that the secret is only available upon creation.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
resource "immich_api_key" "example" {
|
||||
name = "Example API Key"
|
||||
permissions = ["asset.read", "asset.upload"]
|
||||
}
|
||||
```
|
||||
|
||||
<!-- schema generated by tfplugindocs -->
|
||||
## Schema
|
||||
|
||||
### Required
|
||||
|
||||
- `permissions` (List of String) List of permissions granted to this API key (e.g. `asset.read`, `asset.upload`).
|
||||
|
||||
### Optional
|
||||
|
||||
- `name` (String) Display name for the API key.
|
||||
|
||||
### Read-Only
|
||||
|
||||
- `id` (String) Unique identifier for the API key.
|
||||
- `secret` (String, Sensitive) The generated API key secret. This value is only returned when the key is created.
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
# generated by https://github.com/hashicorp/terraform-plugin-docs
|
||||
page_title: "immich_shared_link Resource - terraform-provider-immich"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
Manages an Immich shared link for albums or individual assets.
|
||||
---
|
||||
|
||||
# immich_shared_link (Resource)
|
||||
|
||||
Manages an Immich shared link for albums or individual assets.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
resource "immich_shared_link" "example" {
|
||||
type = "ALBUM"
|
||||
album_id = "some-album-id"
|
||||
description = "My shared album"
|
||||
allow_download = true
|
||||
}
|
||||
```
|
||||
|
||||
<!-- schema generated by tfplugindocs -->
|
||||
## Schema
|
||||
|
||||
### Required
|
||||
|
||||
- `type` (String) Type of the shared link. Must be either `ALBUM` or `INDIVIDUAL`.
|
||||
|
||||
### Optional
|
||||
|
||||
- `album_id` (String) ID of the album to share (required if type is `ALBUM`).
|
||||
- `allow_download` (Boolean) Whether to allow users with the link to download assets.
|
||||
- `allow_upload` (Boolean) Whether to allow users with the link to upload assets.
|
||||
- `asset_ids` (List of String) List of asset IDs to share (required if type is `INDIVIDUAL`).
|
||||
- `description` (String) Optional description for the shared link.
|
||||
- `expires_at` (String) ISO 8601 formatted timestamp when the link expires.
|
||||
- `password` (String, Sensitive) Optional password protection for the link.
|
||||
- `show_metadata` (Boolean) Whether to show asset metadata to users with the link.
|
||||
- `slug` (String) Custom URL slug for the shared link.
|
||||
|
||||
### Read-Only
|
||||
|
||||
- `id` (String) Unique identifier for the shared link.
|
||||
- `key` (String) The encryption key for the shared link.
|
||||
@@ -0,0 +1,96 @@
|
||||
---
|
||||
# generated by https://github.com/hashicorp/terraform-plugin-docs
|
||||
page_title: "immich_system_config Resource - terraform-provider-immich"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
Manages Immich system configuration. This is a singleton resource.
|
||||
---
|
||||
|
||||
# immich_system_config (Resource)
|
||||
|
||||
Manages Immich system configuration. This is a singleton resource.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
resource "immich_system_config" "example" {
|
||||
password_login = {
|
||||
enabled = true
|
||||
}
|
||||
|
||||
oauth = {
|
||||
enabled = true
|
||||
issuer_url = "https://keycloak.example.com/realms/immich"
|
||||
client_id = "immich-client"
|
||||
client_secret = "your-client-secret"
|
||||
scope = "openid profile email"
|
||||
button_text = "Login with Keycloak"
|
||||
auto_register = true
|
||||
}
|
||||
|
||||
storage_template = {
|
||||
template = "{{y}}/{{y}}-{{m}}-{{d}}/{{filename}}"
|
||||
}
|
||||
|
||||
machine_learning = {
|
||||
enabled = true
|
||||
url = "http://immich-machine-learning:3003"
|
||||
clip_model = "ViT-L-14__openai"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<!-- schema generated by tfplugindocs -->
|
||||
## Schema
|
||||
|
||||
### Optional
|
||||
|
||||
- `machine_learning` (Attributes) (see [below for nested schema](#nestedatt--machine_learning))
|
||||
- `oauth` (Attributes) (see [below for nested schema](#nestedatt--oauth))
|
||||
- `password_login` (Attributes) (see [below for nested schema](#nestedatt--password_login))
|
||||
- `storage_template` (Attributes) (see [below for nested schema](#nestedatt--storage_template))
|
||||
|
||||
<a id="nestedatt--machine_learning"></a>
|
||||
### Nested Schema for `machine_learning`
|
||||
|
||||
Optional:
|
||||
|
||||
- `clip_model` (String) CLIP model to use.
|
||||
- `enabled` (Boolean) Enable machine learning features.
|
||||
- `facial_recognition_model` (String) Facial recognition model to use.
|
||||
- `url` (String) URL of the machine learning server.
|
||||
|
||||
|
||||
<a id="nestedatt--oauth"></a>
|
||||
### Nested Schema for `oauth`
|
||||
|
||||
Optional:
|
||||
|
||||
- `auto_launch` (Boolean) Auto launch OAuth login.
|
||||
- `auto_register` (Boolean) Auto register users via OAuth.
|
||||
- `button_text` (String) OAuth button text.
|
||||
- `client_id` (String) OAuth client ID.
|
||||
- `client_secret` (String, Sensitive) OAuth client secret.
|
||||
- `default_storage_quota` (Number) Default storage quota for new users in bytes.
|
||||
- `enabled` (Boolean) Enable OAuth login.
|
||||
- `issuer_url` (String) OAuth issuer URL.
|
||||
- `mobile_override_url` (String) Mobile override URL.
|
||||
- `mobile_redirect_uri` (String) Mobile redirect URI.
|
||||
- `scope` (String) OAuth scope.
|
||||
- `signing_algorithm` (String) Signing algorithm.
|
||||
|
||||
|
||||
<a id="nestedatt--password_login"></a>
|
||||
### Nested Schema for `password_login`
|
||||
|
||||
Optional:
|
||||
|
||||
- `enabled` (Boolean) Enable password login.
|
||||
|
||||
|
||||
<a id="nestedatt--storage_template"></a>
|
||||
### Nested Schema for `storage_template`
|
||||
|
||||
Optional:
|
||||
|
||||
- `template` (String) Storage template (e.g. `{{y}}/{{y}}-{{m}}-{{d}}/{{filename}}`).
|
||||
@@ -0,0 +1,42 @@
|
||||
---
|
||||
# generated by https://github.com/hashicorp/terraform-plugin-docs
|
||||
page_title: "immich_user Resource - terraform-provider-immich"
|
||||
subcategory: ""
|
||||
description: |-
|
||||
Manages an Immich user account.
|
||||
---
|
||||
|
||||
# immich_user (Resource)
|
||||
|
||||
Manages an Immich user account.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```terraform
|
||||
resource "immich_user" "example" {
|
||||
email = "user@example.com"
|
||||
name = "Example User"
|
||||
password = "securepassword123"
|
||||
is_admin = false
|
||||
}
|
||||
```
|
||||
|
||||
<!-- schema generated by tfplugindocs -->
|
||||
## Schema
|
||||
|
||||
### Required
|
||||
|
||||
- `email` (String) Email address of the user. This is used for login.
|
||||
- `name` (String) Full name of the user.
|
||||
- `password` (String, Sensitive) Initial password for the user. Only used during creation or when forced by `should_change_password`.
|
||||
|
||||
### Optional
|
||||
|
||||
- `is_admin` (Boolean) Whether the user has administrative privileges.
|
||||
- `quota_size_in_bytes` (Number) Maximum storage quota for the user in bytes. Set to 0 or null for unlimited.
|
||||
- `should_change_password` (Boolean) Force the user to change their password on next login.
|
||||
- `storage_label` (String) Label used for the user's storage path.
|
||||
|
||||
### Read-Only
|
||||
|
||||
- `id` (String) Unique identifier for the user.
|
||||
Reference in New Issue
Block a user