mirror of
https://github.com/LukeHagar/plexterraform.git
synced 2025-12-06 04:20:52 +00:00
170 lines
5.5 KiB
Markdown
170 lines
5.5 KiB
Markdown
# PlexAPI
|
|
|
|
<div align="left">
|
|
<a href="https://speakeasyapi.dev/"><img src="https://custom-icon-badges.demolab.com/badge/-Built%20By%20Speakeasy-212015?style=for-the-badge&logoColor=FBE331&logo=speakeasy&labelColor=545454" /></a>
|
|
<a href="https://github.com/LukeHagar/plexterraform.git/actions"><img src="https://img.shields.io/github/actions/workflow/status/LukeHagar/plexterraform/speakeasy_sdk_generation.yml?style=for-the-badge" /></a>
|
|
|
|
</div>
|
|
|
|
<no value>
|
|
<!-- Start SDK <no value> -->
|
|
To install this provider, copy and paste this code into your Terraform configuration. Then, run `terraform init`.
|
|
|
|
```hcl
|
|
terraform {
|
|
required_providers {
|
|
PlexAPI = {
|
|
source = "LukeHagar/PlexAPI"
|
|
version = "0.1.0"
|
|
}
|
|
}
|
|
}
|
|
|
|
provider "PlexAPI" {
|
|
# Configuration options
|
|
}
|
|
```
|
|
<!-- End SDK <no value> -->
|
|
|
|
<no value>
|
|
<!-- Start SDK <no value> -->
|
|
### Testing the provider locally
|
|
|
|
Should you want to validate a change locally, the `--debug` flag allows you to execute the provider against a terraform instance locally.
|
|
|
|
This also allows for debuggers (e.g. delve) to be attached to the provider.
|
|
|
|
### Example
|
|
|
|
```sh
|
|
go run main.go --debug
|
|
# Copy the TF_REATTACH_PROVIDERS env var
|
|
# In a new terminal
|
|
cd examples/your-example
|
|
TF_REATTACH_PROVIDERS=... terraform init
|
|
TF_REATTACH_PROVIDERS=... terraform apply
|
|
```
|
|
<!-- End SDK <no value> -->
|
|
|
|
<no value>
|
|
<!-- Start SDK <no value> -->
|
|
|
|
<!-- End SDK <no value> -->
|
|
|
|
<!-- Start SDK Installation [installation] -->
|
|
## SDK Installation
|
|
|
|
To install this provider, copy and paste this code into your Terraform configuration. Then, run `terraform init`.
|
|
|
|
```hcl
|
|
terraform {
|
|
required_providers {
|
|
PlexAPI = {
|
|
source = "LukeHagar/PlexAPI"
|
|
version = "0.18.0"
|
|
}
|
|
}
|
|
}
|
|
|
|
provider "PlexAPI" {
|
|
# Configuration options
|
|
}
|
|
```
|
|
<!-- End SDK Installation [installation] -->
|
|
|
|
<!-- Start SDK Example Usage [usage] -->
|
|
## SDK Example Usage
|
|
|
|
### Testing the provider locally
|
|
|
|
Should you want to validate a change locally, the `--debug` flag allows you to execute the provider against a terraform instance locally.
|
|
|
|
This also allows for debuggers (e.g. delve) to be attached to the provider.
|
|
|
|
### Example
|
|
|
|
```sh
|
|
go run main.go --debug
|
|
# Copy the TF_REATTACH_PROVIDERS env var
|
|
# In a new terminal
|
|
cd examples/your-example
|
|
TF_REATTACH_PROVIDERS=... terraform init
|
|
TF_REATTACH_PROVIDERS=... terraform apply
|
|
```
|
|
<!-- End SDK Example Usage [usage] -->
|
|
|
|
<!-- Start Available Resources and Operations [operations] -->
|
|
## Available Resources and Operations
|
|
|
|
|
|
<!-- End Available Resources and Operations [operations] -->
|
|
|
|
<!-- Start Global Parameters [global-parameters] -->
|
|
## Global Parameters
|
|
|
|
A parameter is configured globally. This parameter may be set on the SDK client instance itself during initialization. When configured as an option during SDK initialization, This global value will be used as the default on the operations that use it. When such operations are called, there is a place in each to override the global value, if needed.
|
|
|
|
For example, you can set `X-Plex-Client-Identifier` to `"Postman"` at SDK initialization and then you do not have to pass the same value on calls to operations like `GetPin`. But if you want to do so you may, which will locally override the global setting. See the example code below for a demonstration.
|
|
|
|
|
|
### Available Globals
|
|
|
|
The following global parameter is available.
|
|
|
|
| Name | Type | Required | Description |
|
|
| ---- | ---- |:--------:| ----------- |
|
|
| XPlexClientIdentifier | string | | The unique identifier for the client application
|
|
This is used to track the client application and its usage
|
|
(UUID, serial number, or other number unique per device)
|
|
|
|
|
|
|
|
|
### Testing the provider locally
|
|
|
|
Should you want to validate a change locally, the `--debug` flag allows you to execute the provider against a terraform instance locally.
|
|
|
|
This also allows for debuggers (e.g. delve) to be attached to the provider.
|
|
|
|
### Example
|
|
|
|
```sh
|
|
go run main.go --debug
|
|
# Copy the TF_REATTACH_PROVIDERS env var
|
|
# In a new terminal
|
|
cd examples/your-example
|
|
TF_REATTACH_PROVIDERS=... terraform init
|
|
TF_REATTACH_PROVIDERS=... terraform apply
|
|
```
|
|
<!-- End Global Parameters [global-parameters] -->
|
|
|
|
<!-- Placeholder for Future Speakeasy SDK Sections -->
|
|
|
|
Terraform allows you to use local provider builds by setting a `dev_overrides` block in a configuration file called `.terraformrc`. This block overrides all other configured installation methods.
|
|
|
|
Terraform searches for the `.terraformrc` file in your home directory and applies any configuration settings you set.
|
|
|
|
```
|
|
provider_installation {
|
|
|
|
dev_overrides {
|
|
"registry.terraform.io/LukeHagar/plex-api" = "<PATH>"
|
|
}
|
|
|
|
# For all other providers, install them directly from their origin provider
|
|
# registries as normal. If you omit this, Terraform will _only_ use
|
|
# the dev_overrides block, and so no other providers will be available.
|
|
direct {}
|
|
}
|
|
```
|
|
|
|
Your `<PATH>` may vary depending on how your Go environment variables are configured. Execute `go env GOBIN` to set it, then set the `<PATH>` to the value returned. If nothing is returned, set it to the default location, `$HOME/go/bin`.
|
|
|
|
Note: To use the dev_overrides, please ensure you run `go build` in this folder. You must have a binary available for terraform to find.
|
|
|
|
### Contributions
|
|
|
|
While we value open-source contributions to this SDK, this library is generated programmatically.
|
|
Feel free to open a PR or a Github issue as a proof of concept and we'll do our best to include it in a future release!
|
|
|
|
### SDK Created by [Speakeasy](https://docs.speakeasyapi.dev/docs/using-speakeasy/client-sdks)
|