From bd51b3a5372b9fd7aff6eb286be9725df78d3def Mon Sep 17 00:00:00 2001 From: Pulumi Bot Date: Thu, 19 Sep 2024 21:47:33 +0000 Subject: [PATCH] Publish Package Metadata for linode@v4.27.1 --- .../registry/packages/linode/_index.md | 706 ++++++++++++++++-- .../data/registry/packages/linode.yaml | 4 +- 2 files changed, 662 insertions(+), 48 deletions(-) diff --git a/themes/default/content/registry/packages/linode/_index.md b/themes/default/content/registry/packages/linode/_index.md index b9d823b4d7..a9925c8750 100644 --- a/themes/default/content/registry/packages/linode/_index.md +++ b/themes/default/content/registry/packages/linode/_index.md @@ -1,99 +1,713 @@ --- -title: Linode -meta_desc: Provides an overview of the Linode SDK for Pulumi. +title: Linode Provider +meta_desc: Provides an overview on how to configure the Pulumi Linode provider. layout: package --- +## Installation -The Linode provider for Pulumi can be used to provision any of the cloud resources available in [Linode](https://www.linode.com). -The Linode provider must be configured with credentials to deploy and update resources in Linode. +The linode provider is available as a package in all Pulumi languages: -## Example +* JavaScript/TypeScript: [`@pulumi/linode`](https://www.npmjs.com/package/@pulumi/linode) +* Python: [`pulumi-linode`](https://pypi.org/project/pulumi-linode/) +* Go: [`github.com/pulumi/pulumi-linode/sdk/v4/go/linode`](https://github.com/pulumi/pulumi-linode) +* .NET: [`Pulumi.Linode`](https://www.nuget.org/packages/Pulumi.Linode) +* Java: [`com.pulumi/linode`](https://central.sonatype.com/artifact/com.pulumi/linode) +## Overview -{{< chooser language "javascript,typescript,python,go,csharp" >}} +The Linode provider exposes resources and data sources to interact with [Linode](https://www.linode.com/) services. +The provider needs to be configured with the proper credentials before it can be used. -{{% choosable language javascript %}} +Use the navigation to the left to read about the available data sources. +## Example Usage -```javascript -const linode = require("@pulumi/linode") -const domain = new linode.Domain("my-domain", { - domain: "foobar.example", - soaEmail: "example@foobar.example", - type: "master", -}); -``` -{{% /choosable %}} + +{{< chooser language "typescript,python,go,csharp,java,yaml" >}} {{% choosable language typescript %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: nodejs +``` ```typescript +import * as pulumi from "@pulumi/pulumi"; import * as linode from "@pulumi/linode"; -const domain = new linode.Domain("my-domain", { - domain: "foobar.example", - soaEmail: "example@foobar.example", - type: "master", -}); -``` +// Create a Linode +const foobar = new linode.Instance("foobar", {}); +``` {{% /choosable %}} {{% choosable language python %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: python +``` ```python +import pulumi import pulumi_linode as linode -domain = linode.Domain("my-domain", - domain='foobar.example', - soa_email='example@foobar.example', - type='master', -) + +# Create a Linode +foobar = linode.Instance("foobar") ``` +{{% /choosable %}} +{{% choosable language csharp %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: dotnet +``` +```csharp +using System.Collections.Generic; +using System.Linq; +using Pulumi; +using Linode = Pulumi.Linode; + +return await Deployment.RunAsync(() => +{ + // Create a Linode + var foobar = new Linode.Instance("foobar"); + +}); + +``` {{% /choosable %}} {{% choosable language go %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: go +``` ```go +package main + import ( + "github.com/pulumi/pulumi-linode/sdk/v4/go/linode" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" - linode "github.com/pulumi/pulumi-linode/sdk/v3/go/linode" ) func main() { pulumi.Run(func(ctx *pulumi.Context) error { - domain, err := linode.NewDomain(ctx, "test", &linode.DomainArgs{ - Domain: pulumi.String("foobar.example"), - SoaEmail: pulumi.String("example@foobar.example"), - Type: pulumi.String("master"), - }) + // Create a Linode + _, err := linode.NewInstance(ctx, "foobar", nil) if err != nil { return err } - return nil }) } +``` +{{% /choosable %}} +{{% choosable language yaml %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: yaml ``` +```yaml +resources: + # Create a Linode + foobar: + type: linode:Instance +``` +{{% /choosable %}} +{{% choosable language java %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: java + +``` +```java +package generated_program; +import com.pulumi.Context; +import com.pulumi.Pulumi; +import com.pulumi.core.Output; +import com.pulumi.linode.Instance; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class App { + public static void main(String[] args) { + Pulumi.run(App::stack); + } + + public static void stack(Context ctx) { + // Create a Linode + var foobar = new Instance("foobar"); + + } +} +``` +{{% /choosable %}} +{{< /chooser >}} + + + +{{< chooser language "typescript,python,go,csharp,java,yaml" >}} +{{% choosable language typescript %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: nodejs + +``` +```typescript +import * as pulumi from "@pulumi/pulumi"; +import * as linode from "@pulumi/linode"; + +// Create a Linode +const foobar = new linode.Instance("foobar", {}); +``` +{{% /choosable %}} +{{% choosable language python %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: python + +``` +```python +import pulumi +import pulumi_linode as linode + +# Create a Linode +foobar = linode.Instance("foobar") +``` {{% /choosable %}} {{% choosable language csharp %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: dotnet +``` ```csharp -using System.Threading.Tasks; +using System.Collections.Generic; +using System.Linq; using Pulumi; -using Pulumi.Linode; +using Linode = Pulumi.Linode; -class Program +return await Deployment.RunAsync(() => { - static Task Main() => - Deployment.Run(() => { - var domain = new Linode.Domain("my-domain", new Linode.DomainArgs - { - Domain = "foobar.example", - SoaEmail = "example@foobar.example", - Type = "master", - }); - }); + // Create a Linode + var foobar = new Linode.Instance("foobar"); + +}); + +``` +{{% /choosable %}} +{{% choosable language go %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: go + +``` +```go +package main + +import ( + "github.com/pulumi/pulumi-linode/sdk/v4/go/linode" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +func main() { + pulumi.Run(func(ctx *pulumi.Context) error { + // Create a Linode + _, err := linode.NewInstance(ctx, "foobar", nil) + if err != nil { + return err + } + return nil + }) } ``` +{{% /choosable %}} +{{% choosable language yaml %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: yaml +``` +```yaml +resources: + # Create a Linode + foobar: + type: linode:Instance +``` {{% /choosable %}} +{{% choosable language java %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: java + +``` +```java +package generated_program; +import com.pulumi.Context; +import com.pulumi.Pulumi; +import com.pulumi.core.Output; +import com.pulumi.linode.Instance; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class App { + public static void main(String[] args) { + Pulumi.run(App::stack); + } + + public static void stack(Context ctx) { + // Create a Linode + var foobar = new Instance("foobar"); + + } +} +``` +{{% /choosable %}} {{< /chooser >}} +## Configuration Reference + +The following keys can be used to configure the provider. +### Basic Configuration + +This section outlines commonly used provider configuration options. + +* `configPath` - (Optional) The path to the Linode config file to use. (default `~/.config/linode`) + +* `configProfile` - (Optional) The Linode config profile to use. (default `default`) + +* `token` - (Optional) This is your [Linode APIv4 Token](https://techdocs.akamai.com/linode-api/reference/get-started#personal-access-tokens). + + The Linode Token can also be specified using the `LINODE_TOKEN` shell environment variable. (e.g. `export LINODE_TOKEN=mytoken`) + + Specifying a token through the `token` field or through the `LINODE_TOKEN` shell environment variable will override the token loaded through a config. + + Configs are not required if a `token` is defined. + +* `url` - (Optional) The HTTP(S) API address of the Linode API to use. + + The Linode API URL can also be specified using the `LINODE_URL` environment variable. + + Overrides the Linode Config `apiUrl` field. + +* `apiVersion` (Optional) The version of the Linode API to use. (default `v4`) + + The Linode API version can also be specified using the `LINODE_API_VERSION` environment variable. + +* `objAccessKey` - (Optional) The access key to be used in [linode.ObjectStorageBucket](https://www.terraform.io/docs/resources/object_storage_bucket.md) and [linode.ObjectStorageObject](https://www.terraform.io/docs/resources/object_storage_object.md). + + The Object Access Key can also be specified using the `LINODE_OBJ_ACCESS_KEY` shell environment variable. + +* `objSecretKey` - (Optional) The secret key to be used in [linode.ObjectStorageBucket](https://www.terraform.io/docs/resources/object_storage_bucket.md) and [linode.ObjectStorageObject](https://www.terraform.io/docs/resources/object_storage_object.md). + + The Object Secret Key can also be specified using the `LINODE_OBJ_SECRET_KEY` shell environment variable. + +* `objUseTempKeys` - (Optional) If true, temporary object keys will be created implicitly at apply-time for the [linode.ObjectStorageBucket](https://www.terraform.io/docs/resources/object_storage_bucket.md) and [linode.ObjectStorageObject](https://www.terraform.io/docs/resources/object_storage_object.md) resource to use. + +* `objBucketForceDelete` - (Optional) If true, all objects and versions will purged from a [linode.ObjectStorageBucket](https://www.terraform.io/docs/resources/object_storage_bucket.md) before it is destroyed. + +* `skipInstanceReadyPoll` - (Optional) Skip waiting for a linode.Instance resource to be running. + +* `skipInstanceDeletePoll` - (Optional) Skip waiting for a linode.Instance resource to finish deleting. + +* `skipImplicitReboots` - (Optional) If true, Linode Instances will not be rebooted on config and interface changes. (default `false`) +### Advanced Configuration + +This section outlines less frequently used provider configuration options. + +* `uaPrefix` - (Optional) An HTTP User-Agent Prefix to prepend in API requests. + + The User-Agent Prefix can also be specified using the `LINODE_UA_PREFIX` environment variable. + +* `minRetryDelayMs` - (Optional) Minimum delay in milliseconds before retrying a request. (default `100`) + +* `maxRetryDelayMs` - (Optional) Maximum delay in milliseconds before retrying a request. (default `2000`) + +* `eventPollMs` - (Optional) The rate in milliseconds to poll for Linode events. (default `4000`) + + The event polling rate can also be configured using the `LINODE_EVENT_POLL_MS` environment variable. + +* `lkeEventPollMs` - (Optional) The rate in milliseconds to poll for LKE events. (default `3000`) + +* `lkeNodeReadyPollMs` - (Optional) The rate in milliseconds to poll for an LKE node to be ready. (default `3000`) + +* `disableInternalCache` - (Optional) If true, the internal caching system that backs certain Linode API requests will be disabled. (default `false`) +## Early Access + +Some resources are made available before the feature reaches general availability. These resources are subject to change, and may not be available to all customers in all regions. Early access features can be accessed by configuring the provider to use a different version of the API. +### Configuring the Target API Version + +The `apiVersion` can be set on the provider block like so: + +{{< chooser language "typescript,python,go,csharp,java,yaml" >}} +{{% choosable language typescript %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: nodejs +config: + linode:apiVersion: + value: v4beta + +``` + +{{% /choosable %}} +{{% choosable language python %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: python +config: + linode:apiVersion: + value: v4beta + +``` + +{{% /choosable %}} +{{% choosable language csharp %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: dotnet +config: + linode:apiVersion: + value: v4beta + +``` + +{{% /choosable %}} +{{% choosable language go %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: go +config: + linode:apiVersion: + value: v4beta + +``` + +{{% /choosable %}} +{{% choosable language yaml %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: yaml +config: + linode:apiVersion: + value: v4beta + +``` + +{{% /choosable %}} +{{% choosable language java %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: java +config: + linode:apiVersion: + value: v4beta + +``` + +{{% /choosable %}} +{{< /chooser >}} + +Additionally, the version can be set with the `LINODE_API_VERSION` environment variable. +## Rate Limiting + +The Linode API may apply rate limiting when you update the state for a large inventory: + +``` +Error: Error getting Linode DomainRecord ID 123456: [002] unexpected end of JSON input + + + +Error: Error finding the specified Linode DomainRecord: [002] unexpected end of JSON input +``` + +If this affects you, run Pulumi with --parallelism=1 +## Using Configuration Files + +Configuration files can be used to specify Linode client configuration options across various Linode integrations. + +For example: + +`~/.config/linode` + +```ini +[default] +token = mylinodetoken +``` + +`Pulumi.yaml` + +{{< chooser language "typescript,python,go,csharp,java,yaml" >}} +{{% choosable language typescript %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: nodejs + +``` + +{{% /choosable %}} +{{% choosable language python %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: python + +``` + +{{% /choosable %}} +{{% choosable language csharp %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: dotnet + +``` + +{{% /choosable %}} +{{% choosable language go %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: go + +``` + +{{% /choosable %}} +{{% choosable language yaml %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: yaml + +``` + +{{% /choosable %}} +{{% choosable language java %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: java + +``` + +{{% /choosable %}} +{{< /chooser >}} + +Specifying the `token` provider options or defining `LINODE_TOKEN` in the environment will override any tokens loaded from a configuration file. + +Profiles can also be defined for multitenant use-cases. Every profile will inherit fields from the `default` profile. + +For example: + +`~/.config/linode` + +```ini +[default] +token = alinodetoken + +[foo] +token = anotherlinodetoken + +[bar] +token = yetanotherlinodetoken +``` + +`Pulumi.yaml` + +{{< chooser language "typescript,python,go,csharp,java,yaml" >}} +{{% choosable language typescript %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: nodejs +config: + linode:configProfile: + value: bar + +``` + +{{% /choosable %}} +{{% choosable language python %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: python +config: + linode:configProfile: + value: bar + +``` + +{{% /choosable %}} +{{% choosable language csharp %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: dotnet +config: + linode:configProfile: + value: bar + +``` + +{{% /choosable %}} +{{% choosable language go %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: go +config: + linode:configProfile: + value: bar + +``` + +{{% /choosable %}} +{{% choosable language yaml %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: yaml +config: + linode:configProfile: + value: bar + +``` + +{{% /choosable %}} +{{% choosable language java %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: java +config: + linode:configProfile: + value: bar + +``` + +{{% /choosable %}} +{{< /chooser >}} + +Configuration Profiles also expose additional client configuration fields such as `apiUrl` and `apiVersion`. + +For example: + +`~/.config/linode` + +```ini +[default] +token = mylinodetoken + +[stable] +api_version = v4 + +[beta] +api_version = v4beta + +[alpha] +api_version = v4beta +api_url = https://my.alpha.endpoint.com +``` + +`Pulumi.yaml` + +{{< chooser language "typescript,python,go,csharp,java,yaml" >}} +{{% choosable language typescript %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: nodejs +config: + linode:configProfile: + value: beta + +``` + +{{% /choosable %}} +{{% choosable language python %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: python +config: + linode:configProfile: + value: beta + +``` + +{{% /choosable %}} +{{% choosable language csharp %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: dotnet +config: + linode:configProfile: + value: beta + +``` + +{{% /choosable %}} +{{% choosable language go %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: go +config: + linode:configProfile: + value: beta + +``` + +{{% /choosable %}} +{{% choosable language yaml %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: yaml +config: + linode:configProfile: + value: beta + +``` + +{{% /choosable %}} +{{% choosable language java %}} +```yaml +# Pulumi.yaml provider configuration file +name: configuration-example +runtime: java +config: + linode:configProfile: + value: beta + +``` + +{{% /choosable %}} +{{< /chooser >}} \ No newline at end of file diff --git a/themes/default/data/registry/packages/linode.yaml b/themes/default/data/registry/packages/linode.yaml index 85c709128a..b4ff84196c 100644 --- a/themes/default/data/registry/packages/linode.yaml +++ b/themes/default/data/registry/packages/linode.yaml @@ -10,5 +10,5 @@ publisher: Pulumi repo_url: https://github.com/pulumi/pulumi-linode schema_file_path: provider/cmd/pulumi-resource-linode/schema.json title: Linode -updated_on: 1726206496 -version: v4.27.0 +updated_on: 1726780766 +version: v4.27.1