Terraform Provider (v0.3.1)

The released LimeLink Terraform provider is hellovelop/limelink version 0.3.1. These claims were checked against the v0.3.1 release; consult the provider's generated documentation for exact, release-specific schemas.

Install

terraform {
  required_providers {
    limelink = {
      source  = "hellovelop/limelink"
      version = "0.3.1"
    }
  }
}

provider "limelink" {}

Production https://api.limelink.org is the default API origin. The recognized development origin, https://api.dev.limelink.org, is opt-in through api_url.

Authentication and Ownership

An explicit sensitive api_key takes precedence. Do not place an api_key literal in Terraform configuration; prefer protected environment or secret-injection mechanisms. Otherwise the provider reads the environment variable named by api_key_env_var, which defaults to LIMELINK_API_KEY.

export LIMELINK_API_KEY="your_organization_api_key"
terraform plan

If a custom environment variable is explicitly selected but missing or blank, configuration fails without falling back to LIMELINK_API_KEY. Blank explicit keys, unknown values, and invalid environment-variable names also fail configuration.

Every provider configuration introspects the current credential through GET /api/v2/api-credentials/current. The provider derives the Organization and granted scopes from that credential; users do not configure organization_id. Each provider alias independently owns one credential-derived Organization context, so use aliases backed by different credentials or environment variables for multiple Organizations.

Supported Surface

Version 0.3.1 supports Project, Application, and Custom Domain managed resources. Link is intentionally read-only through a UUID lookup data source.

DomainResourceData source
Projectlimelink_projectlimelink_project
Applicationlimelink_applicationlimelink_application
Custom Domainlimelink_custom_domainlimelink_custom_domain
LinkNot supported as a managed resourcelimelink_link

Released data sources are UUID lookups, not list or search operations. Project, Application, and Custom Domain resources support UUID-only Terraform import. Links are created and updated through the LimeLink console or API, then inspected from Terraform with data.limelink_link when needed.

Minimal Examples

Manage a Project and its Project-owned landing message:

resource "limelink_project" "example" {
  name               = "Example Project"
  default_hookup_msg = "Open this content in the app"
}

Manage one iOS Application and a Custom Domain:

resource "limelink_application" "ios" {
  project_id = limelink_project.example.id
  app_type   = "IOS"
  apple_info = {
    app_name      = "Example iOS"
    app_scheme    = "example"
    bundle_id     = "com.example.app"
    app_id_prefix = "ABCDE12345"
  }
}

resource "limelink_custom_domain" "example" {
  project_id = limelink_project.example.id
  hostname   = "go.example.com"
}

Inspect—but do not manage—an existing Link:

data "limelink_link" "example" {
  id = "66666666-6666-4666-8666-666666666666"
}

Use the generated provider documentation for the complete schemas and import examples.

Required Scopes

DomainResource scopesData-source scope
Projectprojects:read, projects:writeprojects:read
Applicationapplications:read, applications:writeapplications:read
Custom Domaindomains:read, domains:writedomains:read
LinkNot applicablelinks:read

Scope checks occur during resource or data-source configuration before the operation. Grant only the scopes required by the configuration.

Plan, Apply, and Import Safety

Authoritative References

Terraform is separate from the MCP Server: provider resources and data sources are not MCP tools, and the two integrations use different configuration models.