From 1a940541dd7afe74e23ddc9f46bda30fb7144067 Mon Sep 17 00:00:00 2001 From: Sam Cheng Date: Mon, 16 Sep 2024 09:40:10 -0400 Subject: [PATCH 1/6] bump terraform 2.28.0 --- Makefile | 2 +- apis/firewall/v1alpha1/zz_firewall_types.go | 38 +++- .../v1alpha1/zz_generated.deepcopy.go | 30 +++ apis/image/v1alpha1/zz_generated.deepcopy.go | 148 +++++++++++++ apis/image/v1alpha1/zz_image_types.go | 63 ++++++ apis/instance/v1alpha1/zz_disk_types.go | 4 + .../v1alpha1/zz_generated.deepcopy.go | 25 +++ apis/instance/v1alpha1/zz_instance_types.go | 17 ++ apis/lke/v1alpha1/zz_cluster_types.go | 20 ++ apis/lke/v1alpha1/zz_generated.deepcopy.go | 202 ++++++++++++++++++ apis/lke/v1alpha1/zz_nodepool_types.go | 78 +++++++ .../v1alpha1/zz_generated.deepcopy.go | 10 + .../v1alpha1/zz_nodebalancer_types.go | 4 + config/externalname.go | 2 +- config/provider-metadata.yaml | 50 ++++- config/schema.json | 2 +- examples-generated/image/v1alpha1/image.yaml | 3 + go.mod | 57 ++--- go.sum | 120 ++++++----- .../firewall/firewall/zz_controller.go | 12 +- .../firewall.linode.upbound.io_firewalls.yaml | 42 +++- .../crds/image.linode.upbound.io_images.yaml | 80 ++++++- .../instance.linode.upbound.io_disks.yaml | 5 + .../instance.linode.upbound.io_instances.yaml | 20 ++ .../crds/lke.linode.upbound.io_clusters.yaml | 29 +++ .../crds/lke.linode.upbound.io_nodepools.yaml | 98 +++++++++ ...ancer.linode.upbound.io_nodebalancers.yaml | 4 + 27 files changed, 1058 insertions(+), 107 deletions(-) diff --git a/Makefile b/Makefile index d1ee98d..8552651 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ PROJECT_REPO := github.com/linode/$(PROJECT_NAME) export TERRAFORM_VERSION := 1.5.5 export TERRAFORM_PROVIDER_SOURCE := linode/linode -export TERRAFORM_PROVIDER_VERSION := 2.25.0 +export TERRAFORM_PROVIDER_VERSION := 2.28.0 export TERRAFORM_PROVIDER_DOWNLOAD_NAME := terraform-provider-linode export TERRAFORM_NATIVE_PROVIDER_BINARY := terraform-provider-linode_v$(TERRAFORM_PROVIDER_VERSION) export TERRAFORM_PROVIDER_REPO := https://github.com/linode/terraform-provider-linode diff --git a/apis/firewall/v1alpha1/zz_firewall_types.go b/apis/firewall/v1alpha1/zz_firewall_types.go index 53ef17b..5cd3cef 100755 --- a/apis/firewall/v1alpha1/zz_firewall_types.go +++ b/apis/firewall/v1alpha1/zz_firewall_types.go @@ -81,7 +81,7 @@ type FirewallInitParameters struct { OutboundPolicy *string `json:"outboundPolicy,omitempty" tf:"outbound_policy,omitempty"` // A list of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only. - // An array of tags applied to this object. Tags are for organizational purposes only. + // An array of tags applied to the firewall. Tags are for organizational purposes only. // +listType=set Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` } @@ -134,7 +134,7 @@ type FirewallObservation struct { Status *string `json:"status,omitempty" tf:"status,omitempty"` // A list of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only. - // An array of tags applied to this object. Tags are for organizational purposes only. + // An array of tags applied to the firewall. Tags are for organizational purposes only. // +listType=set Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` @@ -194,7 +194,7 @@ type FirewallParameters struct { OutboundPolicy *string `json:"outboundPolicy,omitempty" tf:"outbound_policy,omitempty"` // A list of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only. - // An array of tags applied to this object. Tags are for organizational purposes only. + // An array of tags applied to the firewall. Tags are for organizational purposes only. // +kubebuilder:validation:Optional // +listType=set Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` @@ -203,9 +203,12 @@ type FirewallParameters struct { type InboundInitParameters struct { // Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP). Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. - // Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + // Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. Action *string `json:"action,omitempty" tf:"action,omitempty"` + // Used to describe this rule. For display purposes only. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + // A list of IPv4 addresses or networks. Must be in IP/mask (CIDR) format. // A list of CIDR blocks or 0.0.0.0/0 (to allow all) this rule applies to. IPv4 []*string `json:"ipv4,omitempty" tf:"ipv4,omitempty"` @@ -230,9 +233,12 @@ type InboundInitParameters struct { type InboundObservation struct { // Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP). Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. - // Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + // Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. Action *string `json:"action,omitempty" tf:"action,omitempty"` + // Used to describe this rule. For display purposes only. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + // A list of IPv4 addresses or networks. Must be in IP/mask (CIDR) format. // A list of CIDR blocks or 0.0.0.0/0 (to allow all) this rule applies to. IPv4 []*string `json:"ipv4,omitempty" tf:"ipv4,omitempty"` @@ -257,10 +263,14 @@ type InboundObservation struct { type InboundParameters struct { // Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP). Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. - // Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + // Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. // +kubebuilder:validation:Optional Action *string `json:"action" tf:"action,omitempty"` + // Used to describe this rule. For display purposes only. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + // A list of IPv4 addresses or networks. Must be in IP/mask (CIDR) format. // A list of CIDR blocks or 0.0.0.0/0 (to allow all) this rule applies to. // +kubebuilder:validation:Optional @@ -290,9 +300,12 @@ type InboundParameters struct { type OutboundInitParameters struct { // Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP). Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. - // Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + // Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. Action *string `json:"action,omitempty" tf:"action,omitempty"` + // Used to describe this rule. For display purposes only. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + // A list of IPv4 addresses or networks. Must be in IP/mask (CIDR) format. // A list of CIDR blocks or 0.0.0.0/0 (to allow all) this rule applies to. IPv4 []*string `json:"ipv4,omitempty" tf:"ipv4,omitempty"` @@ -317,9 +330,12 @@ type OutboundInitParameters struct { type OutboundObservation struct { // Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP). Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. - // Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + // Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. Action *string `json:"action,omitempty" tf:"action,omitempty"` + // Used to describe this rule. For display purposes only. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + // A list of IPv4 addresses or networks. Must be in IP/mask (CIDR) format. // A list of CIDR blocks or 0.0.0.0/0 (to allow all) this rule applies to. IPv4 []*string `json:"ipv4,omitempty" tf:"ipv4,omitempty"` @@ -344,10 +360,14 @@ type OutboundObservation struct { type OutboundParameters struct { // Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP). Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. - // Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + // Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. // +kubebuilder:validation:Optional Action *string `json:"action" tf:"action,omitempty"` + // Used to describe this rule. For display purposes only. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + // A list of IPv4 addresses or networks. Must be in IP/mask (CIDR) format. // A list of CIDR blocks or 0.0.0.0/0 (to allow all) this rule applies to. // +kubebuilder:validation:Optional diff --git a/apis/firewall/v1alpha1/zz_generated.deepcopy.go b/apis/firewall/v1alpha1/zz_generated.deepcopy.go index e21e6fe..35ff551 100644 --- a/apis/firewall/v1alpha1/zz_generated.deepcopy.go +++ b/apis/firewall/v1alpha1/zz_generated.deepcopy.go @@ -721,6 +721,11 @@ func (in *InboundInitParameters) DeepCopyInto(out *InboundInitParameters) { *out = new(string) **out = **in } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } if in.IPv4 != nil { in, out := &in.IPv4, &out.IPv4 *out = make([]*string, len(*in)) @@ -778,6 +783,11 @@ func (in *InboundObservation) DeepCopyInto(out *InboundObservation) { *out = new(string) **out = **in } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } if in.IPv4 != nil { in, out := &in.IPv4, &out.IPv4 *out = make([]*string, len(*in)) @@ -835,6 +845,11 @@ func (in *InboundParameters) DeepCopyInto(out *InboundParameters) { *out = new(string) **out = **in } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } if in.IPv4 != nil { in, out := &in.IPv4, &out.IPv4 *out = make([]*string, len(*in)) @@ -892,6 +907,11 @@ func (in *OutboundInitParameters) DeepCopyInto(out *OutboundInitParameters) { *out = new(string) **out = **in } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } if in.IPv4 != nil { in, out := &in.IPv4, &out.IPv4 *out = make([]*string, len(*in)) @@ -949,6 +969,11 @@ func (in *OutboundObservation) DeepCopyInto(out *OutboundObservation) { *out = new(string) **out = **in } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } if in.IPv4 != nil { in, out := &in.IPv4, &out.IPv4 *out = make([]*string, len(*in)) @@ -1006,6 +1031,11 @@ func (in *OutboundParameters) DeepCopyInto(out *OutboundParameters) { *out = new(string) **out = **in } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } if in.IPv4 != nil { in, out := &in.IPv4, &out.IPv4 *out = make([]*string, len(*in)) diff --git a/apis/image/v1alpha1/zz_generated.deepcopy.go b/apis/image/v1alpha1/zz_generated.deepcopy.go index 4b43e3b..6097db5 100644 --- a/apis/image/v1alpha1/zz_generated.deepcopy.go +++ b/apis/image/v1alpha1/zz_generated.deepcopy.go @@ -103,6 +103,33 @@ func (in *ImageInitParameters) DeepCopyInto(out *ImageInitParameters) { *out = new(string) **out = **in } + if in.ReplicaRegions != nil { + in, out := &in.ReplicaRegions, &out.ReplicaRegions + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.WaitForReplications != nil { + in, out := &in.WaitForReplications, &out.WaitForReplications + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageInitParameters. @@ -231,6 +258,24 @@ func (in *ImageObservation) DeepCopyInto(out *ImageObservation) { *out = new(string) **out = **in } + if in.ReplicaRegions != nil { + in, out := &in.ReplicaRegions, &out.ReplicaRegions + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Replications != nil { + in, out := &in.Replications, &out.Replications + *out = make([]ReplicationsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.Size != nil { in, out := &in.Size, &out.Size *out = new(float64) @@ -241,6 +286,22 @@ func (in *ImageObservation) DeepCopyInto(out *ImageObservation) { *out = new(string) **out = **in } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.TotalSize != nil { + in, out := &in.TotalSize, &out.TotalSize + *out = new(float64) + **out = **in + } if in.Type != nil { in, out := &in.Type, &out.Type *out = new(string) @@ -251,6 +312,11 @@ func (in *ImageObservation) DeepCopyInto(out *ImageObservation) { *out = new(string) **out = **in } + if in.WaitForReplications != nil { + in, out := &in.WaitForReplications, &out.WaitForReplications + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageObservation. @@ -326,6 +392,33 @@ func (in *ImageParameters) DeepCopyInto(out *ImageParameters) { *out = new(string) **out = **in } + if in.ReplicaRegions != nil { + in, out := &in.ReplicaRegions, &out.ReplicaRegions + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.WaitForReplications != nil { + in, out := &in.WaitForReplications, &out.WaitForReplications + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageParameters. @@ -372,3 +465,58 @@ func (in *ImageStatus) DeepCopy() *ImageStatus { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReplicationsInitParameters) DeepCopyInto(out *ReplicationsInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationsInitParameters. +func (in *ReplicationsInitParameters) DeepCopy() *ReplicationsInitParameters { + if in == nil { + return nil + } + out := new(ReplicationsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReplicationsObservation) DeepCopyInto(out *ReplicationsObservation) { + *out = *in + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationsObservation. +func (in *ReplicationsObservation) DeepCopy() *ReplicationsObservation { + if in == nil { + return nil + } + out := new(ReplicationsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReplicationsParameters) DeepCopyInto(out *ReplicationsParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationsParameters. +func (in *ReplicationsParameters) DeepCopy() *ReplicationsParameters { + if in == nil { + return nil + } + out := new(ReplicationsParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/image/v1alpha1/zz_image_types.go b/apis/image/v1alpha1/zz_image_types.go index 9a8fafb..aaf3b11 100755 --- a/apis/image/v1alpha1/zz_image_types.go +++ b/apis/image/v1alpha1/zz_image_types.go @@ -63,6 +63,18 @@ type ImageInitParameters struct { // The region of the image. See all regions here. // The region to upload to. Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A list of regions that customer wants to replicate this image in. At least one valid region is required and only core regions allowed. Existing images in the regions not passed will be removed. Note: Image replication may not be available to all users. See Replicate an Image here for more details. + // A list of regions that customer wants to replicate this image in. At least one available region is required and only core regions allowed. Existing images in the regions not passed will be removed. + ReplicaRegions []*string `json:"replicaRegions,omitempty" tf:"replica_regions,omitempty"` + + // A list of customized tags. + // The customized tags for the image. + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Whether to wait for all image replications become available. Default to false. + // Whether to wait for all image replications become `available`. + WaitForReplications *bool `json:"waitForReplications,omitempty" tf:"wait_for_replications,omitempty"` } type ImageObservation struct { @@ -124,13 +136,30 @@ type ImageObservation struct { // The region to upload to. Region *string `json:"region,omitempty" tf:"region,omitempty"` + // A list of regions that customer wants to replicate this image in. At least one valid region is required and only core regions allowed. Existing images in the regions not passed will be removed. Note: Image replication may not be available to all users. See Replicate an Image here for more details. + // A list of regions that customer wants to replicate this image in. At least one available region is required and only core regions allowed. Existing images in the regions not passed will be removed. + ReplicaRegions []*string `json:"replicaRegions,omitempty" tf:"replica_regions,omitempty"` + + // A list of image replications region and corresponding status. + // A list of image replications region and corresponding status. + Replications []ReplicationsObservation `json:"replications,omitempty" tf:"replications,omitempty"` + // The minimum size this Image needs to deploy. Size is in MB. // The minimum size this Image needs to deploy. Size is in MB. Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + // The status of an image replica. // The current status of this Image. Status *string `json:"status,omitempty" tf:"status,omitempty"` + // A list of customized tags. + // The customized tags for the image. + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The total size of the image in all available regions. + // The total size of the image in all available regions. + TotalSize *float64 `json:"totalSize,omitempty" tf:"total_size,omitempty"` + // How the Image was created. 'Manual' Images can be created at any time. 'Automatic' images are created automatically from a deleted Linode. // How the Image was created. 'Manual' Images can be created at any time. 'Automatic' images are created automatically from a deleted Linode. Type *string `json:"type,omitempty" tf:"type,omitempty"` @@ -138,6 +167,10 @@ type ImageObservation struct { // The upstream distribution vendor. Nil for private Images. // The upstream distribution vendor. Nil for private Images. Vendor *string `json:"vendor,omitempty" tf:"vendor,omitempty"` + + // Whether to wait for all image replications become available. Default to false. + // Whether to wait for all image replications become `available`. + WaitForReplications *bool `json:"waitForReplications,omitempty" tf:"wait_for_replications,omitempty"` } type ImageParameters struct { @@ -198,6 +231,36 @@ type ImageParameters struct { // The region to upload to. // +kubebuilder:validation:Optional Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A list of regions that customer wants to replicate this image in. At least one valid region is required and only core regions allowed. Existing images in the regions not passed will be removed. Note: Image replication may not be available to all users. See Replicate an Image here for more details. + // A list of regions that customer wants to replicate this image in. At least one available region is required and only core regions allowed. Existing images in the regions not passed will be removed. + // +kubebuilder:validation:Optional + ReplicaRegions []*string `json:"replicaRegions,omitempty" tf:"replica_regions,omitempty"` + + // A list of customized tags. + // The customized tags for the image. + // +kubebuilder:validation:Optional + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Whether to wait for all image replications become available. Default to false. + // Whether to wait for all image replications become `available`. + // +kubebuilder:validation:Optional + WaitForReplications *bool `json:"waitForReplications,omitempty" tf:"wait_for_replications,omitempty"` +} + +type ReplicationsInitParameters struct { +} + +type ReplicationsObservation struct { + + // The region of the image. See all regions here. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The status of an image replica. + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +type ReplicationsParameters struct { } // ImageSpec defines the desired state of Image diff --git a/apis/instance/v1alpha1/zz_disk_types.go b/apis/instance/v1alpha1/zz_disk_types.go index c6a099f..555b6a3 100755 --- a/apis/instance/v1alpha1/zz_disk_types.go +++ b/apis/instance/v1alpha1/zz_disk_types.go @@ -90,6 +90,10 @@ type DiskObservation_2 struct { // When this disk was created. Created *string `json:"created,omitempty" tf:"created,omitempty"` + // The disk encryption policy for this disk's parent instance. (enabled, disabled) + // The disk encryption policy for this disk's parent Linode. NOTE: Disk encryption may not currently be available to all users. + DiskEncryption *string `json:"diskEncryption,omitempty" tf:"disk_encryption,omitempty"` + // The filesystem of this disk. (raw, swap, ext3, ext4, initrd) // The filesystem of this disk. Filesystem *string `json:"filesystem,omitempty" tf:"filesystem,omitempty"` diff --git a/apis/instance/v1alpha1/zz_generated.deepcopy.go b/apis/instance/v1alpha1/zz_generated.deepcopy.go index e2496f8..0bd212e 100644 --- a/apis/instance/v1alpha1/zz_generated.deepcopy.go +++ b/apis/instance/v1alpha1/zz_generated.deepcopy.go @@ -2813,6 +2813,11 @@ func (in *DiskObservation_2) DeepCopyInto(out *DiskObservation_2) { *out = new(string) **out = **in } + if in.DiskEncryption != nil { + in, out := &in.DiskEncryption, &out.DiskEncryption + *out = new(string) + **out = **in + } if in.Filesystem != nil { in, out := &in.Filesystem, &out.Filesystem *out = new(string) @@ -3648,6 +3653,11 @@ func (in *InstanceInitParameters) DeepCopyInto(out *InstanceInitParameters) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.DiskEncryption != nil { + in, out := &in.DiskEncryption, &out.DiskEncryption + *out = new(string) + **out = **in + } if in.FirewallID != nil { in, out := &in.FirewallID, &out.FirewallID *out = new(float64) @@ -4093,6 +4103,11 @@ func (in *InstanceObservation) DeepCopyInto(out *InstanceObservation) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.DiskEncryption != nil { + in, out := &in.DiskEncryption, &out.DiskEncryption + *out = new(string) + **out = **in + } if in.FirewallID != nil { in, out := &in.FirewallID, &out.FirewallID *out = new(float64) @@ -4156,6 +4171,11 @@ func (in *InstanceObservation) DeepCopyInto(out *InstanceObservation) { *out = new(string) **out = **in } + if in.LkeClusterID != nil { + in, out := &in.LkeClusterID, &out.LkeClusterID + *out = new(float64) + **out = **in + } if in.Metadata != nil { in, out := &in.Metadata, &out.Metadata *out = make([]MetadataObservation, len(*in)) @@ -4332,6 +4352,11 @@ func (in *InstanceParameters) DeepCopyInto(out *InstanceParameters) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.DiskEncryption != nil { + in, out := &in.DiskEncryption, &out.DiskEncryption + *out = new(string) + **out = **in + } if in.FirewallID != nil { in, out := &in.FirewallID, &out.FirewallID *out = new(float64) diff --git a/apis/instance/v1alpha1/zz_instance_types.go b/apis/instance/v1alpha1/zz_instance_types.go index f3f62f3..62cd373 100755 --- a/apis/instance/v1alpha1/zz_instance_types.go +++ b/apis/instance/v1alpha1/zz_instance_types.go @@ -602,6 +602,10 @@ type InstanceInitParameters struct { // The amount of storage space, in GB. this Linode has access to. A typical Linode will divide this space between a primary disk with an image deployed to it, and a swap disk, usually 512 MB. This is the default configuration created when deploying a Linode with an image through POST /linode/instances. Disk []DiskInitParameters `json:"disk,omitempty" tf:"disk,omitempty"` + // The disk encryption policy for this instance. (enabled, disabled; default enabled in supported regions) + // The disk encryption policy for this Instance. NOTE: Disk encryption may not currently be available to all users. + DiskEncryption *string `json:"diskEncryption,omitempty" tf:"disk_encryption,omitempty"` + // The ID of the Firewall to attach to the instance upon creation. Changing // The ID of the firewall applied to the Linode instance during creation. FirewallID *float64 `json:"firewallId,omitempty" tf:"firewall_id,omitempty"` @@ -840,6 +844,10 @@ type InstanceObservation struct { // The amount of storage space, in GB. this Linode has access to. A typical Linode will divide this space between a primary disk with an image deployed to it, and a swap disk, usually 512 MB. This is the default configuration created when deploying a Linode with an image through POST /linode/instances. Disk []DiskObservation `json:"disk,omitempty" tf:"disk,omitempty"` + // The disk encryption policy for this instance. (enabled, disabled; default enabled in supported regions) + // The disk encryption policy for this Instance. NOTE: Disk encryption may not currently be available to all users. + DiskEncryption *string `json:"diskEncryption,omitempty" tf:"disk_encryption,omitempty"` + // The ID of the Firewall to attach to the instance upon creation. Changing // The ID of the firewall applied to the Linode instance during creation. FirewallID *float64 `json:"firewallId,omitempty" tf:"firewall_id,omitempty"` @@ -883,6 +891,10 @@ type InstanceObservation struct { // The Linode's label is for display purposes only. If no label is provided for a Linode, a default will be assigned Label *string `json:"label,omitempty" tf:"label,omitempty"` + // If applicable, the ID of the LKE cluster this instance is a part of. + // If applicable, the ID of the LKE cluster this Instance is a node of. + LkeClusterID *float64 `json:"lkeClusterId,omitempty" tf:"lke_cluster_id,omitempty"` + // Various fields related to the Linode Metadata service. Metadata []MetadataObservation `json:"metadata,omitempty" tf:"metadata,omitempty"` @@ -992,6 +1004,11 @@ type InstanceParameters struct { // +kubebuilder:validation:Optional Disk []DiskParameters `json:"disk,omitempty" tf:"disk,omitempty"` + // The disk encryption policy for this instance. (enabled, disabled; default enabled in supported regions) + // The disk encryption policy for this Instance. NOTE: Disk encryption may not currently be available to all users. + // +kubebuilder:validation:Optional + DiskEncryption *string `json:"diskEncryption,omitempty" tf:"disk_encryption,omitempty"` + // The ID of the Firewall to attach to the instance upon creation. Changing // The ID of the firewall applied to the Linode instance during creation. // +kubebuilder:validation:Optional diff --git a/apis/lke/v1alpha1/zz_cluster_types.go b/apis/lke/v1alpha1/zz_cluster_types.go index e01fd16..e0e32f6 100755 --- a/apis/lke/v1alpha1/zz_cluster_types.go +++ b/apis/lke/v1alpha1/zz_cluster_types.go @@ -298,6 +298,11 @@ type PoolInitParameters struct { // The number of nodes in the Node Pool. Count *float64 `json:"count,omitempty" tf:"count,omitempty"` + // An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only. + // A set of tags applied to this node pool. + // +listType=set + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // A Linode Type for all of the nodes in the Node Pool. See all node types here. // A Linode Type for all of the nodes in the Node Pool. Type *string `json:"type,omitempty" tf:"type,omitempty"` @@ -312,6 +317,10 @@ type PoolObservation struct { // The number of nodes in the Node Pool. Count *float64 `json:"count,omitempty" tf:"count,omitempty"` + // The disk encryption policy for nodes in this pool. + // The disk encryption policy for the nodes in this pool. NOTE: Disk encryption may not currently be available to all users. + DiskEncryption *string `json:"diskEncryption,omitempty" tf:"disk_encryption,omitempty"` + // The ID of the cluster. // The ID of the Node Pool. ID *float64 `json:"id,omitempty" tf:"id,omitempty"` @@ -319,6 +328,11 @@ type PoolObservation struct { // The nodes in the node pool. Nodes []NodesObservation `json:"nodes,omitempty" tf:"nodes,omitempty"` + // An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only. + // A set of tags applied to this node pool. + // +listType=set + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // A Linode Type for all of the nodes in the Node Pool. See all node types here. // A Linode Type for all of the nodes in the Node Pool. Type *string `json:"type,omitempty" tf:"type,omitempty"` @@ -335,6 +349,12 @@ type PoolParameters struct { // +kubebuilder:validation:Optional Count *float64 `json:"count,omitempty" tf:"count,omitempty"` + // An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only. + // A set of tags applied to this node pool. + // +kubebuilder:validation:Optional + // +listType=set + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // A Linode Type for all of the nodes in the Node Pool. See all node types here. // A Linode Type for all of the nodes in the Node Pool. // +kubebuilder:validation:Optional diff --git a/apis/lke/v1alpha1/zz_generated.deepcopy.go b/apis/lke/v1alpha1/zz_generated.deepcopy.go index 7b5c19b..a272eb8 100644 --- a/apis/lke/v1alpha1/zz_generated.deepcopy.go +++ b/apis/lke/v1alpha1/zz_generated.deepcopy.go @@ -806,6 +806,22 @@ func (in *NodePoolInitParameters) DeepCopyInto(out *NodePoolInitParameters) { *out = new(v1.Selector) (*in).DeepCopyInto(*out) } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } if in.NodeCount != nil { in, out := &in.NodeCount, &out.NodeCount *out = new(float64) @@ -822,6 +838,13 @@ func (in *NodePoolInitParameters) DeepCopyInto(out *NodePoolInitParameters) { } } } + if in.Taint != nil { + in, out := &in.Taint, &out.Taint + *out = make([]TaintInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.Type != nil { in, out := &in.Type, &out.Type *out = new(string) @@ -946,11 +969,32 @@ func (in *NodePoolObservation) DeepCopyInto(out *NodePoolObservation) { *out = new(float64) **out = **in } + if in.DiskEncryption != nil { + in, out := &in.DiskEncryption, &out.DiskEncryption + *out = new(string) + **out = **in + } if in.ID != nil { in, out := &in.ID, &out.ID *out = new(string) **out = **in } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } if in.NodeCount != nil { in, out := &in.NodeCount, &out.NodeCount *out = new(float64) @@ -974,6 +1018,13 @@ func (in *NodePoolObservation) DeepCopyInto(out *NodePoolObservation) { } } } + if in.Taint != nil { + in, out := &in.Taint, &out.Taint + *out = make([]TaintObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.Type != nil { in, out := &in.Type, &out.Type *out = new(string) @@ -1016,6 +1067,22 @@ func (in *NodePoolParameters) DeepCopyInto(out *NodePoolParameters) { *out = new(v1.Selector) (*in).DeepCopyInto(*out) } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } if in.NodeCount != nil { in, out := &in.NodeCount, &out.NodeCount *out = new(float64) @@ -1032,6 +1099,13 @@ func (in *NodePoolParameters) DeepCopyInto(out *NodePoolParameters) { } } } + if in.Taint != nil { + in, out := &in.Taint, &out.Taint + *out = make([]TaintParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.Type != nil { in, out := &in.Type, &out.Type *out = new(string) @@ -1159,6 +1233,17 @@ func (in *PoolInitParameters) DeepCopyInto(out *PoolInitParameters) { *out = new(float64) **out = **in } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } if in.Type != nil { in, out := &in.Type, &out.Type *out = new(string) @@ -1191,6 +1276,11 @@ func (in *PoolObservation) DeepCopyInto(out *PoolObservation) { *out = new(float64) **out = **in } + if in.DiskEncryption != nil { + in, out := &in.DiskEncryption, &out.DiskEncryption + *out = new(string) + **out = **in + } if in.ID != nil { in, out := &in.ID, &out.ID *out = new(float64) @@ -1203,6 +1293,17 @@ func (in *PoolObservation) DeepCopyInto(out *PoolObservation) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } if in.Type != nil { in, out := &in.Type, &out.Type *out = new(string) @@ -1235,6 +1336,17 @@ func (in *PoolParameters) DeepCopyInto(out *PoolParameters) { *out = new(float64) **out = **in } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } if in.Type != nil { in, out := &in.Type, &out.Type *out = new(string) @@ -1251,3 +1363,93 @@ func (in *PoolParameters) DeepCopy() *PoolParameters { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TaintInitParameters) DeepCopyInto(out *TaintInitParameters) { + *out = *in + if in.Effect != nil { + in, out := &in.Effect, &out.Effect + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaintInitParameters. +func (in *TaintInitParameters) DeepCopy() *TaintInitParameters { + if in == nil { + return nil + } + out := new(TaintInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TaintObservation) DeepCopyInto(out *TaintObservation) { + *out = *in + if in.Effect != nil { + in, out := &in.Effect, &out.Effect + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaintObservation. +func (in *TaintObservation) DeepCopy() *TaintObservation { + if in == nil { + return nil + } + out := new(TaintObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TaintParameters) DeepCopyInto(out *TaintParameters) { + *out = *in + if in.Effect != nil { + in, out := &in.Effect, &out.Effect + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaintParameters. +func (in *TaintParameters) DeepCopy() *TaintParameters { + if in == nil { + return nil + } + out := new(TaintParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/lke/v1alpha1/zz_nodepool_types.go b/apis/lke/v1alpha1/zz_nodepool_types.go index 5adbcbc..4ec36dd 100755 --- a/apis/lke/v1alpha1/zz_nodepool_types.go +++ b/apis/lke/v1alpha1/zz_nodepool_types.go @@ -58,6 +58,11 @@ type NodePoolInitParameters struct { // +kubebuilder:validation:Optional ClusterIDSelector *v1.Selector `json:"clusterIdSelector,omitempty" tf:"-"` + // A map attribute containing key-value pairs to be added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. To learn more, review Add Labels and Taints to your LKE Node Pools. + // Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. + // +mapType=granular + Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"` + // The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum. // The number of nodes in the Node Pool. NodeCount *float64 `json:"nodeCount,omitempty" tf:"node_count,omitempty"` @@ -67,6 +72,9 @@ type NodePoolInitParameters struct { // +listType=set Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods. + Taint []TaintInitParameters `json:"taint,omitempty" tf:"taint,omitempty"` + // A Linode Type for all nodes in the Node Pool. See all node types here. // The type of node pool. Type *string `json:"type,omitempty" tf:"type,omitempty"` @@ -97,9 +105,18 @@ type NodePoolObservation struct { // The ID of the cluster to associate this node pool with. ClusterID *float64 `json:"clusterId,omitempty" tf:"cluster_id,omitempty"` + // The disk encryption policy for nodes in this pool. + // The disk encryption policy for nodes in this pool. NOTE: Disk encryption may not currently be available to all users. + DiskEncryption *string `json:"diskEncryption,omitempty" tf:"disk_encryption,omitempty"` + // The ID of the Node Pool within LKE Cluster. ID *string `json:"id,omitempty" tf:"id,omitempty"` + // A map attribute containing key-value pairs to be added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. To learn more, review Add Labels and Taints to your LKE Node Pools. + // Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. + // +mapType=granular + Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"` + // The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum. // The number of nodes in the Node Pool. NodeCount *float64 `json:"nodeCount,omitempty" tf:"node_count,omitempty"` @@ -112,6 +129,9 @@ type NodePoolObservation struct { // +listType=set Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods. + Taint []TaintObservation `json:"taint,omitempty" tf:"taint,omitempty"` + // A Linode Type for all nodes in the Node Pool. See all node types here. // The type of node pool. Type *string `json:"type,omitempty" tf:"type,omitempty"` @@ -136,6 +156,12 @@ type NodePoolParameters struct { // +kubebuilder:validation:Optional ClusterIDSelector *v1.Selector `json:"clusterIdSelector,omitempty" tf:"-"` + // A map attribute containing key-value pairs to be added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. To learn more, review Add Labels and Taints to your LKE Node Pools. + // Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. + // +kubebuilder:validation:Optional + // +mapType=granular + Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"` + // The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum. // The number of nodes in the Node Pool. // +kubebuilder:validation:Optional @@ -147,12 +173,64 @@ type NodePoolParameters struct { // +listType=set Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods. + // +kubebuilder:validation:Optional + Taint []TaintParameters `json:"taint,omitempty" tf:"taint,omitempty"` + // A Linode Type for all nodes in the Node Pool. See all node types here. // The type of node pool. // +kubebuilder:validation:Optional Type *string `json:"type,omitempty" tf:"type,omitempty"` } +type TaintInitParameters struct { + + // The Kubernetes taint effect. Accepted values are NoSchedule, PreferNoSchedule, and NoExecute. For the descriptions of these values, see Kubernetes Taints and Tolerations. + // The Kubernetes taint effect. + Effect *string `json:"effect,omitempty" tf:"effect,omitempty"` + + // The Kubernetes taint key. + // The Kubernetes taint key. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // The Kubernetes taint value. + // The Kubernetes taint value. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type TaintObservation struct { + + // The Kubernetes taint effect. Accepted values are NoSchedule, PreferNoSchedule, and NoExecute. For the descriptions of these values, see Kubernetes Taints and Tolerations. + // The Kubernetes taint effect. + Effect *string `json:"effect,omitempty" tf:"effect,omitempty"` + + // The Kubernetes taint key. + // The Kubernetes taint key. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // The Kubernetes taint value. + // The Kubernetes taint value. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type TaintParameters struct { + + // The Kubernetes taint effect. Accepted values are NoSchedule, PreferNoSchedule, and NoExecute. For the descriptions of these values, see Kubernetes Taints and Tolerations. + // The Kubernetes taint effect. + // +kubebuilder:validation:Optional + Effect *string `json:"effect" tf:"effect,omitempty"` + + // The Kubernetes taint key. + // The Kubernetes taint key. + // +kubebuilder:validation:Optional + Key *string `json:"key" tf:"key,omitempty"` + + // The Kubernetes taint value. + // The Kubernetes taint value. + // +kubebuilder:validation:Optional + Value *string `json:"value" tf:"value,omitempty"` +} + // NodePoolSpec defines the desired state of NodePool type NodePoolSpec struct { v1.ResourceSpec `json:",inline"` diff --git a/apis/nodebalancer/v1alpha1/zz_generated.deepcopy.go b/apis/nodebalancer/v1alpha1/zz_generated.deepcopy.go index 9d5924e..4521a25 100644 --- a/apis/nodebalancer/v1alpha1/zz_generated.deepcopy.go +++ b/apis/nodebalancer/v1alpha1/zz_generated.deepcopy.go @@ -552,6 +552,11 @@ func (in *InboundObservation) DeepCopyInto(out *InboundObservation) { *out = new(string) **out = **in } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } if in.IPv4 != nil { in, out := &in.IPv4, &out.IPv4 *out = make([]*string, len(*in)) @@ -1249,6 +1254,11 @@ func (in *OutboundObservation) DeepCopyInto(out *OutboundObservation) { *out = new(string) **out = **in } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } if in.IPv4 != nil { in, out := &in.IPv4, &out.IPv4 *out = make([]*string, len(*in)) diff --git a/apis/nodebalancer/v1alpha1/zz_nodebalancer_types.go b/apis/nodebalancer/v1alpha1/zz_nodebalancer_types.go index aec14ce..d8c9a40 100755 --- a/apis/nodebalancer/v1alpha1/zz_nodebalancer_types.go +++ b/apis/nodebalancer/v1alpha1/zz_nodebalancer_types.go @@ -59,6 +59,8 @@ type InboundObservation struct { // Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. Action *string `json:"action,omitempty" tf:"action,omitempty"` + Description *string `json:"description,omitempty" tf:"description,omitempty"` + // The Public IPv4 Address of this NodeBalancer IPv4 []*string `json:"ipv4,omitempty" tf:"ipv4,omitempty"` @@ -192,6 +194,8 @@ type OutboundObservation struct { // Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. Action *string `json:"action,omitempty" tf:"action,omitempty"` + Description *string `json:"description,omitempty" tf:"description,omitempty"` + // The Public IPv4 Address of this NodeBalancer IPv4 []*string `json:"ipv4,omitempty" tf:"ipv4,omitempty"` diff --git a/config/externalname.go b/config/externalname.go index a533aa1..4237e72 100644 --- a/config/externalname.go +++ b/config/externalname.go @@ -31,6 +31,7 @@ var terraformPluginFrameworkExternalNameConfigs = map[string]config.ExternalName "linode_lke_node_pool": config.IdentifierFromProvider, "linode_image": config.IdentifierFromProvider, "linode_nodebalancer_config": config.IdentifierFromProvider, + "linode_firewall": config.IdentifierFromProvider, "linode_placement_group": config.IdentifierFromProvider, "linode_placement_group_assignment": config.IdentifierFromProvider, } @@ -45,7 +46,6 @@ var terraformSDKIncludeList = map[string]config.ExternalName{ "linode_database_postgresql": config.IdentifierFromProvider, "linode_domain": config.IdentifierFromProvider, "linode_domain_record": config.IdentifierFromProvider, - "linode_firewall": config.IdentifierFromProvider, "linode_instance": config.IdentifierFromProvider, "linode_instance_config": config.IdentifierFromProvider, "linode_lke_cluster": config.IdentifierFromProvider, diff --git a/config/provider-metadata.yaml b/config/provider-metadata.yaml index 748a178..4fb6ebc 100644 --- a/config/provider-metadata.yaml +++ b/config/provider-metadata.yaml @@ -388,7 +388,11 @@ resources: "description": "Image taken from foo", "disk_id": "${linode_instance.foo.disk.0.id}", "label": "foo-sda-image", - "linode_id": "${linode_instance.foo.id}" + "linode_id": "${linode_instance.foo.id}", + "tags": [ + "image-tag", + "test" + ] } references: disk_id: linode_instance.foo.disk.0.id @@ -414,7 +418,29 @@ resources: "file_hash": "${filemd5(\"path/to/image.img.gz\")}", "file_path": "path/to/image.img.gz", "label": "foobar-image", - "region": "us-southeast" + "region": "us-southeast", + "tags": [ + "image-tag", + "test" + ] + } + - name: foobar + manifest: |- + { + "description": "An image uploaded from Terraform!", + "file_hash": "${filemd5(\"path/to/image.img.gz\")}", + "file_path": "path/to/image.img.gz", + "label": "foobar-image", + "region": "us-southeast", + "replica_regions": [ + "us-southeast", + "us-east", + "eu-west" + ], + "tags": [ + "image-tag", + "test" + ] } argumentDocs: created: '- When this Image was created.' @@ -430,10 +456,16 @@ resources: label: '- (Required) A short description of the Image. Labels cannot contain special characters.' linode_id: '- (Required) The ID of the Linode that this Image will be created from.' region: '- (Required) The region of the image. See all regions here.' + replica_regions: '- (Optional) A list of regions that customer wants to replicate this image in. At least one valid region is required and only core regions allowed. Existing images in the regions not passed will be removed. Note: Image replication may not be available to all users. See Replicate an Image here for more details.' + replications: '- A list of image replications region and corresponding status.' size: '- The minimum size this Image needs to deploy. Size is in MB.' - timeouts.create: '- (Defaults to 20 mins) Used when creating the instance image (until the instance is available)' + status: '- The status of an image replica.' + tags: '- (Optional) A list of customized tags.' + timeouts.create: '- (Defaults to 30 mins) Used when creating the instance image (until the instance is available)' + total_size: '- The total size of the image in all available regions.' type: '- How the Image was created. ''Manual'' Images can be created at any time. ''Automatic'' images are created automatically from a deleted Linode.' vendor: '- The upstream distribution vendor. Nil for private Images.' + wait_for_replications: '- (Optional) Whether to wait for all image replications become available. Default to false.' importStatements: [] linode_instance: subCategory: "" @@ -574,6 +606,7 @@ resources: devices.run_level: '- (Optional) - Defines the state of your Linode after booting. Defaults to "default".' devices.sda: '... sdh - (Optional) The SDA-SDH slots, represent the Linux block device nodes for the first 8 disks attached to the Linode. Each device must be suplied sequentially. The device can be either a Disk or a Volume identified by disk_label or volume_id. Only one disk identifier is permitted per slot. Devices mapped from sde through sdh are unavailable in "fullvirt" virt_mode.' devices.virt_mode: '- (Optional) - Controls the virtualization mode. Defaults to "paravirt".' + disk_encryption: '- (Optional) The disk encryption policy for this instance. (enabled, disabled; default enabled in supported regions)' distro: '- (Optional) Controls the behavior of the Linode Config''s Distribution Helper setting.' enabled: '- If this Linode has the Backup service enabled.' filesystem: '- (Optional) The Disk filesystem can be one of: "raw", "swap", "ext3", "ext4", or "initrd" which has a max size of 32mb and can be used in the config initrd (not currently supported in this Terraform Provider).' @@ -591,6 +624,7 @@ resources: ipv4.vpc: '- (Optional) The IP from the VPC subnet to use for this interface. A random address will be assigned if this is not specified in a VPC interface.' ipv6: '- This Linode''s IPv6 SLAAC addresses. This address is specific to a Linode, and may not be shared. The prefix (/64) is included in this attribute.' label: '- (Optional) The Linode''s label is for display purposes only. If no label is provided for a Linode, a default will be assigned.' + lke_cluster_id: '- If applicable, the ID of the LKE cluster this instance is a part of.' metadata.0.user_data: '- (Optional) The base64-encoded user-defined data exposed to this instance through the Linode Metadata service. Refer to the base64encode(...) function for information on encoding content for this field.' migration_type: '- (Optional) The type of migration to use when updating the type or region of a Linode. (cold, warm; default cold)' modules_dep: '- (Optional) Creates a modules dependency file for the Kernel you run.' @@ -847,6 +881,7 @@ resources: authorized_keys: '- (Optional) A list of public SSH keys that will be automatically appended to the root user’s ~/.ssh/authorized_keys file when deploying from an Image. (Requires image)' authorized_users: '- (Optional) A list of usernames. If the usernames have associated SSH keys, the keys will be appended to the root user''s ~/.ssh/authorized_keys file. (Requires image)' created: '- When this disk was created.' + disk_encryption: '- The disk encryption policy for this disk''s parent instance. (enabled, disabled)' filesystem: '- (Optional) The filesystem of this disk. (raw, swap, ext3, ext4, initrd)' image: '- (Optional) An Image ID to deploy the Linode Disk from.' label: '- (Required) The Disk''s label for display purposes only.' @@ -1160,6 +1195,7 @@ resources: autoscaler.min: '- (Required) The minimum number of nodes to autoscale to.' control_plane.high_availability: '- (Optional) Defines whether High Availability is enabled for the cluster Control Plane. This is an irreversible change.' dashboard_url: '- The Kubernetes Dashboard access URL for this cluster.' + disk_encryption: '- The disk encryption policy for nodes in this pool.' external_pool_tags: '- (Optional) A set of node pool tags to ignore when planning and applying this cluster. This prevents externally managed node pools from being deleted or unintentionally updated on subsequent applies. See Externally Managed Node Pools for more details.' id: '- The ID of the cluster.' instance_id: '- The ID of the underlying Linode instance.' @@ -1218,6 +1254,9 @@ resources: ], "k8s_version": "1.28", "label": "my-cluster", + "labels": { + "key": "value" + }, "pool": [ { "count": 1, @@ -1230,11 +1269,16 @@ resources: autoscaler.max: '- (Required) The maximum number of nodes to autoscale to.' autoscaler.min: '- (Required) The minimum number of nodes to autoscale to.' cluster_id: '- ID of the LKE Cluster where to create the current Node Pool.' + disk_encryption: '- The disk encryption policy for nodes in this pool.' id: '- The ID of the Node Pool within LKE Cluster.' instance_id: '- The ID of the underlying Linode instance.' + labels: '- (Optional) A map attribute containing key-value pairs to be added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. To learn more, review Add Labels and Taints to your LKE Node Pools.' node_count: '- (Required; Optional with autoscaler) The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum.' status: '- The status of the node. (ready, not_ready)' tags: '- (Optional) An array of tags applied to the Node Pool. Tags can be used to flag node pools as externally managed, see Externally Managed Node Pools for more details.' + taint.effect: '- (Required) The Kubernetes taint effect. Accepted values are NoSchedule, PreferNoSchedule, and NoExecute. For the descriptions of these values, see Kubernetes Taints and Tolerations.' + taint.key: '- (Required) The Kubernetes taint key.' + taint.value: '- (Required) The Kubernetes taint value.' type: '- (Required) A Linode Type for all nodes in the Node Pool. See all node types here.' importStatements: [] linode_nodebalancer: diff --git a/config/schema.json b/config/schema.json index 74febe4..c683fb2 100644 --- a/config/schema.json +++ b/config/schema.json @@ -1 +1 @@ -{"format_version":"1.0","provider_schemas":{"registry.terraform.io/linode/linode":{"provider":{"version":0,"block":{"attributes":{"api_version":{"type":"string","description":"The version of Linode API.","description_kind":"plain","optional":true},"config_path":{"type":"string","description":"The path to the Linode config file to use. (default `~/.config/linode`)","description_kind":"plain","optional":true},"config_profile":{"type":"string","description":"The Linode config profile to use. (default `default`)","description_kind":"plain","optional":true},"disable_internal_cache":{"type":"bool","description":"Disable the internal caching system that backs certain Linode API requests.","description_kind":"plain","optional":true},"event_poll_ms":{"type":"number","description":"The rate in milliseconds to poll for events.","description_kind":"plain","optional":true},"lke_event_poll_ms":{"type":"number","description":"The rate in milliseconds to poll for LKE events.","description_kind":"plain","optional":true},"lke_node_ready_poll_ms":{"type":"number","description":"The rate in milliseconds to poll for an LKE node to be ready.","description_kind":"plain","optional":true},"max_retry_delay_ms":{"type":"number","description":"Maximum delay in milliseconds before retrying a request.","description_kind":"plain","optional":true},"min_retry_delay_ms":{"type":"number","description":"Minimum delay in milliseconds before retrying a request.","description_kind":"plain","optional":true},"obj_access_key":{"type":"string","description":"The access key to be used in linode_object_storage_bucket and linode_object_storage_object.","description_kind":"plain","optional":true},"obj_bucket_force_delete":{"type":"bool","description":"If true, when deleting a linode_object_storage_bucket any objects and versions will be force deleted.","description_kind":"plain","optional":true},"obj_secret_key":{"type":"string","description":"The secret key to be used in linode_object_storage_bucket and linode_object_storage_object.","description_kind":"plain","optional":true,"sensitive":true},"obj_use_temp_keys":{"type":"bool","description":"If true, temporary object keys will be created implicitly at apply-time for the linode_object_storage_object and linode_object_sorage_bucket resource.","description_kind":"plain","optional":true},"skip_implicit_reboots":{"type":"bool","description":"If true, Linode Instances will not be rebooted on config and interface changes.","description_kind":"plain","optional":true},"skip_instance_delete_poll":{"type":"bool","description":"Skip waiting for a linode_instance resource to finish deleting.","description_kind":"plain","optional":true},"skip_instance_ready_poll":{"type":"bool","description":"Skip waiting for a linode_instance resource to be running.","description_kind":"plain","optional":true},"token":{"type":"string","description":"The token that allows you access to your Linode account","description_kind":"plain","optional":true},"ua_prefix":{"type":"string","description":"An HTTP User-Agent Prefix to prepend in API requests.","description_kind":"plain","optional":true},"url":{"type":"string","description":"The HTTP(S) API address of the Linode API to use.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"resource_schemas":{"linode_account_settings":{"version":0,"block":{"attributes":{"backups_enabled":{"type":"bool","description":"Account-wide backups default.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"The email of the current account.","description_kind":"plain","computed":true},"longview_subscription":{"type":"string","description":"The Longview Pro tier you are currently subscribed to.","description_kind":"plain","optional":true,"computed":true},"managed":{"type":"bool","description":"Enables monitoring for connectivity, response, and total request time.","description_kind":"plain","computed":true},"network_helper":{"type":"bool","description":"Enables network helper across all users by default for new Linodes and Linode Configs.","description_kind":"plain","optional":true,"computed":true},"object_storage":{"type":"string","description":"A string describing the status of this account's Object Storage service enrollment.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_database_access_controls":{"version":0,"block":{"attributes":{"allow_list":{"type":["set","string"],"description":"A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format.","description_kind":"plain","required":true},"database_id":{"type":"number","description":"The ID of the database to manage the allow list for.","description_kind":"plain","required":true},"database_type":{"type":"string","description":"The type of the database to manage the allow list for.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"linode_database_mysql":{"version":0,"block":{"attributes":{"allow_list":{"type":["set","string"],"description":"A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format.","description_kind":"plain","optional":true,"computed":true},"ca_cert":{"type":"string","description":"The base64-encoded SSL CA certificate for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"cluster_size":{"type":"number","description":"The number of Linode Instance nodes deployed to the Managed Database. Defaults to 1.","description_kind":"plain","optional":true},"created":{"type":"string","description":"When this Managed Database was created.","description_kind":"plain","computed":true},"encrypted":{"type":"bool","description":"Whether the Managed Databases is encrypted.","description_kind":"plain","optional":true},"engine":{"type":"string","description":"The Managed Database engine.","description_kind":"plain","computed":true},"engine_id":{"type":"string","description":"The Managed Database engine in engine/version format. (e.g. mysql/8.0.30)","description_kind":"plain","required":true},"host_primary":{"type":"string","description":"The primary host for the Managed Database.","description_kind":"plain","computed":true},"host_secondary":{"type":"string","description":"The secondary host for the Managed Database.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description":"A unique, user-defined string referring to the Managed Database.","description_kind":"plain","required":true},"region":{"type":"string","description":"The region to use for the Managed Database.","description_kind":"plain","required":true},"replication_type":{"type":"string","description":"The replication method used for the Managed Database.","description_kind":"plain","optional":true},"root_password":{"type":"string","description":"The randomly-generated root password for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"root_username":{"type":"string","description":"The root username for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"ssl_connection":{"type":"bool","description":"Whether to require SSL credentials to establish a connection to the Managed Database.","description_kind":"plain","optional":true},"status":{"type":"string","description":"The operating status of the Managed Database.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The Linode Instance type used by the Managed Database for its nodes.","description_kind":"plain","required":true},"updated":{"type":"string","description":"When this Managed Database was last updated.","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Managed Database engine version.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"updates":{"nesting_mode":"list","block":{"attributes":{"day_of_week":{"type":"string","description":"The day to perform maintenance.","description_kind":"plain","required":true},"duration":{"type":"number","description":"The maximum maintenance window time in hours.","description_kind":"plain","required":true},"frequency":{"type":"string","description":"Whether maintenance occurs on a weekly or monthly basis.","description_kind":"plain","required":true},"hour_of_day":{"type":"number","description":"The hour to begin maintenance based in UTC time.","description_kind":"plain","required":true},"week_of_month":{"type":"number","description":"The week of the month to perform monthly frequency updates. Required for monthly frequency updates.","description_kind":"plain","optional":true}},"description":"Configuration settings for automated patch update maintenance for the Managed Database.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"linode_database_postgresql":{"version":0,"block":{"attributes":{"allow_list":{"type":["set","string"],"description":"A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format.","description_kind":"plain","optional":true,"computed":true},"ca_cert":{"type":"string","description":"The base64-encoded SSL CA certificate for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"cluster_size":{"type":"number","description":"The number of Linode Instance nodes deployed to the Managed Database. Defaults to 1.","description_kind":"plain","optional":true},"created":{"type":"string","description":"When this Managed Database was created.","description_kind":"plain","computed":true},"encrypted":{"type":"bool","description":"Whether the Managed Databases is encrypted.","description_kind":"plain","optional":true},"engine":{"type":"string","description":"The Managed Database engine.","description_kind":"plain","computed":true},"engine_id":{"type":"string","description":"The Managed Database engine in engine/version format. (e.g. mysql/8.0.30)","description_kind":"plain","required":true},"host_primary":{"type":"string","description":"The primary host for the Managed Database.","description_kind":"plain","computed":true},"host_secondary":{"type":"string","description":"The secondary host for the Managed Database.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description":"A unique, user-defined string referring to the Managed Database.","description_kind":"plain","required":true},"port":{"type":"number","description":"The access port for this Managed Database.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region to use for the Managed Database.","description_kind":"plain","required":true},"replication_commit_type":{"type":"string","description":"The synchronization level of the replicating server.Must be `local` or `off` for the `asynch` replication type. Must be `on`, `remote_write`, or `remote_apply` for the `semi_synch` replication type.","description_kind":"plain","optional":true},"replication_type":{"type":"string","description":"The replication method used for the Managed Database. Must be `none` for a single node cluster. Must be `asynch` or `semi_synch` for a high availability cluster.","description_kind":"plain","optional":true},"root_password":{"type":"string","description":"The randomly-generated root password for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"root_username":{"type":"string","description":"The root username for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"ssl_connection":{"type":"bool","description":"Whether to require SSL credentials to establish a connection to the Managed Database.","description_kind":"plain","optional":true},"status":{"type":"string","description":"The operating status of the Managed Database.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The Linode Instance type used by the Managed Database for its nodes.","description_kind":"plain","required":true},"updated":{"type":"string","description":"When this Managed Database was last updated.","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Managed Database engine version.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"updates":{"nesting_mode":"list","block":{"attributes":{"day_of_week":{"type":"string","description":"The day to perform maintenance.","description_kind":"plain","required":true},"duration":{"type":"number","description":"The maximum maintenance window time in hours.","description_kind":"plain","required":true},"frequency":{"type":"string","description":"Whether maintenance occurs on a weekly or monthly basis.","description_kind":"plain","required":true},"hour_of_day":{"type":"number","description":"The hour to begin maintenance based in UTC time.","description_kind":"plain","required":true},"week_of_month":{"type":"number","description":"The week of the month to perform monthly frequency updates. Required for monthly frequency updates.","description_kind":"plain","optional":true}},"description":"Configuration settings for automated patch update maintenance for the Managed Database.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"linode_domain":{"version":0,"block":{"attributes":{"axfr_ips":{"type":["set","string"],"description":"The list of IPs that may perform a zone transfer for this Domain. This is potentially dangerous, and should be set to an empty list unless you intend to use it.","description_kind":"plain","optional":true},"description":{"type":"string","description":"A description for this Domain. This is for display purposes only.","description_kind":"plain","optional":true},"domain":{"type":"string","description":"The domain this Domain represents. These must be unique in our system; you cannot have two Domains representing the same domain.","description_kind":"plain","required":true},"expire_sec":{"type":"number","description":"The amount of time in seconds that may pass before this Domain is no longer Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","optional":true},"group":{"type":"string","description":"The group this Domain belongs to. This is for display purposes only.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"master_ips":{"type":["set","string"],"description":"The IP addresses representing the master DNS for this Domain.","description_kind":"plain","optional":true},"refresh_sec":{"type":"number","description":"The amount of time in seconds before this Domain should be refreshed. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","optional":true},"retry_sec":{"type":"number","description":"The interval, in seconds, at which a failed refresh should be retried. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","optional":true},"soa_email":{"type":"string","description":"Start of Authority email address. This is required for master Domains.","description_kind":"plain","optional":true},"status":{"type":"string","description":"Used to control whether this Domain is currently being rendered.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","optional":true,"computed":true},"ttl_sec":{"type":"number","description":"'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","optional":true},"type":{"type":"string","description":"If this Domain represents the authoritative source of information for the domain it describes, or if it is a read-only copy of a master (also called a slave).","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_domain_record":{"version":0,"block":{"attributes":{"domain_id":{"type":"number","description":"The ID of the Domain to access.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the subdomain being associated with an IP address. Generated for SRV records.","description_kind":"plain","optional":true,"computed":true},"port":{"type":"number","description":"The port this Record points to.","description_kind":"plain","optional":true},"priority":{"type":"number","description":"The priority of the target host. Lower values are preferred.","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"The protocol this Record's service communicates with. Only valid for SRV records.","description_kind":"plain","optional":true},"record_type":{"type":"string","description":"The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address.","description_kind":"plain","required":true},"service":{"type":"string","description":"The service this Record identified. Only valid for SRV records.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"The tag portion of a CAA record. It is invalid to set this on other record types.","description_kind":"plain","optional":true},"target":{"type":"string","description":"The target for this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the address the named Domain should resolve to.","description_kind":"plain","required":true},"ttl_sec":{"type":"number","description":"'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","optional":true},"weight":{"type":"number","description":"The relative weight of this Record. Higher values are preferred.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"linode_firewall":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"When this firewall was created","description_kind":"plain","computed":true},"devices":{"type":["list",["object",{"entity_id":"number","id":"number","label":"string","type":"string","url":"string"}]],"description":"The devices associated with this firewall.","description_kind":"plain","computed":true},"disabled":{"type":"bool","description":"If true, the Firewall is inactive.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inbound_policy":{"type":"string","description":"The default behavior for inbound traffic. This setting can be overridden by updating the inbound.action property for an individual Firewall Rule.","description_kind":"plain","required":true},"label":{"type":"string","description":"The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.","description_kind":"plain","required":true},"linodes":{"type":["set","number"],"description":"The IDs of Linodes to apply this firewall to.","description_kind":"plain","optional":true,"computed":true},"nodebalancers":{"type":["set","number"],"description":"The IDs of NodeBalancers to apply this firewall to.","description_kind":"plain","optional":true,"computed":true},"outbound_policy":{"type":"string","description":"The default behavior for outbound traffic. This setting can be overridden by updating the outbound.action property for an individual Firewall Rule.","description_kind":"plain","required":true},"status":{"type":"string","description":"The status of the firewall.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","optional":true,"computed":true},"updated":{"type":"string","description":"When this firewall was last updated","description_kind":"plain","computed":true}},"block_types":{"inbound":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule.","description_kind":"plain","required":true},"ipv4":{"type":["list","string"],"description":"A list of CIDR blocks or 0.0.0.0/0 (to allow all) this rule applies to.","description_kind":"plain","optional":true},"ipv6":{"type":["list","string"],"description":"A list of IPv6 addresses or networks this rule applies to.","description_kind":"plain","optional":true},"label":{"type":"string","description":"Used to identify this rule. For display purposes only.","description_kind":"plain","required":true},"ports":{"type":"string","description":"A string representation of ports and/or port ranges (i.e. \"443\" or \"80-90, 91\").","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"The network protocol this rule controls.","description_kind":"plain","required":true}},"description":"A firewall rule that specifies what inbound network traffic is allowed.","description_kind":"plain"}},"outbound":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule.","description_kind":"plain","required":true},"ipv4":{"type":["list","string"],"description":"A list of CIDR blocks or 0.0.0.0/0 (to allow all) this rule applies to.","description_kind":"plain","optional":true},"ipv6":{"type":["list","string"],"description":"A list of IPv6 addresses or networks this rule applies to.","description_kind":"plain","optional":true},"label":{"type":"string","description":"Used to identify this rule. For display purposes only.","description_kind":"plain","required":true},"ports":{"type":"string","description":"A string representation of ports and/or port ranges (i.e. \"443\" or \"80-90, 91\").","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"The network protocol this rule controls.","description_kind":"plain","required":true}},"description":"A firewall rule that specifies what outbound network traffic is allowed.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_firewall_device":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"When this Firewall Device was created.","description_kind":"plain","computed":true},"entity_id":{"type":"number","description":"The ID of the entity to create a Firewall device for.","description_kind":"plain","required":true},"entity_type":{"type":"string","description":"The type of the entity to create a Firewall device for.","description_kind":"plain","optional":true,"computed":true},"firewall_id":{"type":"number","description":"The ID of the Firewall to access.","description_kind":"plain","required":true},"id":{"type":"string","description":"The unique ID that represents the firewall device in the Terraform state.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Firewall Device was updated.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_image":{"version":0,"block":{"attributes":{"capabilities":{"type":["list","string"],"description":"The capabilities of this Image.","description_kind":"plain","computed":true},"cloud_init":{"type":"bool","description":"Whether this image supports cloud-init.","description_kind":"plain","optional":true,"computed":true},"created":{"type":"string","description":"When this Image was created.","description_kind":"plain","computed":true},"created_by":{"type":"string","description":"The name of the User who created this Image.","description_kind":"plain","computed":true},"deprecated":{"type":"bool","description":"Whether or not this Image is deprecated. Will only be True for deprecated public Images.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A detailed description of this Image.","description_kind":"plain","optional":true},"disk_id":{"type":"number","description":"The ID of the Linode Disk that this Image will be created from.","description_kind":"plain","optional":true},"expiry":{"type":"string","description":"Only Images created automatically (from a deleted Linode; type=automatic) will expire.","description_kind":"plain","computed":true},"file_hash":{"type":"string","description":"The MD5 hash of the image file.","description_kind":"plain","optional":true,"computed":true},"file_path":{"type":"string","description":"The name of the file to upload to this image.","description_kind":"plain","optional":true},"id":{"type":"string","description":"The ID of the Linode image.","description_kind":"plain","computed":true},"is_public":{"type":"bool","description":"True if the Image is public.","description_kind":"plain","computed":true},"label":{"type":"string","description":"A short description of the Image. Labels cannot contain special characters.","description_kind":"plain","required":true},"linode_id":{"type":"number","description":"The ID of the Linode that this Image will be created from.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region to upload to.","description_kind":"plain","optional":true},"size":{"type":"number","description":"The minimum size this Image needs to deploy. Size is in MB.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The current status of this Image.","description_kind":"plain","computed":true},"type":{"type":"string","description":"How the Image was created. 'Manual' Images can be created at any time. 'Automatic' images are created automatically from a deleted Linode.","description_kind":"plain","computed":true},"vendor":{"type":"string","description":"The upstream distribution vendor. Nil for private Images.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_instance":{"version":0,"block":{"attributes":{"authorized_keys":{"type":["list","string"],"description":"A list of SSH public keys to deploy for the root user on the newly created Linode. Only accepted if 'image' is provided.","description_kind":"plain","optional":true},"authorized_users":{"type":["list","string"],"description":"A list of Linode usernames. If the usernames have associated SSH keys, the keys will be appended to the `root` user's `~/.ssh/authorized_keys` file automatically. Only accepted if 'image' is provided.","description_kind":"plain","optional":true},"backup_id":{"type":"number","description":"A Backup ID from another Linode's available backups. Your User must have read_write access to that Linode, the Backup must have a status of successful, and the Linode must be deployed to the same region as the Backup. See /linode/instances/{linodeId}/backups for a Linode's available backups. This field and the image field are mutually exclusive.","description_kind":"plain","optional":true},"backups":{"type":["list",["object",{"available":"bool","enabled":"bool","schedule":["list",["object",{"day":"string","window":"string"}]]}]],"description":"Information about this Linode's backups status.","description_kind":"plain","computed":true},"backups_enabled":{"type":"bool","description":"If this field is set to true, the created Linode will automatically be enrolled in the Linode Backup service. This will incur an additional charge. The cost for the Backup service is dependent on the Type of Linode deployed.","description_kind":"plain","optional":true,"computed":true},"boot_config_label":{"type":"string","description":"The Label of the Instance Config that should be used to boot the Linode instance.","description_kind":"plain","optional":true,"computed":true},"booted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"firewall_id":{"type":"number","description":"The ID of the firewall applied to the Linode instance during creation.","description_kind":"plain","optional":true},"group":{"type":"string","description":"The display group of the Linode instance.","description_kind":"plain","deprecated":true,"optional":true},"has_user_data":{"type":"bool","description":"Whether or not this Instance was created with user-data.","description_kind":"plain","computed":true},"host_uuid":{"type":"string","description":"The Linode’s host machine, as a UUID.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image":{"type":"string","description":"An Image ID to deploy the Disk from. Official Linode Images start with linode/, while your Images start with private/. See /images for more information on the Images available for you to use.","description_kind":"plain","optional":true},"ip_address":{"type":"string","description":"This Linode's Public IPv4 Address. If there are multiple public IPv4 addresses on this Instance, an arbitrary address will be used for this field.","description_kind":"plain","computed":true},"ipv4":{"type":["set","string"],"description":"This Linode's IPv4 Addresses. Each Linode is assigned a single public IPv4 address upon creation, and may get a single private IPv4 address if needed. You may need to open a support ticket to get additional IPv4 addresses.","description_kind":"plain","computed":true},"ipv6":{"type":"string","description":"This Linode's IPv6 SLAAC addresses. This address is specific to a Linode, and may not be shared.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The Linode's label is for display purposes only. If no label is provided for a Linode, a default will be assigned","description_kind":"plain","optional":true,"computed":true},"migration_type":{"type":"string","description":"The type of migration to use for resize and migration operations.","description_kind":"plain","optional":true},"placement_group_externally_managed":{"type":"bool","description":"If true, this placement group's assignment is externally managed and will NOT be updated by this resource.","description_kind":"plain","optional":true},"private_ip":{"type":"bool","description":"If true, the created Linode will have private networking enabled, allowing use of the 192.168.128.0/17 network within the Linode's region.","description_kind":"plain","optional":true},"private_ip_address":{"type":"string","description":"This Linode's Private IPv4 Address. The regional private IP address range is 192.168.128/17 address shared by all Linode Instances in a region.","description_kind":"plain","computed":true},"region":{"type":"string","description":"This is the location where the Linode was deployed. This cannot be changed without opening a support ticket.","description_kind":"plain","required":true},"resize_disk":{"type":"bool","description":"If true, changes in Linode type will attempt to upsize or downsize implicitly created disks. This must be false if explicit disks are defined. This is an irreversible action as Linode disks cannot be automatically downsized.","description_kind":"plain","optional":true},"root_pass":{"type":"string","description":"The password that will be initially assigned to the 'root' user account.","description_kind":"plain","optional":true,"sensitive":true},"shared_ipv4":{"type":["set","string"],"description":"A set of IPv4 addresses to share with this Linode.","description_kind":"plain","optional":true,"computed":true},"specs":{"type":["list",["object",{"disk":"number","memory":"number","transfer":"number","vcpus":"number"}]],"description":"Information about the resources available to this Linode.","description_kind":"plain","computed":true},"stackscript_data":{"type":["map","string"],"description":"An object containing responses to any User Defined Fields present in the StackScript being deployed to this Linode. Only accepted if 'stackscript_id' is given. The required values depend on the StackScript being deployed.","description_kind":"plain","optional":true,"sensitive":true},"stackscript_id":{"type":"number","description":"The StackScript to deploy to the newly created Linode. If provided, 'image' must also be provided, and must be an Image that is compatible with this StackScript.","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the instance, indicating the current readiness state.","description_kind":"plain","computed":true},"swap_size":{"type":"number","description":"When deploying from an Image, this field is optional with a Linode API default of 512mb, otherwise it is ignored. This is used to set the swap disk size for the newly-created Linode.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The type of instance to be deployed, determining the price and size.","description_kind":"plain","optional":true},"watchdog_enabled":{"type":"bool","description":"The watchdog, named Lassie, is a Shutdown Watchdog that monitors your Linode and will reboot it if it powers off unexpectedly. It works by issuing a boot job when your Linode powers off without a shutdown job being responsible. To prevent a loop, Lassie will give up if there have been more than 5 boot jobs issued within 15 minutes.","description_kind":"plain","optional":true}},"block_types":{"alerts":{"nesting_mode":"list","block":{"attributes":{"cpu":{"type":"number","description":"The percentage of CPU usage required to trigger an alert. If the average CPU usage over two hours exceeds this value, we'll send you an alert. If this is set to 0, the alert is disabled.","description_kind":"plain","optional":true,"computed":true},"io":{"type":"number","description":"The amount of disk IO operation per second required to trigger an alert. If the average disk IO over two hours exceeds this value, we'll send you an alert. If set to 0, this alert is disabled.","description_kind":"plain","optional":true,"computed":true},"network_in":{"type":"number","description":"The amount of incoming traffic, in Mbit/s, required to trigger an alert. If the average incoming traffic over two hours exceeds this value, we'll send you an alert. If this is set to 0 (zero), the alert is disabled.","description_kind":"plain","optional":true,"computed":true},"network_out":{"type":"number","description":"The amount of outbound traffic, in Mbit/s, required to trigger an alert. If the average outbound traffic over two hours exceeds this value, we'll send you an alert. If this is set to 0 (zero), the alert is disabled.","description_kind":"plain","optional":true,"computed":true},"transfer_quota":{"type":"number","description":"The percentage of network transfer that may be used before an alert is triggered. When this value is exceeded, we'll alert you. If this is set to 0 (zero), the alert is disabled.","description_kind":"plain","optional":true,"computed":true}},"description":"Configuration options for alert triggers on this Linode.","description_kind":"plain"},"max_items":1},"config":{"nesting_mode":"list","block":{"attributes":{"comments":{"type":"string","description":"Optional field for arbitrary User comments on this Config.","description_kind":"plain","optional":true},"id":{"type":"number","description":"The unique ID of this Config.","description_kind":"plain","computed":true},"kernel":{"type":"string","description":"A Kernel ID to boot a Linode with. Default is based on image choice. (examples: linode/latest-64bit, linode/grub2, linode/direct-disk)","description_kind":"plain","optional":true},"label":{"type":"string","description":"The Config's label for display purposes. Also used by `boot_config_label`.","description_kind":"plain","required":true},"memory_limit":{"type":"number","description":"Defaults to the total RAM of the Linode","description_kind":"plain","optional":true},"root_device":{"type":"string","description":"The root device to boot. The corresponding disk must be attached.","description_kind":"plain","optional":true,"computed":true},"run_level":{"type":"string","description":"Defines the state of your Linode after booting. Defaults to default.","description_kind":"plain","optional":true},"virt_mode":{"type":"string","description":"Controls the virtualization mode. Defaults to paravirt.","description_kind":"plain","optional":true}},"block_types":{"devices":{"nesting_mode":"list","block":{"block_types":{"sda":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdb":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdc":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdd":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sde":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdf":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdg":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdh":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1}},"description":"Device sda-sdh can be either a Disk or Volume identified by disk_label or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"helpers":{"nesting_mode":"list","block":{"attributes":{"devtmpfs_automount":{"type":"bool","description":"Populates the /dev directory early during boot without udev. Defaults to false.","description_kind":"plain","optional":true},"distro":{"type":"bool","description":"Controls the behavior of the Linode Config's Distribution Helper setting.","description_kind":"plain","optional":true},"modules_dep":{"type":"bool","description":"Creates a modules dependency file for the Kernel you run.","description_kind":"plain","optional":true},"network":{"type":"bool","description":"Controls the behavior of the Linode Config's Network Helper setting, used to automatically configure additional IP addresses assigned to this instance.","description_kind":"plain","optional":true},"updatedb_disabled":{"type":"bool","description":"Disables updatedb cron job to avoid disk thrashing.","description_kind":"plain","optional":true}},"description":"Helpers enabled when booting to this Linode Config.","description_kind":"plain"},"max_items":1},"interface":{"nesting_mode":"list","block":{"attributes":{"active":{"type":"bool","description":"Whether this interface is currently booted and active.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the interface.","description_kind":"plain","computed":true},"ip_ranges":{"type":["list","string"],"description":"List of VPC IPs or IP ranges inside the VPC subnet.","description_kind":"plain","optional":true},"ipam_address":{"type":"string","description":"This Network Interface's private IP address in Classless Inter-Domain Routing (CIDR) notation.This attribute is only allowed for VLAN interfaces.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The name of the VALN. This attribute is required for VLAN interfaces. This attribute is only allowed for VLAN interfaces.","description_kind":"plain","optional":true},"primary":{"type":"bool","description":"Whether the interface is the primary interface that should have the default route for this Linode.","description_kind":"plain","optional":true},"purpose":{"type":"string","description":"The type of interface.","description_kind":"plain","required":true},"subnet_id":{"type":"number","description":"The ID of the subnet which the VPC interface is connected to.This attribute is required for VPC interfaces.This attribute is only allowed for VPC interfaces.","description_kind":"plain","optional":true},"vpc_id":{"type":"number","description":"The ID of VPC of the subnet which the VPC interface is connected to.","description_kind":"plain","computed":true}},"block_types":{"ipv4":{"nesting_mode":"list","block":{"attributes":{"nat_1_1":{"type":"string","description":"The public IP that will be used for the one-to-one NAT purpose.","description_kind":"plain","optional":true,"computed":true},"vpc":{"type":"string","description":"The IP from the VPC subnet to use for this interface.","description_kind":"plain","optional":true,"computed":true}},"description":"The IPv4 configuration of the VPC interface.This attribute is only allowed for VPC interfaces.","description_kind":"plain"},"max_items":1}},"description":"An array of Network Interfaces for this Linode’s Configuration Profile.","description_kind":"plain"}}},"description":"Configuration profiles define the VM settings and boot behavior of the Linode Instance.","description_kind":"plain","deprecated":true}},"disk":{"nesting_mode":"list","block":{"attributes":{"authorized_keys":{"type":["list","string"],"description":"A list of SSH public keys to deploy for the root user on the newly created Linode. Only accepted if 'image' is provided.","description_kind":"plain","optional":true},"authorized_users":{"type":["list","string"],"description":"A list of Linode usernames. If the usernames have associated SSH keys, the keys will be appended to the `root` user's `~/.ssh/authorized_keys` file automatically. Only accepted if 'image' is provided.","description_kind":"plain","optional":true},"filesystem":{"type":"string","description":"The Disk filesystem can be one of: raw, swap, ext3, ext4, initrd (max 32mb)","description_kind":"plain","optional":true,"computed":true},"id":{"type":"number","description":"The ID of the Disk (for use in Linode Image resources and Linode Instance Config Devices)","description_kind":"plain","computed":true},"image":{"type":"string","description":"An Image ID to deploy the Disk from. Official Linode Images start with linode/, while your Images start with private/.","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description":"The disks label, which acts as an identifier in Terraform.","description_kind":"plain","required":true},"read_only":{"type":"bool","description":"If true, this Disk is read-only.","description_kind":"plain","optional":true,"computed":true},"root_pass":{"type":"string","description":"The password that will be initialially assigned to the 'root' user account.","description_kind":"plain","optional":true,"sensitive":true},"size":{"type":"number","description":"The size of the Disk in MB.","description_kind":"plain","required":true},"stackscript_data":{"type":["map","string"],"description":"An object containing responses to any User Defined Fields present in the StackScript being deployed to this Linode. Only accepted if 'stackscript_id' is given. The required values depend on the StackScript being deployed.","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"stackscript_id":{"type":"number","description":"The StackScript to deploy to the newly created Linode. If provided, 'image' must also be provided, and must be an Image that is compatible with this StackScript.","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain","deprecated":true}},"interface":{"nesting_mode":"list","block":{"attributes":{"active":{"type":"bool","description":"Whether this interface is currently booted and active.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the interface.","description_kind":"plain","computed":true},"ip_ranges":{"type":["list","string"],"description":"List of VPC IPs or IP ranges inside the VPC subnet.","description_kind":"plain","optional":true},"ipam_address":{"type":"string","description":"This Network Interface's private IP address in Classless Inter-Domain Routing (CIDR) notation.This attribute is only allowed for VLAN interfaces.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The name of the VALN. This attribute is required for VLAN interfaces. This attribute is only allowed for VLAN interfaces.","description_kind":"plain","optional":true},"primary":{"type":"bool","description":"Whether the interface is the primary interface that should have the default route for this Linode.","description_kind":"plain","optional":true},"purpose":{"type":"string","description":"The type of interface.","description_kind":"plain","required":true},"subnet_id":{"type":"number","description":"The ID of the subnet which the VPC interface is connected to.This attribute is required for VPC interfaces.This attribute is only allowed for VPC interfaces.","description_kind":"plain","optional":true},"vpc_id":{"type":"number","description":"The ID of VPC of the subnet which the VPC interface is connected to.","description_kind":"plain","computed":true}},"block_types":{"ipv4":{"nesting_mode":"list","block":{"attributes":{"nat_1_1":{"type":"string","description":"The public IP that will be used for the one-to-one NAT purpose.","description_kind":"plain","optional":true,"computed":true},"vpc":{"type":"string","description":"The IP from the VPC subnet to use for this interface.","description_kind":"plain","optional":true,"computed":true}},"description":"The IPv4 configuration of the VPC interface.This attribute is only allowed for VPC interfaces.","description_kind":"plain"},"max_items":1}},"description":"An array of Network Interfaces for this Linode to be created with. If an explicit config or disk is defined, interfaces must be declared in the config block.","description_kind":"plain"}},"metadata":{"nesting_mode":"list","block":{"attributes":{"user_data":{"type":"string","description":"The base64-encoded user-defined data exposed to this instance through the Linode Metadata service. Refer to the base64encode(...) function for information on encoding content for this field.","description_kind":"plain","optional":true}},"description":"Various fields related to the Linode Metadata service.","description_kind":"plain"}},"placement_group":{"nesting_mode":"list","block":{"attributes":{"compliant_only":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"number","description":"The ID of the Placement Group to assign this Linode to.","description_kind":"plain","required":true},"label":{"type":"string","description":"The label of this Placement Group.","description_kind":"plain","computed":true},"placement_group_policy":{"type":"string","description":"Whether compliance is strictly enforced by this Placement Group.","description_kind":"plain","optional":true,"computed":true},"placement_group_type":{"type":"string","description":"The placement group type for this Placement Group.","description_kind":"plain","computed":true}},"description":"Fields related to the Placement Group this instance is assigned to.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_instance_config":{"version":0,"block":{"attributes":{"booted":{"type":"bool","description":"If true, the Linode will be booted to running state. If false, the Linode will be shutdown. If undefined, no action will be taken.","description_kind":"plain","optional":true,"computed":true},"comments":{"type":"string","description":"Optional field for arbitrary User comments on this Config.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kernel":{"type":"string","description":"A Kernel ID to boot a Linode with. Defaults to “linode/latest-64bit”.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The Config's label for display purposes only.","description_kind":"plain","required":true},"linode_id":{"type":"number","description":"The ID of the Linode to create this configuration profile under.","description_kind":"plain","required":true},"memory_limit":{"type":"number","description":"The memory limit of the Linode.","description_kind":"plain","optional":true,"computed":true},"root_device":{"type":"string","description":"The root device to boot. If no value or an invalid value is provided, root device will default to /dev/sda. If the device specified at the root device location is not mounted, the Linode will not boot until a device is mounted.","description_kind":"plain","optional":true},"run_level":{"type":"string","description":"Defines the state of your Linode after booting.","description_kind":"plain","optional":true},"virt_mode":{"type":"string","description":"Controls the virtualization mode.","description_kind":"plain","optional":true}},"block_types":{"device":{"nesting_mode":"set","block":{"attributes":{"device_name":{"type":"string","description":"The Disk ID to map to this disk slot","description_kind":"plain","required":true},"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Blocks for device disks in a Linode's configuration profile.","description_kind":"plain"}},"devices":{"nesting_mode":"list","block":{"block_types":{"sda":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdb":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdc":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdd":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sde":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdf":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdg":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdh":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1}},"description":"A dictionary of device disks to use as a device map in a Linode's configuration profile.","description_kind":"plain","deprecated":true},"max_items":1},"helpers":{"nesting_mode":"list","block":{"attributes":{"devtmpfs_automount":{"type":"bool","description":"Populates the /dev directory early during boot without udev.","description_kind":"plain","optional":true},"distro":{"type":"bool","description":"Helps maintain correct inittab/upstart console device.","description_kind":"plain","optional":true},"modules_dep":{"type":"bool","description":"Creates a modules dependency file for the Kernel you run.","description_kind":"plain","optional":true},"network":{"type":"bool","description":"Automatically configures static networking.","description_kind":"plain","optional":true},"updatedb_disabled":{"type":"bool","description":"Disables updatedb cron job to avoid disk thrashing.","description_kind":"plain","optional":true}},"description":"Helpers enabled when booting to this Linode Config.","description_kind":"plain"}},"interface":{"nesting_mode":"list","block":{"attributes":{"active":{"type":"bool","description":"Whether this interface is currently booted and active.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the interface.","description_kind":"plain","computed":true},"ip_ranges":{"type":["list","string"],"description":"List of VPC IPs or IP ranges inside the VPC subnet.","description_kind":"plain","optional":true},"ipam_address":{"type":"string","description":"This Network Interface's private IP address in Classless Inter-Domain Routing (CIDR) notation.This attribute is only allowed for VLAN interfaces.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The name of the VALN. This attribute is required for VLAN interfaces. This attribute is only allowed for VLAN interfaces.","description_kind":"plain","optional":true},"primary":{"type":"bool","description":"Whether the interface is the primary interface that should have the default route for this Linode.","description_kind":"plain","optional":true},"purpose":{"type":"string","description":"The type of interface.","description_kind":"plain","required":true},"subnet_id":{"type":"number","description":"The ID of the subnet which the VPC interface is connected to.This attribute is required for VPC interfaces.This attribute is only allowed for VPC interfaces.","description_kind":"plain","optional":true},"vpc_id":{"type":"number","description":"The ID of VPC of the subnet which the VPC interface is connected to.","description_kind":"plain","computed":true}},"block_types":{"ipv4":{"nesting_mode":"list","block":{"attributes":{"nat_1_1":{"type":"string","description":"The public IP that will be used for the one-to-one NAT purpose.","description_kind":"plain","optional":true,"computed":true},"vpc":{"type":"string","description":"The IP from the VPC subnet to use for this interface.","description_kind":"plain","optional":true,"computed":true}},"description":"The IPv4 configuration of the VPC interface.This attribute is only allowed for VPC interfaces.","description_kind":"plain"},"max_items":1}},"description":"An array of Network Interfaces to add to this Linode's Configuration Profile.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_instance_disk":{"version":0,"block":{"attributes":{"authorized_keys":{"type":["set","string"],"description":"A list of public SSH keys that will be automatically appended to the root user's ~/.ssh/authorized_keys file when deploying from an Image.","description_kind":"plain","optional":true},"authorized_users":{"type":["set","string"],"description":"A list of usernames. If the usernames have associated SSH keys, the keys will be appended to the root users ~/.ssh/authorized_keys file automatically when deploying from an Image.","description_kind":"plain","optional":true},"created":{"type":"string","description":"When this disk was created.","description_kind":"plain","computed":true},"filesystem":{"type":"string","description":"The filesystem of this disk.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"The ID of the Linode disk.","description_kind":"plain","computed":true},"image":{"type":"string","description":"An Image ID to deploy the Linode Disk from.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The Disk;s label is for display purposes only.","description_kind":"plain","required":true},"linode_id":{"type":"number","description":"The ID of the Linode to assign this disk to.","description_kind":"plain","required":true},"root_pass":{"type":"string","description":"This sets the root user's password on a newly-created Linode Disk when deploying from an Image.","description_kind":"plain","optional":true,"sensitive":true},"size":{"type":"number","description":"The ID of the token.","description_kind":"plain","required":true},"stackscript_data":{"type":["map","string"],"description":"An object containing responses to any User Defined Fields present in the StackScript being deployed to this Disk. Only accepted if 'stackscript_id' is given. The required values depend on the StackScript being deployed.","description_kind":"plain","optional":true,"sensitive":true},"stackscript_id":{"type":"number","description":"A StackScript ID that will cause the referenced StackScript to be run during deployment of this Linode.","description_kind":"plain","optional":true},"status":{"type":"string","description":"A brief description of this Disk's current state.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this disk was last updated.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).","description_kind":"plain","optional":true},"delete":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.","description_kind":"plain","optional":true},"update":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_instance_ip":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The resulting IPv4 address.","description_kind":"plain","computed":true},"apply_immediately":{"type":"bool","description":"If true, the instance will be rebooted to update network interfaces. This functionality is not affected by the `skip_implicit_reboots` provider argument.","description_kind":"plain","optional":true,"computed":true},"gateway":{"type":"string","description":"The default gateway for this address","description_kind":"plain","computed":true},"id":{"type":"string","description":"The ID of the IPv4 address, which will be IPv4 address itself.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode to allocate an IPv4 address for.","description_kind":"plain","required":true},"prefix":{"type":"number","description":"The number of bits set in the subnet mask.","description_kind":"plain","computed":true},"public":{"type":"bool","description":"Whether the IPv4 address is public or private.","description_kind":"plain","optional":true,"computed":true},"rdns":{"type":"string","description":"The reverse DNS assigned to this address.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region this IP resides in.","description_kind":"plain","computed":true},"subnet_mask":{"type":"string","description":"The mask that separates host bits from network bits for this address.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of IP address.","description_kind":"plain","computed":true},"vpc_nat_1_1":{"type":["list",["object",{"address":"string","subnet_id":"number","vpc_id":"number"}]],"description":"Contains information about the NAT 1:1 mapping of a public IP address to a VPC subnet.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_instance_shared_ips":{"version":0,"block":{"attributes":{"addresses":{"type":["set","string"],"description":"A set of IP addresses to share to the Linode","description_kind":"plain","required":true},"id":{"type":"string","description":"linode_id is used as the ID of linode_instance_shared_ips","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode to share these IP addresses with.","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_ipv6_range":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The unique ID for this Resource.","description_kind":"plain","computed":true},"is_bgp":{"type":"bool","description":"Whether this IPv6 range is shared.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode to assign this range to.","description_kind":"plain","optional":true},"linodes":{"type":["set","number"],"description":"A list of Linodes targeted by this IPv6 range.Includes Linodes with IP sharing.","description_kind":"plain","computed":true},"prefix_length":{"type":"number","description":"The prefix length of the IPv6 range.","description_kind":"plain","required":true},"range":{"type":"string","description":"The IPv6 range of addresses in this pool.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region for this range of IPv6 addresses.","description_kind":"plain","computed":true},"route_target":{"type":"string","description":"The IPv6 SLAAC address to assign this range to.","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"linode_lke_cluster":{"version":0,"block":{"attributes":{"api_endpoints":{"type":["list","string"],"description":"The API endpoints for the cluster.","description_kind":"plain","computed":true},"dashboard_url":{"type":"string","description":"The dashboard URL of the cluster.","description_kind":"plain","computed":true},"external_pool_tags":{"type":["set","string"],"description":"An array of tags indicating that node pools having those tags are defined with a separate nodepool resource, rather than inside the current cluster resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"k8s_version":{"type":"string","description":"The desired Kubernetes version for this Kubernetes cluster in the format of \u003cmajor\u003e.\u003cminor\u003e. The latest supported patch version will be deployed.","description_kind":"plain","required":true},"kubeconfig":{"type":"string","description":"The Base64-encoded Kubeconfig for the cluster.","description_kind":"plain","computed":true,"sensitive":true},"label":{"type":"string","description":"The unique label for the cluster.","description_kind":"plain","required":true},"region":{"type":"string","description":"This cluster's location.","description_kind":"plain","required":true},"status":{"type":"string","description":"The status of the cluster.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"control_plane":{"nesting_mode":"list","block":{"attributes":{"high_availability":{"type":"bool","description":"Defines whether High Availability is enabled for the Control Plane Components of the cluster.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"acl":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Defines default policy. A value of true results in a default policy of DENY. A value of false results in default policy of ALLOW, and has the same effect as delete the ACL configuration.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"addresses":{"nesting_mode":"list","block":{"attributes":{"ipv4":{"type":["set","string"],"description":"A set of individual ipv4 addresses or CIDRs to ALLOW.","description_kind":"plain","optional":true,"computed":true},"ipv6":{"type":["set","string"],"description":"A set of individual ipv6 addresses or CIDRs to ALLOW.","description_kind":"plain","optional":true,"computed":true}},"description":"A list of ip addresses to allow.","description_kind":"plain"}}},"description":"Defines the ACL configuration for an LKE cluster's control plane.","description_kind":"plain"},"max_items":1}},"description":"Defines settings for the Kubernetes Control Plane.","description_kind":"plain"},"max_items":1},"pool":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The number of nodes in the Node Pool.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"number","description":"The ID of the Node Pool.","description_kind":"plain","computed":true},"nodes":{"type":["list",["object",{"id":"string","instance_id":"number","status":"string"}]],"description":"The nodes in the node pool.","description_kind":"plain","computed":true},"type":{"type":"string","description":"A Linode Type for all of the nodes in the Node Pool.","description_kind":"plain","required":true}},"block_types":{"autoscaler":{"nesting_mode":"list","block":{"attributes":{"max":{"type":"number","description":"The maximum number of nodes to autoscale to.","description_kind":"plain","required":true},"min":{"type":"number","description":"The minimum number of nodes to autoscale to.","description_kind":"plain","required":true}},"description":"When specified, the number of nodes autoscales within the defined minimum and maximum values.","description_kind":"plain"},"max_items":1}},"description":"A node pool in the cluster.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_lke_node_pool":{"version":0,"block":{"attributes":{"cluster_id":{"type":"number","description":"The ID of the cluster to associate this node pool with.","description_kind":"plain","required":true},"id":{"type":"string","description":"ID of the Node Pool.","description_kind":"plain","computed":true},"node_count":{"type":"number","description":"The number of nodes in the Node Pool.","description_kind":"plain","optional":true,"computed":true},"nodes":{"type":["list",["object",{"id":"string","instance_id":"number","status":"string"}]],"description":"A list of nodes in the node pool.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The type of node pool.","description_kind":"plain","required":true}},"block_types":{"autoscaler":{"nesting_mode":"list","block":{"attributes":{"max":{"type":"number","description_kind":"plain","required":true},"min":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_nodebalancer":{"version":1,"block":{"attributes":{"client_conn_throttle":{"type":"number","description":"Throttle connections per second (0-20). Set to 0 (zero) to disable throttling.","description_kind":"plain","optional":true,"computed":true},"created":{"type":"string","description":"When this NodeBalancer was created.","description_kind":"plain","computed":true},"firewall_id":{"type":"number","description":"ID for the firewall you'd like to use with this NodeBalancer.","description_kind":"plain","optional":true},"firewalls":{"type":["list",["object",{"created":"string","id":"number","inbound":["list",["object",{"action":"string","ipv4":["list","string"],"ipv6":["list","string"],"label":"string","ports":"string","protocol":"string"}]],"inbound_policy":"string","label":"string","outbound":["list",["object",{"action":"string","ipv4":["list","string"],"ipv6":["list","string"],"label":"string","ports":"string","protocol":"string"}]],"outbound_policy":"string","status":"string","tags":["set","string"],"updated":"string"}]],"description":"A list of Firewalls assigned to this NodeBalancer.","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"This NodeBalancer's hostname, ending with .nodebalancer.linode.com","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID of the Linode NodeBalancer.","description_kind":"plain","computed":true},"ipv4":{"type":"string","description":"The Public IPv4 Address of this NodeBalancer","description_kind":"plain","computed":true},"ipv6":{"type":"string","description":"The Public IPv6 Address of this NodeBalancer","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the Linode NodeBalancer.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region where this NodeBalancer will be deployed.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","optional":true,"computed":true},"transfer":{"type":["list",["object",{"in":"number","out":"number","total":"number"}]],"description":"Information about the amount of transfer this NodeBalancer has had so far this month.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this NodeBalancer was last updated.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_nodebalancer_config":{"version":1,"block":{"attributes":{"algorithm":{"type":"string","description":"What algorithm this NodeBalancer should use for routing traffic to backends: roundrobin, leastconn, source","description_kind":"plain","optional":true,"computed":true},"check":{"type":"string","description":"The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. If none no check is performed. connection requires only a connection to the backend to succeed. http and http_body rely on the backend serving HTTP, and that the response returned matches what is expected.","description_kind":"plain","optional":true,"computed":true},"check_attempts":{"type":"number","description":"How many times to attempt a check before considering a backend to be down. (1-30)","description_kind":"plain","optional":true,"computed":true},"check_body":{"type":"string","description":"This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down","description_kind":"plain","optional":true,"computed":true},"check_interval":{"type":"number","description":"How often, in seconds, to check that backends are up and serving requests.","description_kind":"plain","optional":true,"computed":true},"check_passive":{"type":"bool","description":"If true, any response from this backend with a 5xx status code will be enough for it to be considered unhealthy and taken out of rotation.","description_kind":"plain","optional":true,"computed":true},"check_path":{"type":"string","description":"The URL path to check on each backend. If the backend does not respond to this request it is considered to be down.","description_kind":"plain","optional":true,"computed":true},"check_timeout":{"type":"number","description":"How long, in seconds, to wait for a check attempt before considering it failed. (1-30)","description_kind":"plain","optional":true,"computed":true},"cipher_suite":{"type":"string","description":"What ciphers to use for SSL connections served by this NodeBalancer. `legacy` is considered insecure and should only be used if necessary.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"The ID of the Linode NodeBalancer Config.","description_kind":"plain","computed":true},"node_status":{"type":["list",["object",{"down":"number","up":"number"}]],"description":"A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends.","description_kind":"plain","computed":true},"nodebalancer_id":{"type":"number","description":"The ID of the NodeBalancer to access.","description_kind":"plain","required":true},"port":{"type":"number","description":"The TCP port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443.","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description":"The protocol this port is configured to serve. If this is set to https you must include an ssl_cert and an ssl_key.","description_kind":"plain","optional":true,"computed":true},"proxy_protocol":{"type":"string","description":"The version of ProxyProtocol to use for the underlying NodeBalancer. This requires protocol to be `tcp`. Valid values are `none`, `v1`, and `v2`.","description_kind":"plain","optional":true,"computed":true},"ssl_cert":{"type":"string","description":"The certificate this port is serving. This is not returned. If set, this field will come back as `\u003cREDACTED\u003e`. Please use the ssl_commonname and ssl_fingerprint to identify the certificate.","description_kind":"plain","optional":true,"sensitive":true},"ssl_commonname":{"type":"string","description":"The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.","description_kind":"plain","computed":true},"ssl_fingerprint":{"type":"string","description":"The read-only fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.","description_kind":"plain","computed":true},"ssl_key":{"type":"string","description":"The private key corresponding to this port's certificate. This is not returned. If set, this field will come back as `\u003cREDACTED\u003e`. Please use the ssl_commonname and ssl_fingerprint to identify the certificate.","description_kind":"plain","optional":true,"sensitive":true},"stickiness":{"type":"string","description":"Controls how session stickiness is handled on this port: 'none', 'table', 'http_cookie'","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"linode_nodebalancer_node":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The private IP Address and port (IP:PORT) where this backend can be reached. This must be a private IP address.","description_kind":"plain","required":true},"config_id":{"type":"number","description":"The ID of the NodeBalancerConfig to access.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description":"The label for this node. This is for display purposes only.","description_kind":"plain","required":true},"mode":{"type":"string","description":"The mode this NodeBalancer should use when sending traffic to this backend. If set to `accept` this backend is accepting traffic. If set to `reject` this backend will not receive traffic. If set to `drain` this backend will not receive new traffic, but connections already pinned to it will continue to be routed to it. If set to `backup` this backend will only accept traffic if all other nodes are down.","description_kind":"plain","optional":true,"computed":true},"nodebalancer_id":{"type":"number","description":"The ID of the NodeBalancer to access.","description_kind":"plain","required":true},"status":{"type":"string","description":"The current status of this node, based on the configured checks of its NodeBalancer Config. (unknown, UP, DOWN)","description_kind":"plain","computed":true},"weight":{"type":"number","description":"Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. (1-255)","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"linode_object_storage_bucket":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"The S3 access key to use for this resource. (Required for lifecycle_rule and versioning). If not specified with the resource, the value will be read from provider-level obj_access_key, or, generated implicitly at apply-time if obj_use_temp_keys in provider configuration is set.","description_kind":"plain","optional":true},"acl":{"type":"string","description":"The Access Control Level of the bucket using a canned ACL string.","description_kind":"plain","optional":true},"cluster":{"type":"string","description":"The cluster of the Linode Object Storage Bucket.","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"cors_enabled":{"type":"bool","description":"If true, the bucket will be created with CORS enabled for all origins.","description_kind":"plain","optional":true},"endpoint":{"type":"string","description":"The endpoint for the bucket used for s3 connections.","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"The hostname where this bucket can be accessed. This hostname can be accessed through a browser if the bucket is made public.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description":"The label of the Linode Object Storage Bucket.","description_kind":"plain","required":true},"region":{"type":"string","description":"The region of the Linode Object Storage Bucket.","description_kind":"plain","optional":true,"computed":true},"secret_key":{"type":"string","description":"The S3 secret key to use for this resource. (Required for lifecycle_rule and versioning). If not specified with the resource, the value will be read from provider-level obj_secret_key, or, generated implicitly at apply-time if obj_use_temp_keys in provider configuration is set.","description_kind":"plain","optional":true,"sensitive":true},"versioning":{"type":"bool","description":"Whether to enable versioning.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"cert":{"nesting_mode":"list","block":{"attributes":{"certificate":{"type":"string","description":"The Base64 encoded and PEM formatted SSL certificate.","description_kind":"plain","required":true,"sensitive":true},"private_key":{"type":"string","description":"The private key associated with the TLS/SSL certificate.","description_kind":"plain","required":true,"sensitive":true}},"description":"The cert used by this Object Storage Bucket.","description_kind":"plain"},"max_items":1},"lifecycle_rule":{"nesting_mode":"list","block":{"attributes":{"abort_incomplete_multipart_upload_days":{"type":"number","description":"Specifies the number of days after initiating a multipart upload when the multipart upload must be completed.","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"Specifies whether the lifecycle rule is active.","description_kind":"plain","required":true},"id":{"type":"string","description":"The unique identifier for the rule.","description_kind":"plain","optional":true,"computed":true},"prefix":{"type":"string","description":"The object key prefix identifying one or more objects to which the rule applies.","description_kind":"plain","optional":true}},"block_types":{"expiration":{"nesting_mode":"list","block":{"attributes":{"date":{"type":"string","description":"Specifies the date after which you want the corresponding action to take effect.","description_kind":"plain","optional":true},"days":{"type":"number","description":"Specifies the number of days after object creation when the specific rule action takes effect.","description_kind":"plain","optional":true},"expired_object_delete_marker":{"type":"bool","description":"Directs Linode Object Storage to remove expired deleted markers.","description_kind":"plain","optional":true}},"description":"Specifies a period in the object's expire.","description_kind":"plain"},"max_items":1},"noncurrent_version_expiration":{"nesting_mode":"list","block":{"attributes":{"days":{"type":"number","description":"Specifies the number of days non-current object versions expire.","description_kind":"plain","required":true}},"description":"Specifies when non-current object versions expire.","description_kind":"plain"},"max_items":1}},"description":"Lifecycle rules to be applied to the bucket.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_object_storage_key":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"This keypair's access key. This is not secret.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID of this Object Storage key.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label given to this key. For display purposes only.","description_kind":"plain","required":true},"limited":{"type":"bool","description":"Whether or not this key is a limited access key.","description_kind":"plain","computed":true},"regions":{"type":["set","string"],"description":"A set of regions where the key will grant access to create buckets.","description_kind":"plain","optional":true,"computed":true},"regions_details":{"type":["set",["object",{"id":"string","s3_endpoint":"string"}]],"description":"A set of objects containing the detailed info of the regions where the key will grant access.","description_kind":"plain","computed":true},"secret_key":{"type":"string","description":"This keypair's secret key.","description_kind":"plain","computed":true,"sensitive":true}},"block_types":{"bucket_access":{"nesting_mode":"set","block":{"attributes":{"bucket_name":{"type":"string","description":"The unique label of the bucket to which the key will grant limited access.","description_kind":"plain","required":true},"cluster":{"type":"string","description":"The Object Storage cluster where the bucket resides. Deprecated in favor of `region`","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"permissions":{"type":"string","description":"This Limited Access Key's permissions for the selected bucket.","description_kind":"plain","required":true},"region":{"type":"string","description":"The region where the bucket resides.","description_kind":"plain","optional":true,"computed":true}},"description":"A list of permissions to grant this limited access key.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_object_storage_object":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"The REQUIRED S3 access key with access to the target bucket. If not specified with the resource, you must provide its value by configuring the obj_access_key, or, opting-in generating it implicitly at apply-time using obj_use_temp_keys at provider-level.","description_kind":"plain","optional":true},"acl":{"type":"string","description":"The ACL config given to this object.","description_kind":"plain","optional":true},"bucket":{"type":"string","description":"The target bucket to put this object in.","description_kind":"plain","required":true},"cache_control":{"type":"string","description":"This cache_control configuration of this object.","description_kind":"plain","optional":true},"cluster":{"type":"string","description":"The target cluster that the bucket is in.","description_kind":"plain","optional":true},"content":{"type":"string","description":"The contents of the Object to upload.","description_kind":"plain","optional":true},"content_base64":{"type":"string","description":"The base64 contents of the Object to upload.","description_kind":"plain","optional":true},"content_disposition":{"type":"string","description":"The content disposition configuration of this object.","description_kind":"plain","optional":true},"content_encoding":{"type":"string","description":"The encoding of the content of this object.","description_kind":"plain","optional":true},"content_language":{"type":"string","description":"The language metadata of this object.","description_kind":"plain","optional":true},"content_type":{"type":"string","description":"The MIME type of the content.","description_kind":"plain","optional":true,"computed":true},"endpoint":{"type":"string","description":"The endpoint for the bucket used for s3 connections.","description_kind":"plain","optional":true,"computed":true},"etag":{"type":"string","description":"The specific version of this object.","description_kind":"plain","optional":true,"computed":true},"force_destroy":{"type":"bool","description":"Whether the object should bypass deletion restrictions.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"The name of the uploaded object.","description_kind":"plain","required":true},"metadata":{"type":["map","string"],"description":"The metadata of this object","description_kind":"plain","optional":true},"region":{"type":"string","description":"The target region that the bucket is in.","description_kind":"plain","optional":true},"secret_key":{"type":"string","description":"The REQUIRED S3 secret key with access to the target bucket. If not specified with the resource, you must provide its value by configuring the obj_secret_key, or, opting-in generating it implicitly at apply-time using obj_use_temp_keys at provider-level.","description_kind":"plain","optional":true,"sensitive":true},"source":{"type":"string","description":"The source file to upload.","description_kind":"plain","optional":true},"version_id":{"type":"string","description":"The version ID of this object.","description_kind":"plain","computed":true},"website_redirect":{"type":"string","description":"The website redirect location of this object.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"linode_placement_group":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The id of the Placement Group.","description_kind":"plain","computed":true},"is_compliant":{"type":"bool","description":"Whether all Linodes in this Placement Group are currently compliant.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the Placement Group.","description_kind":"plain","required":true},"members":{"type":["set",["object",{"is_compliant":"bool","linode_id":"number"}]],"description":"A set of Linodes currently assigned to this Placement Group.","description_kind":"plain","computed":true},"placement_group_policy":{"type":"string","description":"Whether this Placement Group has a strict compliance policy.","description_kind":"plain","optional":true,"computed":true},"placement_group_type":{"type":"string","description":"The placement group type for Linodes in this Placement Group.","description_kind":"plain","required":true},"region":{"type":"string","description":"The region of the Placement Group.","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_placement_group_assignment":{"version":0,"block":{"attributes":{"compliant_only":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description":"The unique ID that represents the assignment between a Placement Group and a set of Linodes.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"A set of Linode IDs to assign to the Placement Group.","description_kind":"plain","required":true},"placement_group_id":{"type":"number","description":"The ID of the Placement Group for this assignment.","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_rdns":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The public Linode IPv4 or IPv6 address to operate on.","description_kind":"plain","required":true},"id":{"type":"string","description":"Unique identification field for this RDNS Resource. The public Linode IPv4 or IPv6 address to operate on. ","description_kind":"plain","computed":true},"rdns":{"type":"string","description":"The reverse DNS assigned to this address. For public IPv4 addresses, this will be set to a default value provided by Linode if not explicitly set.","description_kind":"plain","required":true},"wait_for_available":{"type":"bool","description":"If true, the RDNS assignment will be retried within the operation timeout period.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).","description_kind":"plain","optional":true},"update":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_sshkey":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The date this key was added.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique identifier for this SSH key.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the Linode SSH Key.","description_kind":"plain","required":true},"ssh_key":{"type":"string","description":"The public SSH Key, which is used to authenticate to the root user of the Linodes you deploy.","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_stackscript":{"version":1,"block":{"attributes":{"created":{"type":"string","description":"The date this StackScript was created.","description_kind":"plain","computed":true},"deployments_active":{"type":"number","description":"Count of currently active, deployed Linodes created from this StackScript.","description_kind":"plain","computed":true},"deployments_total":{"type":"number","description":"The total number of times this StackScript has been deployed.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A description for the StackScript.","description_kind":"plain","required":true},"id":{"type":"string","description":"The StackScript's unique ID.","description_kind":"plain","computed":true},"images":{"type":["set","string"],"description":"An array of Image IDs representing the Images that this StackScript is compatible for deploying with.","description_kind":"plain","required":true},"is_public":{"type":"bool","description":"This determines whether other users can use your StackScript. Once a StackScript is made public, it cannot be made private.","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description":"The StackScript's label is for display purposes only.","description_kind":"plain","required":true},"rev_note":{"type":"string","description":"This field allows you to add notes for the set of revisions made to this StackScript.","description_kind":"plain","optional":true,"computed":true},"script":{"type":"string","description":"The script to execute when provisioning a new Linode with this StackScript.","description_kind":"plain","required":true},"updated":{"type":"string","description":"The date this StackScript was updated.","description_kind":"plain","computed":true},"user_defined_fields":{"type":["list",["object",{"default":"string","example":"string","label":"string","many_of":"string","name":"string","one_of":"string"}]],"description":"This is a list of fields defined with a special syntax inside this StackScript that allow for supplying customized parameters during deployment.","description_kind":"plain","computed":true},"user_gravatar_id":{"type":"string","description":"The Gravatar ID for the User who created the StackScript.","description_kind":"plain","computed":true},"username":{"type":"string","description":"The User who created the StackScript.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_token":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The date and time this token was created.","description_kind":"plain","computed":true},"expiry":{"type":"string","description":"When this token will expire. Personal Access Tokens cannot be renewed, so after this time the token will be completely unusable and a new token will need to be generated. Tokens may be created with 'null' as their expiry and will never expire unless revoked. Format: 2006-01-02T15:04:05Z","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"The ID of the token.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the Linode Token.","description_kind":"plain","optional":true},"scopes":{"type":"string","description":"The scopes this token was created with. These define what parts of the Account the token can be used to access. Many command-line tools, such as the Linode CLI, require tokens with access to *. Tokens with more restrictive scopes are generally more secure. Multiple scopes are separated by a space character (e.g., \"databases:read_only events:read_only\"). You can find the list of available scopes on Linode API docs site, https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference","description_kind":"plain","required":true},"token":{"type":"string","description":"The token used to access the API.","description_kind":"plain","computed":true,"sensitive":true}},"description_kind":"plain"}},"linode_user":{"version":0,"block":{"attributes":{"email":{"type":"string","description":"The email of the user.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"restricted":{"type":"bool","description":"If true, the user must be explicitly granted access to platform actions and entities.","description_kind":"plain","optional":true},"ssh_keys":{"type":["list","string"],"description":"SSH keys to add to the user profile.","description_kind":"plain","computed":true},"tfa_enabled":{"type":"bool","description":"If the User has Two Factor Authentication (TFA) enabled.","description_kind":"plain","computed":true},"user_type":{"type":"string","description":"The type of this user.","description_kind":"plain","computed":true},"username":{"type":"string","description":"The username of the user.","description_kind":"plain","required":true}},"block_types":{"domain_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}},"firewall_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}},"global_grants":{"nesting_mode":"list","block":{"attributes":{"account_access":{"type":"string","description":"The level of access this User has to Account-level actions, like billing information. A restricted User will never be able to manage users.","description_kind":"plain","optional":true},"add_databases":{"type":"bool","description":"If true, this User may add Databases.","description_kind":"plain","optional":true},"add_domains":{"type":"bool","description":"If true, this User may add Domains.","description_kind":"plain","optional":true},"add_firewalls":{"type":"bool","description":"If true, this User may add Firewalls.","description_kind":"plain","optional":true},"add_images":{"type":"bool","description":"If true, this User may add Images.","description_kind":"plain","optional":true},"add_linodes":{"type":"bool","description":"If true, this User may create Linodes.","description_kind":"plain","optional":true},"add_longview":{"type":"bool","description":"If true, this User may create Longview clients and view the current plan.","description_kind":"plain","optional":true},"add_nodebalancers":{"type":"bool","description":"If true, this User may add NodeBalancers.","description_kind":"plain","optional":true},"add_stackscripts":{"type":"bool","description":"If true, this User may add StackScripts.","description_kind":"plain","optional":true},"add_volumes":{"type":"bool","description":"If true, this User may add Volumes.","description_kind":"plain","optional":true},"cancel_account":{"type":"bool","description":"If true, this User may cancel the entire Account.","description_kind":"plain","optional":true},"longview_subscription":{"type":"bool","description":"If true, this User may manage the Account’s Longview subscription.","description_kind":"plain","optional":true}},"description":"A structure containing the Account-level grants a User has.","description_kind":"plain"},"max_items":1},"image_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}},"linode_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}},"longview_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}},"nodebalancer_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}},"stackscript_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}},"volume_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_volume":{"version":0,"block":{"attributes":{"filesystem_path":{"type":"string","description":"The full filesystem path for the Volume based on the Volume's label. Path is /dev/disk/by-id/scsi-0Linode_Volume_ + Volume label.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The id of the volume.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the Linode Volume.","description_kind":"plain","required":true},"linode_id":{"type":"number","description":"The Linode ID where the Volume should be attached.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region where this volume will be deployed.","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description":"Size of the Volume in GB","description_kind":"plain","optional":true,"computed":true},"source_volume_id":{"type":"number","description":"The ID of a volume to clone.","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the volume, indicating the current readiness state.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).","description_kind":"plain","optional":true},"delete":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.","description_kind":"plain","optional":true},"update":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_vpc":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The date and time when the VPC was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"The user-defined description of this VPC.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"The id of the VPC.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the VPC. Only contains ascii letters, digits and dashes","description_kind":"plain","required":true},"region":{"type":"string","description":"The region of the VPC.","description_kind":"plain","required":true},"updated":{"type":"string","description":"The date and time when the VPC was updated.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_vpc_subnet":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The date and time when the VPC Subnet was created.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The id of the VPC Subnet.","description_kind":"plain","computed":true},"ipv4":{"type":"string","description":"The IPv4 range of this subnet in CIDR format.","description_kind":"plain","required":true},"label":{"type":"string","description":"The label of the VPC subnet.","description_kind":"plain","required":true},"linodes":{"type":["list",["object",{"id":"number","interfaces":["list",["object",{"active":"bool","id":"number"}]]}]],"description_kind":"plain","computed":true},"updated":{"type":"string","description":"The date and time when the VPC Subnet was updated.","description_kind":"plain","computed":true},"vpc_id":{"type":"number","description":"The id of the parent VPC for this VPC Subnet","description_kind":"plain","required":true}},"description_kind":"plain"}}},"data_source_schemas":{"linode_account":{"version":0,"block":{"attributes":{"active_since":{"type":"string","description":"When this account was activated.","description_kind":"plain","computed":true},"address_1":{"type":"string","description":"First line of this Account's billing address.","description_kind":"plain","computed":true},"address_2":{"type":"string","description":"Second line of this Account's billing address.","description_kind":"plain","computed":true},"balance":{"type":"number","description":"This Account's balance, in US dollars.","description_kind":"plain","computed":true},"capabilities":{"type":["set","string"],"description":"The capabilities of this account.","description_kind":"plain","computed":true},"city":{"type":"string","description":"The city for this Account's billing address.","description_kind":"plain","computed":true},"company":{"type":"string","description":"The company name associated with this Account.","description_kind":"plain","computed":true},"country":{"type":"string","description":"The two-letter country code of this Account's billing address.","description_kind":"plain","computed":true},"email":{"type":"string","description":"The email address for this Account, for account management communications, and may be used for other communications as configured.","description_kind":"plain","computed":true},"euuid":{"type":"string","description":"The unique ID of this Account.","description_kind":"plain","computed":true},"first_name":{"type":"string","description":"The first name of the person associated with this Account.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The Email of the Account.","description_kind":"plain","computed":true},"last_name":{"type":"string","description":"The last name of the person associated with this Account.","description_kind":"plain","computed":true},"phone":{"type":"string","description":"The phone number associated with this Account.","description_kind":"plain","computed":true},"state":{"type":"string","description":"If billing address is in the United States, this is the State portion of the Account's billing address. If the address is outside the US, this is the Province associated with the Account's billing address.","description_kind":"plain","computed":true},"zip":{"type":"string","description":"The zip code of this Account's billing address.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_account_availabilities":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true}},"block_types":{"availabilities":{"nesting_mode":"list","block":{"attributes":{"available":{"type":["set","string"],"description":"A set of available services for the current account in this region.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region of this availability entry.","description_kind":"plain","required":true},"unavailable":{"type":["set","string"],"description":"A set of unavailable services for the current account in this region.","description_kind":"plain","computed":true}},"description":"The returned list of account availabilities.","description_kind":"plain"}},"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_account_availability":{"version":0,"block":{"attributes":{"available":{"type":["set","string"],"description":"A set of available services for the current account in this region.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region of this availability entry.","description_kind":"plain","required":true},"unavailable":{"type":["set","string"],"description":"A set of unavailable services for the current account in this region.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_account_login":{"version":0,"block":{"attributes":{"datetime":{"type":"string","description":"The time when the login was initiated.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID of this login object.","description_kind":"plain","required":true},"ip":{"type":"string","description":"The remote IP address that requested the login.","description_kind":"plain","computed":true},"restricted":{"type":"bool","description":"True if the User that was logged into was a restricted User, false otherwise.","description_kind":"plain","computed":true},"status":{"type":"string","description":"Whether the login attempt succeeded or failed.","description_kind":"plain","computed":true},"username":{"type":"string","description":"The username of the User that was logged into.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_account_logins":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"logins":{"nesting_mode":"list","block":{"attributes":{"datetime":{"type":"string","description":"The time when the login was initiated.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID of this login object.","description_kind":"plain","required":true},"ip":{"type":"string","description":"The remote IP address that requested the login.","description_kind":"plain","computed":true},"restricted":{"type":"bool","description":"True if the User that was logged into was a restricted User, false otherwise.","description_kind":"plain","computed":true},"status":{"type":"string","description":"Whether the login attempt succeeded or failed.","description_kind":"plain","computed":true},"username":{"type":"string","description":"The username of the User that was logged into.","description_kind":"plain","computed":true}},"description":"The returned list of account logins.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_account_settings":{"version":0,"block":{"attributes":{"backups_enabled":{"type":"bool","description":"Account-wide backups default.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The email of the current account.","description_kind":"plain","computed":true},"longview_subscription":{"type":"string","description":"The Longview Pro tier you are currently subscribed to.","description_kind":"plain","computed":true},"managed":{"type":"bool","description":"Enables monitoring for connectivity, response, and total request time.","description_kind":"plain","computed":true},"network_helper":{"type":"bool","description":"Enables network helper across all users by default for new Linodes and Linode Configs.","description_kind":"plain","computed":true},"object_storage":{"type":"string","description":"A string describing the status of this account's Object Storage service enrollment.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_child_account":{"version":0,"block":{"attributes":{"active_since":{"type":"string","description":"When this account was activated.","description_kind":"plain","computed":true},"address_1":{"type":"string","description":"First line of this Account's billing address.","description_kind":"plain","computed":true},"address_2":{"type":"string","description":"Second line of this Account's billing address.","description_kind":"plain","computed":true},"balance":{"type":"number","description":"This Account's balance, in US dollars.","description_kind":"plain","computed":true},"capabilities":{"type":["set","string"],"description":"The capabilities of this account.","description_kind":"plain","computed":true},"city":{"type":"string","description":"The city for this Account's billing address.","description_kind":"plain","computed":true},"company":{"type":"string","description":"The company name associated with this Account.","description_kind":"plain","computed":true},"country":{"type":"string","description":"The two-letter country code of this Account's billing address.","description_kind":"plain","computed":true},"email":{"type":"string","description":"The email address for this Account, for account management communications, and may be used for other communications as configured.","description_kind":"plain","computed":true},"euuid":{"type":"string","description":"The unique ID of this Account.","description_kind":"plain","required":true},"first_name":{"type":"string","description":"The first name of the person associated with this Account.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The Email of the Account.","description_kind":"plain","computed":true},"last_name":{"type":"string","description":"The last name of the person associated with this Account.","description_kind":"plain","computed":true},"phone":{"type":"string","description":"The phone number associated with this Account.","description_kind":"plain","computed":true},"state":{"type":"string","description":"If billing address is in the United States, this is the State portion of the Account's billing address. If the address is outside the US, this is the Province associated with the Account's billing address.","description_kind":"plain","computed":true},"zip":{"type":"string","description":"The zip code of this Account's billing address.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_child_accounts":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true}},"block_types":{"child_accounts":{"nesting_mode":"list","block":{"attributes":{"active_since":{"type":"string","description":"When this account was activated.","description_kind":"plain","computed":true},"address_1":{"type":"string","description":"First line of this Account's billing address.","description_kind":"plain","computed":true},"address_2":{"type":"string","description":"Second line of this Account's billing address.","description_kind":"plain","computed":true},"balance":{"type":"number","description":"This Account's balance, in US dollars.","description_kind":"plain","computed":true},"capabilities":{"type":["set","string"],"description":"The capabilities of this account.","description_kind":"plain","computed":true},"city":{"type":"string","description":"The city for this Account's billing address.","description_kind":"plain","computed":true},"company":{"type":"string","description":"The company name associated with this Account.","description_kind":"plain","computed":true},"country":{"type":"string","description":"The two-letter country code of this Account's billing address.","description_kind":"plain","computed":true},"email":{"type":"string","description":"The email address for this Account, for account management communications, and may be used for other communications as configured.","description_kind":"plain","computed":true},"euuid":{"type":"string","description":"The unique ID of this Account.","description_kind":"plain","computed":true},"first_name":{"type":"string","description":"The first name of the person associated with this Account.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The Email of the Account.","description_kind":"plain","computed":true},"last_name":{"type":"string","description":"The last name of the person associated with this Account.","description_kind":"plain","computed":true},"phone":{"type":"string","description":"The phone number associated with this Account.","description_kind":"plain","computed":true},"state":{"type":"string","description":"If billing address is in the United States, this is the State portion of the Account's billing address. If the address is outside the US, this is the Province associated with the Account's billing address.","description_kind":"plain","computed":true},"zip":{"type":"string","description":"The zip code of this Account's billing address.","description_kind":"plain","computed":true}},"description":"The returned list of Child Accounts.","description_kind":"plain"}},"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_database_backups":{"version":0,"block":{"attributes":{"database_id":{"type":"number","description":"The ID of the Managed Database.","description_kind":"plain","required":true},"database_type":{"type":"string","description":"The type of the Managed Database","description_kind":"plain","required":true},"id":{"type":"number","description":"The data source's unique ID.","description_kind":"plain","computed":true},"latest":{"type":"bool","description":"If true, only the latest engine version will be returned.","description_kind":"plain","optional":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"backups":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"A time value given in a combined date and time format that represents when the database backup was created.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the database backup object.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The database backup’s label, for display purposes only.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of database backup, determined by how the backup was created.","description_kind":"plain","computed":true}},"description":"The returned list of backups.","description_kind":"plain"}},"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_database_engines":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"latest":{"type":"bool","description":"If true, only the latest engine version will be returned.","description_kind":"plain","optional":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"engines":{"nesting_mode":"list","block":{"attributes":{"engine":{"type":"string","description":"The Managed Database engine type.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The Managed Database engine ID in engine/version format.","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Managed Database engine version.","description_kind":"plain","computed":true}},"description":"The returned list of engines.","description_kind":"plain"}},"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_database_mysql":{"version":0,"block":{"attributes":{"allow_list":{"type":["set","string"],"description":"A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format.","description_kind":"plain","computed":true},"ca_cert":{"type":"string","description":"The base64-encoded SSL CA certificate for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"cluster_size":{"type":"number","description":"The number of Linode Instance nodes deployed to the Managed Database. Defaults to 1.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this Managed Database was created.","description_kind":"plain","computed":true},"database_id":{"type":"number","description":"The ID of the MySQL database. DEPRECATED: Use ID instead","description_kind":"plain","deprecated":true,"optional":true},"encrypted":{"type":"bool","description":"Whether the Managed Databases is encrypted.","description_kind":"plain","computed":true},"engine":{"type":"string","description":"The Managed Database engine.","description_kind":"plain","computed":true},"engine_id":{"type":"string","description":"The Managed Database engine in engine/version format. (e.g. mysql/8.0.30)","description_kind":"plain","computed":true},"host_primary":{"type":"string","description":"The primary host for the Managed Database.","description_kind":"plain","computed":true},"host_secondary":{"type":"string","description":"The secondary host for the Managed Database.","description_kind":"plain","computed":true},"id":{"type":"number","description":"Unique identifier for this DataSource. The ID of the MySQL database.","description_kind":"plain","optional":true},"label":{"type":"string","description":"A unique, user-defined string referring to the Managed Database.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region to use for the Managed Database.","description_kind":"plain","computed":true},"replication_type":{"type":"string","description":"The replication method used for the Managed Database.","description_kind":"plain","computed":true},"root_password":{"type":"string","description":"The randomly-generated root password for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"root_username":{"type":"string","description":"The root username for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"ssl_connection":{"type":"bool","description":"Whether to require SSL credentials to establish a connection to the Managed Database.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The operating status of the Managed Database.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The Linode Instance type used by the Managed Database for its nodes.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Managed Database was last updated.","description_kind":"plain","computed":true},"updates":{"type":["list",["object",{"day_of_week":"string","duration":"number","frequency":"string","hour_of_day":"number","week_of_month":"number"}]],"description":"Configuration settings for automated patch update maintenance for the Managed Database.","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Managed Database engine version.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_database_mysql_backups":{"version":0,"block":{"attributes":{"backups":{"type":["list",["object",{"created":"string","id":"number","label":"string","type":"string"}]],"description":"The returned list of backups.","description_kind":"plain","computed":true},"database_id":{"type":"number","description":"The ID of the Managed MySQL Database.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"latest":{"type":"bool","description":"If true, only the latest backup will be returned.","description_kind":"plain","optional":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"list","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["list","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_database_postgresql":{"version":0,"block":{"attributes":{"allow_list":{"type":["set","string"],"description":"A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format.","description_kind":"plain","computed":true},"ca_cert":{"type":"string","description":"The base64-encoded SSL CA certificate for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"cluster_size":{"type":"number","description":"The number of Linode Instance nodes deployed to the Managed Database. Defaults to 1.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this Managed Database was created.","description_kind":"plain","computed":true},"database_id":{"type":"number","description":"The ID of the PostgreSQL database. DEPRECATED: Use ID instead","description_kind":"plain","deprecated":true,"optional":true},"encrypted":{"type":"bool","description":"Whether the Managed Databases is encrypted.","description_kind":"plain","computed":true},"engine":{"type":"string","description":"The Managed Database engine.","description_kind":"plain","computed":true},"engine_id":{"type":"string","description":"The Managed Database engine in engine/version format. (e.g. postgresql/12.6)","description_kind":"plain","computed":true},"host_primary":{"type":"string","description":"The primary host for the Managed Database.","description_kind":"plain","computed":true},"host_secondary":{"type":"string","description":"The secondary host for the Managed Database.","description_kind":"plain","computed":true},"id":{"type":"number","description":"Unique identifier for this DataSource. The ID of the PostgreSQL database.","description_kind":"plain","optional":true},"label":{"type":"string","description":"A unique, user-defined string referring to the Managed Database.","description_kind":"plain","computed":true},"port":{"type":"number","description":"The access port for this Managed Database.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region to use for the Managed Database.","description_kind":"plain","computed":true},"replication_commit_type":{"type":"string","description":"The synchronization level of the replicating server.","description_kind":"plain","computed":true},"replication_type":{"type":"string","description":"The replication method used for the Managed Database.","description_kind":"plain","computed":true},"root_password":{"type":"string","description":"The randomly-generated root password for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"root_username":{"type":"string","description":"The root username for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"ssl_connection":{"type":"bool","description":"Whether to require SSL credentials to establish a connection to the Managed Database.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The operating status of the Managed Database.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The Linode Instance type used by the Managed Database for its nodes.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Managed Database was last updated.","description_kind":"plain","computed":true},"updates":{"type":["list",["object",{"day_of_week":"string","duration":"number","frequency":"string","hour_of_day":"number","week_of_month":"number"}]],"description":"Configuration settings for automated patch update maintenance for the Managed Database.","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Managed Database engine version.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_databases":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"databases":{"nesting_mode":"list","block":{"attributes":{"allow_list":{"type":["set","string"],"description":"A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format.","description_kind":"plain","computed":true},"cluster_size":{"type":"number","description":"The number of Linode Instance nodes deployed to the Managed Database.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this Managed Database was created.","description_kind":"plain","computed":true},"encrypted":{"type":"bool","description":"Whether the Managed Databases is encrypted.","description_kind":"plain","computed":true},"engine":{"type":"string","description":"The Managed Database engine type.","description_kind":"plain","computed":true},"host_primary":{"type":"string","description":"The primary host for the Managed Database.","description_kind":"plain","computed":true},"host_secondary":{"type":"string","description":"The secondary/private host for the Managed Database.","description_kind":"plain","computed":true},"id":{"type":"number","description":"A unique ID that can be used to identify and reference the Managed Database.","description_kind":"plain","computed":true},"instance_uri":{"type":"string","description":"he API route for the database instance.","description_kind":"plain","computed":true},"label":{"type":"string","description":"A unique, user-defined string referring to the Managed Database.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The Region ID for the Managed Database.","description_kind":"plain","computed":true},"replication_type":{"type":"string","description":"The replication method used for the Managed Database.","description_kind":"plain","computed":true},"ssl_connection":{"type":"bool","description":"Whether to require SSL credentials to establish a connection to the Managed Database.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The operating status of the Managed Database.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The Linode Instance type used by the Managed Database for its nodes.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Managed Database was last updated.","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Managed Database engine version.","description_kind":"plain","computed":true}},"description":"The returned list of databases.","description_kind":"plain"}},"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_domain":{"version":0,"block":{"attributes":{"axfr_ips":{"type":["set","string"],"description":"The list of IPs that may perform a zone transfer for this Domain. This is potentially dangerous, and should be set to an empty list unless you intend to use it.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A description for this Domain. This is for display purposes only.","description_kind":"plain","computed":true},"domain":{"type":"string","description":"The domain this Domain represents. These must be unique in our system; you cannot have two Domains representing the same domain.","description_kind":"plain","optional":true},"expire_sec":{"type":"number","description":"The amount of time in seconds that may pass before this Domain is no longer Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"group":{"type":"string","description":"The group this Domain belongs to. This is for display purposes only.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The Domain's unique ID.","description_kind":"plain","optional":true},"master_ips":{"type":["set","string"],"description":"The IP addresses representing the master DNS for this Domain.","description_kind":"plain","computed":true},"refresh_sec":{"type":"number","description":"The amount of time in seconds before this Domain should be refreshed. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"retry_sec":{"type":"number","description":"The interval, in seconds, at which a failed refresh should be retried. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"soa_email":{"type":"string","description":"Start of Authority email address. This is required for master Domains.","description_kind":"plain","computed":true},"status":{"type":"string","description":"Used to control whether this Domain is currently being rendered.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"ttl_sec":{"type":"number","description":"'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"type":{"type":"string","description":"If this Domain represents the authoritative source of information for the domain it describes, or if it is a read-only copy of a master (also called a slave).","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_domain_record":{"version":0,"block":{"attributes":{"domain_id":{"type":"number","description":"The associated domain's ID.","description_kind":"plain","required":true},"id":{"type":"number","description":"The unique ID assigned to this domain record.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the Record.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The port this Record points to.","description_kind":"plain","computed":true},"priority":{"type":"number","description":"The priority of the target host. Lower values are preferred.","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The protocol this Record's service communicates with. Only valid for SRV records.","description_kind":"plain","computed":true},"service":{"type":"string","description":"The service this Record identified. Only valid for SRV records.","description_kind":"plain","computed":true},"tag":{"type":"string","description":"The tag portion of a CAA record.","description_kind":"plain","computed":true},"target":{"type":"string","description":"The target for this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the address the named Domain should resolve to.","description_kind":"plain","computed":true},"ttl_sec":{"type":"number","description":"The amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of Record this is in the DNS system.","description_kind":"plain","computed":true},"weight":{"type":"number","description":"The relative weight of this Record. Higher values are preferred.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_domain_zonefile":{"version":0,"block":{"attributes":{"domain_id":{"type":"number","description":"The domain's ID.","description_kind":"plain","required":true},"id":{"type":"string","description":"The unique ID for this DataSource","description_kind":"plain","computed":true},"zone_file":{"type":["list","string"],"description":"Lines of the zone file for the last rendered zone for this domain.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_domains":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"domains":{"nesting_mode":"list","block":{"attributes":{"axfr_ips":{"type":["set","string"],"description":"The list of IPs that may perform a zone transfer for this Domain. This is potentially dangerous, and should be set to an empty list unless you intend to use it.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A description for this Domain. This is for display purposes only.","description_kind":"plain","computed":true},"domain":{"type":"string","description":"The domain this Domain represents. These must be unique in our system; you cannot have two Domains representing the same domain.","description_kind":"plain","optional":true},"expire_sec":{"type":"number","description":"The amount of time in seconds that may pass before this Domain is no longer Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"group":{"type":"string","description":"The group this Domain belongs to. This is for display purposes only.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The Domain's unique ID.","description_kind":"plain","optional":true},"master_ips":{"type":["set","string"],"description":"The IP addresses representing the master DNS for this Domain.","description_kind":"plain","computed":true},"refresh_sec":{"type":"number","description":"The amount of time in seconds before this Domain should be refreshed. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"retry_sec":{"type":"number","description":"The interval, in seconds, at which a failed refresh should be retried. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"soa_email":{"type":"string","description":"Start of Authority email address. This is required for master Domains.","description_kind":"plain","computed":true},"status":{"type":"string","description":"Used to control whether this Domain is currently being rendered.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"ttl_sec":{"type":"number","description":"'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"type":{"type":"string","description":"If this Domain represents the authoritative source of information for the domain it describes, or if it is a read-only copy of a master (also called a slave).","description_kind":"plain","computed":true}},"description":"The returned list of Domains.","description_kind":"plain"}},"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_firewall":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"When this Firewall was created.","description_kind":"plain","computed":true},"devices":{"type":["list",["object",{"entity_id":"number","id":"number","label":"string","type":"string","url":"string"}]],"description":"The devices associated with this firewall.","description_kind":"plain","computed":true},"disabled":{"type":"bool","description":"If true, the Firewall is inactive.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID assigned to this Firewall.","description_kind":"plain","required":true},"inbound":{"type":["list",["object",{"action":"string","ipv4":["list","string"],"ipv6":["list","string"],"label":"string","ports":"string","protocol":"string"}]],"description":"A firewall rule that specifies what inbound network traffic is allowed.","description_kind":"plain","computed":true},"inbound_policy":{"type":"string","description":"The default behavior for inbound traffic. This setting can be overridden by updating the inbound.action property for an individual Firewall Rule.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.","description_kind":"plain","computed":true},"linodes":{"type":["set","number"],"description":"The IDs of Linodes assigned to this Firewall.","description_kind":"plain","computed":true},"nodebalancers":{"type":["set","number"],"description":"The IDs of NodeBalancers assigned to this Firewall.","description_kind":"plain","computed":true},"outbound":{"type":["list",["object",{"action":"string","ipv4":["list","string"],"ipv6":["list","string"],"label":"string","ports":"string","protocol":"string"}]],"description":"A firewall rule that specifies what outbound network traffic is allowed.","description_kind":"plain","computed":true},"outbound_policy":{"type":"string","description":"The default behavior for outbound traffic. This setting can be overridden by updating the outbound.action property for an individual Firewall Rule.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the firewall.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Firewall was last updated.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_firewalls":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"firewalls":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"When this Firewall was created.","description_kind":"plain","computed":true},"disabled":{"type":"bool","description":"If true, the Firewall is inactive.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID assigned to this Firewall.","description_kind":"plain","computed":true},"inbound_policy":{"type":"string","description":"The default behavior for inbound traffic.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.","description_kind":"plain","computed":true},"linodes":{"type":["set","number"],"description":"The IDs of Linodes assigned to this Firewall.","description_kind":"plain","computed":true},"nodebalancers":{"type":["set","number"],"description":"The IDs of NodeBalancers assigned to this Firewall..","description_kind":"plain","computed":true},"outbound_policy":{"type":"string","description":"The default behavior for outbound traffic.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the firewall.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Firewall was last updated.","description_kind":"plain","computed":true}},"block_types":{"devices":{"nesting_mode":"list","block":{"attributes":{"entity_id":{"type":"number","description":"The ID of the underlying entity this device references (i.e. the Linode's ID).","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID of the Firewall Device.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the underlying entity this device references.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of Firewall Device.","description_kind":"plain","computed":true},"url":{"type":"string","description":"The URL of the underlying entity this device references.","description_kind":"plain","computed":true}},"description":"The devices associated with this firewall.","description_kind":"plain"}},"inbound":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP).","description_kind":"plain","computed":true},"ipv4":{"type":["set","string"],"description":"A list of IPv4 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"ipv6":{"type":["set","string"],"description":"A list of IPv6 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of this rule for display purposes only.","description_kind":"plain","computed":true},"ports":{"type":"string","description":"A string representation of ports and/or port ranges (i.e. \"443\" or \"80-90, 91\").","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The network protocol this rule controls. (TCP, UDP, ICMP)","description_kind":"plain","computed":true}},"description":"A set of firewall rules that specify what inbound network traffic is allowed.","description_kind":"plain"}},"outbound":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP).","description_kind":"plain","computed":true},"ipv4":{"type":["set","string"],"description":"A list of IPv4 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"ipv6":{"type":["set","string"],"description":"A list of IPv6 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of this rule for display purposes only.","description_kind":"plain","computed":true},"ports":{"type":"string","description":"A string representation of ports and/or port ranges (i.e. \"443\" or \"80-90, 91\").","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The network protocol this rule controls. (TCP, UDP, ICMP)","description_kind":"plain","computed":true}},"description":"A set of firewall rules that specify what outbound network traffic is allowed.","description_kind":"plain"}}},"description":"The returned list of Firewalls.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_image":{"version":0,"block":{"attributes":{"capabilities":{"type":["set","string"],"description":"The capabilities of this Image.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this Image was created.","description_kind":"plain","computed":true},"created_by":{"type":"string","description":"The name of the User who created this Image.","description_kind":"plain","computed":true},"deprecated":{"type":"bool","description":"Whether or not this Image is deprecated. Will only be True for deprecated public Images.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A detailed description of this Image.","description_kind":"plain","computed":true},"expiry":{"type":"string","description":"Only Images created automatically (from a deleted Linode; type=automatic) will expire.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID assigned to this Image.","description_kind":"plain","required":true},"is_public":{"type":"bool","description":"True if the Image is public.","description_kind":"plain","computed":true},"label":{"type":"string","description":"A short description of the Image. Labels cannot contain special characters.","description_kind":"plain","computed":true},"size":{"type":"number","description":"The minimum size this Image needs to deploy. Size is in MB.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The current status of this Image.","description_kind":"plain","computed":true},"type":{"type":"string","description":"How the Image was created. 'Manual' Images can be created at any time. 'Automatic' images are created automatically from a deleted Linode.","description_kind":"plain","computed":true},"vendor":{"type":"string","description":"The upstream distribution vendor. Nil for private Images.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_images":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"latest":{"type":"bool","description":"If true, only the latest image will be returned.","description_kind":"plain","optional":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"images":{"nesting_mode":"list","block":{"attributes":{"capabilities":{"type":["set","string"],"description":"The capabilities of this Image.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this Image was created.","description_kind":"plain","computed":true},"created_by":{"type":"string","description":"The name of the User who created this Image.","description_kind":"plain","computed":true},"deprecated":{"type":"bool","description":"Whether or not this Image is deprecated. Will only be True for deprecated public Images.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A detailed description of this Image.","description_kind":"plain","computed":true},"expiry":{"type":"string","description":"Only Images created automatically (from a deleted Linode; type=automatic) will expire.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID assigned to this Image.","description_kind":"plain","required":true},"is_public":{"type":"bool","description":"True if the Image is public.","description_kind":"plain","computed":true},"label":{"type":"string","description":"A short description of the Image. Labels cannot contain special characters.","description_kind":"plain","computed":true},"size":{"type":"number","description":"The minimum size this Image needs to deploy. Size is in MB.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The current status of this Image.","description_kind":"plain","computed":true},"type":{"type":"string","description":"How the Image was created. 'Manual' Images can be created at any time. 'Automatic' images are created automatically from a deleted Linode.","description_kind":"plain","computed":true},"vendor":{"type":"string","description":"The upstream distribution vendor. Nil for private Images.","description_kind":"plain","computed":true}},"description":"The returned list of Images.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_instance_backups":{"version":0,"block":{"attributes":{"automatic":{"type":["list",["object",{"available":"bool","configs":["list","string"],"created":"string","disks":["list",["object",{"filesystem":"string","label":"string","size":"number"}]],"finished":"string","id":"number","label":"string","status":"string","type":"string","updated":"string"}]],"description":"A list of backups or snapshots for a Linode.","description_kind":"plain","computed":true},"current":{"type":["list",["object",{"available":"bool","configs":["list","string"],"created":"string","disks":["list",["object",{"filesystem":"string","label":"string","size":"number"}]],"finished":"string","id":"number","label":"string","status":"string","type":"string","updated":"string"}]],"description":"The current Backup for a Linode.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the Backup","description_kind":"plain","computed":true},"in_progress":{"type":["list",["object",{"available":"bool","configs":["list","string"],"created":"string","disks":["list",["object",{"filesystem":"string","label":"string","size":"number"}]],"finished":"string","id":"number","label":"string","status":"string","type":"string","updated":"string"}]],"description":"The in-progress Backup for a Linode","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode to get backups for.","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_instance_networking":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"Unique identifier for this DataSource.","description_kind":"plain","computed":true},"ipv4":{"type":["list",["object",{"private":["list",["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string","vpc_nat_1_1":["object",{"address":"string","subnet_id":"number","vpc_id":"number"}]}]],"public":["list",["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string","vpc_nat_1_1":["object",{"address":"string","subnet_id":"number","vpc_id":"number"}]}]],"reserved":["list",["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string","vpc_nat_1_1":["object",{"address":"string","subnet_id":"number","vpc_id":"number"}]}]],"shared":["list",["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string","vpc_nat_1_1":["object",{"address":"string","subnet_id":"number","vpc_id":"number"}]}]],"vpc":["list",["object",{"active":"bool","address":"string","address_range":"string","config_id":"number","gateway":"string","interface_id":"number","linode_id":"number","nat_1_1":"string","prefix":"number","region":"string","subnet_id":"number","subnet_mask":"string","vpc_id":"number"}]]}]],"description":"Information about this Linode's IPv4 addresses.","description_kind":"plain","computed":true},"ipv6":{"type":["list",["object",{"global":["list",["object",{"prefix":"number","range":"string","region":"string","route_target":"string"}]],"link_local":["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string","vpc_nat_1_1":["object",{"address":"string","subnet_id":"number","vpc_id":"number"}]}],"slaac":["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string","vpc_nat_1_1":["object",{"address":"string","subnet_id":"number","vpc_id":"number"}]}]}]],"description":"Information about this Linode's IPv6 addresses.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode for network info.","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_instance_type":{"version":0,"block":{"attributes":{"addons":{"type":["list",["object",{"backups":["list",["object",{"price":["list",["object",{"hourly":"number","monthly":"number"}]],"region_prices":["list",["object",{"hourly":"number","id":"string","monthly":"number"}]]}]]}]],"description":"Information about the optional Backup service offered for Linodes.","description_kind":"plain","computed":true},"class":{"type":"string","description":"The class of the Linode Type. There are currently three classes of Linodes: nanode, standard, highmem, dedicated","description_kind":"plain","computed":true},"disk":{"type":"number","description":"The Disk size, in MB, of the Linode Type.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID assigned to this Instance type.","description_kind":"plain","required":true},"label":{"type":"string","description":"The Linode Type's label is for display purposes only.","description_kind":"plain","optional":true,"computed":true},"memory":{"type":"number","description":"Amount of RAM included in this Linode Type.","description_kind":"plain","computed":true},"network_out":{"type":"number","description":"The Mbits outbound bandwidth allocation.","description_kind":"plain","computed":true},"price":{"type":["list",["object",{"hourly":"number","monthly":"number"}]],"description":"Cost in US dollars, broken down into hourly and monthly charges.","description_kind":"plain","computed":true},"region_prices":{"type":["list",["object",{"hourly":"number","id":"string","monthly":"number"}]],"description":"A list of region-specific prices for this plan.","description_kind":"plain","computed":true},"transfer":{"type":"number","description":"The monthly outbound transfer amount, in MB.","description_kind":"plain","computed":true},"vcpus":{"type":"number","description":"The number of VCPU cores this Linode Type offers.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_instance_types":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"types":{"nesting_mode":"list","block":{"attributes":{"addons":{"type":["list",["object",{"backups":["list",["object",{"price":["list",["object",{"hourly":"number","monthly":"number"}]],"region_prices":["list",["object",{"hourly":"number","id":"string","monthly":"number"}]]}]]}]],"description":"Information about the optional Backup service offered for Linodes.","description_kind":"plain","computed":true},"class":{"type":"string","description":"The class of the Linode Type. There are currently three classes of Linodes: nanode, standard, highmem, dedicated","description_kind":"plain","computed":true},"disk":{"type":"number","description":"The Disk size, in MB, of the Linode Type.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID assigned to this Instance type.","description_kind":"plain","required":true},"label":{"type":"string","description":"The Linode Type's label is for display purposes only.","description_kind":"plain","optional":true,"computed":true},"memory":{"type":"number","description":"Amount of RAM included in this Linode Type.","description_kind":"plain","computed":true},"network_out":{"type":"number","description":"The Mbits outbound bandwidth allocation.","description_kind":"plain","computed":true},"price":{"type":["list",["object",{"hourly":"number","monthly":"number"}]],"description":"Cost in US dollars, broken down into hourly and monthly charges.","description_kind":"plain","computed":true},"region_prices":{"type":["list",["object",{"hourly":"number","id":"string","monthly":"number"}]],"description":"A list of region-specific prices for this plan.","description_kind":"plain","computed":true},"transfer":{"type":"number","description":"The monthly outbound transfer amount, in MB.","description_kind":"plain","computed":true},"vcpus":{"type":"number","description":"The number of VCPU cores this Linode Type offers.","description_kind":"plain","computed":true}},"description":"The returned list of instance types.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_instances":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instances":{"type":["list",["object",{"alerts":["list",["object",{"cpu":"number","io":"number","network_in":"number","network_out":"number","transfer_quota":"number"}]],"backups":["list",["object",{"available":"bool","enabled":"bool","schedule":["list",["object",{"day":"string","window":"string"}]]}]],"boot_config_label":"string","config":["list",["object",{"comments":"string","devices":["list",["object",{"sda":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]],"sdb":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]],"sdc":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]],"sdd":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]],"sde":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]],"sdf":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]],"sdg":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]],"sdh":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]]}]],"helpers":["list",["object",{"devtmpfs_automount":"bool","distro":"bool","modules_dep":"bool","network":"bool","updatedb_disabled":"bool"}]],"id":"number","interface":["list",["object",{"active":"bool","id":"number","ip_ranges":["list","string"],"ipam_address":"string","ipv4":["list",["object",{"nat_1_1":"string","vpc":"string"}]],"label":"string","primary":"bool","purpose":"string","subnet_id":"number","vpc_id":"number"}]],"kernel":"string","label":"string","memory_limit":"number","root_device":"string","run_level":"string","virt_mode":"string"}]],"disk":["list",["object",{"filesystem":"string","id":"number","label":"string","size":"number"}]],"group":"string","has_user_data":"bool","host_uuid":"string","id":"number","image":"string","ip_address":"string","ipv4":["set","string"],"ipv6":"string","label":"string","private_ip_address":"string","region":"string","specs":["list",["object",{"disk":"number","memory":"number","transfer":"number","vcpus":"number"}]],"status":"string","swap_size":"number","tags":["set","string"],"type":"string","watchdog_enabled":"bool"}]],"description":"The returned list of Instances.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"list","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["list","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_ipv6_range":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The unique ID for this DataSource","description_kind":"plain","computed":true},"is_bgp":{"type":"bool","description":"Whether this IPv6 range is shared.","description_kind":"plain","computed":true},"linodes":{"type":["set","number"],"description":"The IDs of Linodes to apply this firewall to.","description_kind":"plain","computed":true},"prefix":{"type":"number","description":"The prefix length of the address, denoting how many addresses can be assigned from this range.","description_kind":"plain","computed":true},"range":{"type":"string","description":"The IPv6 range to retrieve information about.","description_kind":"plain","required":true},"region":{"type":"string","description":"The region for this range of IPv6 addresses.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_ipv6_ranges":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"ranges":{"nesting_mode":"list","block":{"attributes":{"prefix":{"type":"number","description":"The prefix length of the address, denoting how many addresses can be assigned from this range.","description_kind":"plain","computed":true},"range":{"type":"string","description":"The IPv6 address of this range.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region for this range of IPv6 addresses.","description_kind":"plain","computed":true},"route_target":{"type":"string","description":"The IPv6 SLAAC address.","description_kind":"plain","computed":true}},"description":"The return list of IPv6 ranges.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_kernel":{"version":0,"block":{"attributes":{"architecture":{"type":"string","description":"The architecture of this Kernel.","description_kind":"plain","computed":true},"built":{"type":"string","description":"The date on which this Kernel was built.","description_kind":"plain","computed":true},"deprecated":{"type":"bool","description":"Whether or not this Kernel is deprecated.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID of this Kernel.","description_kind":"plain","required":true},"kvm":{"type":"bool","description":"If this Kernel is suitable for KVM Linodes.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The friendly name of this Kernel.","description_kind":"plain","computed":true},"pvops":{"type":"bool","description":"If this Kernel is suitable for paravirtualized operations.","description_kind":"plain","computed":true},"version":{"type":"string","description":"Linux Kernel version.","description_kind":"plain","computed":true},"xen":{"type":"bool","description":"If this Kernel is suitable for Xen Linodes.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_kernels":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"kernels":{"nesting_mode":"list","block":{"attributes":{"architecture":{"type":"string","description":"The architecture of this Kernel.","description_kind":"plain","computed":true},"built":{"type":"string","description":"The date on which this Kernel was built.","description_kind":"plain","computed":true},"deprecated":{"type":"bool","description":"Whether or not this Kernel is deprecated.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID of this Kernel.","description_kind":"plain","required":true},"kvm":{"type":"bool","description":"If this Kernel is suitable for KVM Linodes.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The friendly name of this Kernel.","description_kind":"plain","computed":true},"pvops":{"type":"bool","description":"If this Kernel is suitable for paravirtualized operations.","description_kind":"plain","computed":true},"version":{"type":"string","description":"Linux Kernel version.","description_kind":"plain","computed":true},"xen":{"type":"bool","description":"If this Kernel is suitable for Xen Linodes.","description_kind":"plain","computed":true}},"description":"The returned list of Kernels.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_lke_cluster":{"version":0,"block":{"attributes":{"api_endpoints":{"type":["list","string"],"description":"The API endpoints for the cluster.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this Kubernetes cluster was created.","description_kind":"plain","computed":true},"dashboard_url":{"type":"string","description":"The dashboard URL of the cluster.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID of this LKE Cluster.","description_kind":"plain","required":true},"k8s_version":{"type":"string","description":"The desired Kubernetes version for this Kubernetes cluster in the format of \u003cmajor\u003e.\u003cminor\u003e. The latest supported patch version will be deployed.","description_kind":"plain","computed":true},"kubeconfig":{"type":"string","description":"The Base64-encoded Kubeconfig for the cluster.","description_kind":"plain","computed":true,"sensitive":true},"label":{"type":"string","description":"The unique label for the cluster.","description_kind":"plain","computed":true},"region":{"type":"string","description":"This cluster's location.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the cluster.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Kubernetes cluster was updated.","description_kind":"plain","computed":true}},"block_types":{"control_plane":{"nesting_mode":"list","block":{"attributes":{"high_availability":{"type":"bool","description":"Defines whether High Availability is enabled for the Control Plane Components of the cluster.","description_kind":"plain","computed":true}},"block_types":{"acl":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"The default policy. A value of true means a default policy of DENY. A value of false means default policy of ALLOW.","description_kind":"plain","computed":true}},"block_types":{"addresses":{"nesting_mode":"list","block":{"attributes":{"ipv4":{"type":["set","string"],"description":"A set of individual ipv4 addresses or CIDRs allowed.","description_kind":"plain","computed":true},"ipv6":{"type":["set","string"],"description":"A set of individual ipv6 addresses or CIDRs allowed.","description_kind":"plain","computed":true}},"description":"A list of ip addresses allowed.","description_kind":"plain"}}},"description":"The ACL configuration for an LKE cluster's control plane.","description_kind":"plain"}}},"description":"Defines settings for the Kubernetes Control Plane.","description_kind":"plain"}},"pools":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The number of nodes in the Node Pool.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the Node Pool.","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"type":{"type":"string","description":"A Linode Type for all of the nodes in the Node Pool.","description_kind":"plain","computed":true}},"block_types":{"autoscaler":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether autoscaling is enabled for this Node Pool. Defaults to false.","description_kind":"plain","computed":true},"max":{"type":"number","description":"The maximum number of nodes to autoscale to. Defaults to the Node Pool’s count.","description_kind":"plain","computed":true},"min":{"type":"number","description":"The minimum number of nodes to autoscale to. Defaults to the Node Pool’s count.","description_kind":"plain","computed":true}},"description":"When specified, the number of nodes autoscales within the defined minimum and maximum values.","description_kind":"plain"}},"disks":{"nesting_mode":"list","block":{"attributes":{"size":{"type":"number","description":"The size of this custom disk partition in MB.","description_kind":"plain","computed":true},"type":{"type":"string","description":"This custom disk partition’s filesystem type.","description_kind":"plain","computed":true}},"description":"This Node Pool’s custom disk layout.","description_kind":"plain"}},"nodes":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"The ID of the node.","description_kind":"plain","computed":true},"instance_id":{"type":"number","description":"The ID of the underlying Linode instance.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the node.","description_kind":"plain","computed":true}},"description":"The nodes in the node pool.","description_kind":"plain"}}},"description":"All active Node Pools on the cluster.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_lke_clusters":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"lke_clusters":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"When this Kubernetes cluster was created.","description_kind":"plain","computed":true},"id":{"type":"number","description":"This Kubernetes cluster’s unique ID.","description_kind":"plain","computed":true},"k8s_version":{"type":"string","description":"The desired Kubernetes version for this Kubernetes cluster in the format of \u003cmajor\u003e.\u003cminor\u003e. The latest supported patch version will be deployed.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The unique label for the cluster.","description_kind":"plain","computed":true},"region":{"type":"string","description":"This cluster's location.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the cluster.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Kubernetes cluster was updated.","description_kind":"plain","computed":true}},"block_types":{"control_plane":{"nesting_mode":"single","block":{"attributes":{"high_availability":{"type":"bool","description":"Defines whether High Availability is enabled for the Control Plane Components of the cluster.","description_kind":"plain","computed":true}},"description":"Defines settings for the Kubernetes Control Plane.","description_kind":"plain"}}},"description":"The returned list of LKE clusters available on the account.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_lke_versions":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"Unique identification field for this list of LKE Versions.","description_kind":"plain","computed":true},"versions":{"type":["list",["object",{"id":"string"}]],"description":"The Kubernetes version numbers available for deployment to a Kubernetes cluster.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_networking_ip":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The IP address.","description_kind":"plain","required":true},"gateway":{"type":"string","description":"The default gateway for this address.","description_kind":"plain","computed":true},"id":{"type":"string","description":"A unique identifier for this datasource.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode this address currently belongs to.","description_kind":"plain","computed":true},"prefix":{"type":"number","description":"The number of bits set in the subnet mask.","description_kind":"plain","computed":true},"public":{"type":"bool","description":"Whether this is a public or private IP address.","description_kind":"plain","computed":true},"rdns":{"type":"string","description":"The reverse DNS assigned to this address. For public IPv4 addresses, this will be set to a default value provided by Linode if not explicitly set.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The Region this IP address resides in.","description_kind":"plain","computed":true},"subnet_mask":{"type":"string","description":"The mask that separates host bits from network bits for this address.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of address this is (ipv4, ipv6, ipv6/pool, ipv6/range).","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_nodebalancer":{"version":1,"block":{"attributes":{"client_conn_throttle":{"type":"number","description":"Throttle connections per second (0-20). Set to 0 (zero) to disable throttling.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this NodeBalancer was created.","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"This NodeBalancer's hostname, ending with .nodebalancer.linode.com","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID of the Linode NodeBalancer.","description_kind":"plain","required":true},"ipv4":{"type":"string","description":"The Public IPv4 Address of this NodeBalancer","description_kind":"plain","computed":true},"ipv6":{"type":"string","description":"The Public IPv6 Address of this NodeBalancer","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the Linode NodeBalancer.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region where this NodeBalancer will be deployed.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"transfer":{"type":["list",["object",{"in":"number","out":"number","total":"number"}]],"description":"Information about the amount of transfer this NodeBalancer has had so far this month.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this NodeBalancer was last updated.","description_kind":"plain","computed":true}},"block_types":{"firewalls":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"When this Firewall was created.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID assigned to this Firewall.","description_kind":"plain","computed":true},"inbound_policy":{"type":"string","description":"The default behavior for inbound traffic.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.","description_kind":"plain","computed":true},"outbound_policy":{"type":"string","description":"The default behavior for outbound traffic.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the firewall.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Firewall was last updated.","description_kind":"plain","computed":true}},"block_types":{"inbound":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP).","description_kind":"plain","computed":true},"ipv4":{"type":["set","string"],"description":"A list of IPv4 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"ipv6":{"type":["set","string"],"description":"A list of IPv6 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of this rule for display purposes only.","description_kind":"plain","computed":true},"ports":{"type":"string","description":"A string representation of ports and/or port ranges (i.e. \"443\" or \"80-90, 91\").","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The network protocol this rule controls. (TCP, UDP, ICMP)","description_kind":"plain","computed":true}},"description":"A set of firewall rules that specify what inbound network traffic is allowed.","description_kind":"plain"}},"outbound":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP).","description_kind":"plain","computed":true},"ipv4":{"type":["set","string"],"description":"A list of IPv4 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"ipv6":{"type":["set","string"],"description":"A list of IPv6 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of this rule for display purposes only.","description_kind":"plain","computed":true},"ports":{"type":"string","description":"A string representation of ports and/or port ranges (i.e. \"443\" or \"80-90, 91\").","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The network protocol this rule controls. (TCP, UDP, ICMP)","description_kind":"plain","computed":true}},"description":"A set of firewall rules that specify what outbound network traffic is allowed.","description_kind":"plain"}}},"description":"A list of Firewalls assigned to this NodeBalancer.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_nodebalancer_config":{"version":1,"block":{"attributes":{"algorithm":{"type":"string","description":"What algorithm this NodeBalancer should use for routing traffic to backends: roundrobin, leastconn, source","description_kind":"plain","computed":true},"check":{"type":"string","description":"The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. If none no check is performed. connection requires only a connection to the backend to succeed. http and http_body rely on the backend serving HTTP, and that the response returned matches what is expected.","description_kind":"plain","computed":true},"check_attempts":{"type":"number","description":"How many times to attempt a check before considering a backend to be down. (1-30)","description_kind":"plain","computed":true},"check_body":{"type":"string","description":"This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down","description_kind":"plain","computed":true},"check_interval":{"type":"number","description":"How often, in seconds, to check that backends are up and serving requests.","description_kind":"plain","computed":true},"check_passive":{"type":"bool","description":"If true, any response from this backend with a 5xx status code will be enough for it to be considered unhealthy and taken out of rotation.","description_kind":"plain","computed":true},"check_path":{"type":"string","description":"The URL path to check on each backend. If the backend does not respond to this request it is considered to be down.","description_kind":"plain","computed":true},"check_timeout":{"type":"number","description":"How long, in seconds, to wait for a check attempt before considering it failed. (1-30)","description_kind":"plain","computed":true},"cipher_suite":{"type":"string","description":"What ciphers to use for SSL connections served by this NodeBalancer. `legacy` is considered insecure and should only be used if necessary.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the NodeBalancer config.","description_kind":"plain","required":true},"node_status":{"type":["list",["object",{"down":"number","up":"number"}]],"description":"A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends.","description_kind":"plain","computed":true},"nodebalancer_id":{"type":"number","description":"The ID of the NodeBalancer to access.","description_kind":"plain","required":true},"port":{"type":"number","description":"The TCP port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443.","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The protocol this port is configured to serve. If this is set to https you must include an ssl_cert and an ssl_key.","description_kind":"plain","computed":true},"proxy_protocol":{"type":"string","description":"The version of ProxyProtocol to use for the underlying NodeBalancer. This requires protocol to be `tcp`. Valid values are `none`, `v1`, and `v2`.","description_kind":"plain","computed":true},"ssl_commonname":{"type":"string","description":"The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.","description_kind":"plain","computed":true},"ssl_fingerprint":{"type":"string","description":"The read-only fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.","description_kind":"plain","computed":true},"stickiness":{"type":"string","description":"Controls how session stickiness is handled on this port: 'none', 'table', 'http_cookie'","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_nodebalancer_configs":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"nodebalancer_id":{"type":"number","description":"The ID of the NodeBalancer to access.","description_kind":"plain","required":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"nodebalancer_configs":{"nesting_mode":"list","block":{"attributes":{"algorithm":{"type":"string","description":"What algorithm this NodeBalancer should use for routing traffic to backends: roundrobin, leastconn, source","description_kind":"plain","computed":true},"check":{"type":"string","description":"The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. If none no check is performed. connection requires only a connection to the backend to succeed. http and http_body rely on the backend serving HTTP, and that the response returned matches what is expected.","description_kind":"plain","computed":true},"check_attempts":{"type":"number","description":"How many times to attempt a check before considering a backend to be down. (1-30)","description_kind":"plain","computed":true},"check_body":{"type":"string","description":"This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down","description_kind":"plain","computed":true},"check_interval":{"type":"number","description":"How often, in seconds, to check that backends are up and serving requests.","description_kind":"plain","computed":true},"check_passive":{"type":"bool","description":"If true, any response from this backend with a 5xx status code will be enough for it to be considered unhealthy and taken out of rotation.","description_kind":"plain","computed":true},"check_path":{"type":"string","description":"The URL path to check on each backend. If the backend does not respond to this request it is considered to be down.","description_kind":"plain","computed":true},"check_timeout":{"type":"number","description":"How long, in seconds, to wait for a check attempt before considering it failed. (1-30)","description_kind":"plain","computed":true},"cipher_suite":{"type":"string","description":"What ciphers to use for SSL connections served by this NodeBalancer. `legacy` is considered insecure and should only be used if necessary.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the NodeBalancer config.","description_kind":"plain","required":true},"node_status":{"type":["list",["object",{"down":"number","up":"number"}]],"description":"A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends.","description_kind":"plain","computed":true},"nodebalancer_id":{"type":"number","description":"The ID of the NodeBalancer to access.","description_kind":"plain","required":true},"port":{"type":"number","description":"The TCP port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443.","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The protocol this port is configured to serve. If this is set to https you must include an ssl_cert and an ssl_key.","description_kind":"plain","computed":true},"proxy_protocol":{"type":"string","description":"The version of ProxyProtocol to use for the underlying NodeBalancer. This requires protocol to be `tcp`. Valid values are `none`, `v1`, and `v2`.","description_kind":"plain","computed":true},"ssl_commonname":{"type":"string","description":"The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.","description_kind":"plain","computed":true},"ssl_fingerprint":{"type":"string","description":"The read-only fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.","description_kind":"plain","computed":true},"stickiness":{"type":"string","description":"Controls how session stickiness is handled on this port: 'none', 'table', 'http_cookie'","description_kind":"plain","computed":true}},"description":"The returned list of NodeBalancer Configs.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_nodebalancer_node":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The private IP Address and port (IP:PORT) where this backend can be reached. This must be a private IP address.","description_kind":"plain","computed":true},"config_id":{"type":"number","description":"The ID of the NodeBalancerConfig to access.","description_kind":"plain","required":true},"id":{"type":"number","description":"The ID of the NodeBalancer node.","description_kind":"plain","required":true},"label":{"type":"string","description":"The label for this node. This is for display purposes only.","description_kind":"plain","computed":true},"mode":{"type":"string","description":"The mode this NodeBalancer should use when sending traffic to this backend. If set to `accept` this backend is accepting traffic. If set to `reject` this backend will not receive traffic. If set to `drain` this backend will not receive new traffic, but connections already pinned to it will continue to be routed to it. If set to `backup` this backend will only accept traffic if all other nodes are down.","description_kind":"plain","computed":true},"nodebalancer_id":{"type":"number","description":"The ID of the NodeBalancer to access.","description_kind":"plain","required":true},"status":{"type":"string","description":"The current status of this node, based on the configured checks of its NodeBalancer Config. (unknown, UP, DOWN)","description_kind":"plain","computed":true},"weight":{"type":"number","description":"Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. (1-255)","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_nodebalancers":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"nodebalancers":{"nesting_mode":"list","block":{"attributes":{"client_conn_throttle":{"type":"number","description":"Throttle connections per second (0-20). Set to 0 (zero) to disable throttling.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this NodeBalancer was created.","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"This NodeBalancer's hostname, ending with .nodebalancer.linode.com","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID of the Linode NodeBalancer.","description_kind":"plain","required":true},"ipv4":{"type":"string","description":"The Public IPv4 Address of this NodeBalancer","description_kind":"plain","computed":true},"ipv6":{"type":"string","description":"The Public IPv6 Address of this NodeBalancer","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the Linode NodeBalancer.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region where this NodeBalancer will be deployed.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"transfer":{"type":["list",["object",{"in":"number","out":"number","total":"number"}]],"description":"Information about the amount of transfer this NodeBalancer has had so far this month.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this NodeBalancer was last updated.","description_kind":"plain","computed":true}},"description":"The returned list of NodeBalancers.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_object_storage_bucket":{"version":0,"block":{"attributes":{"cluster":{"type":"string","description":"The ID of the Object Storage Cluster this bucket is in.","description_kind":"plain","optional":true,"computed":true},"created":{"type":"string","description":"When this bucket was created.","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"The hostname where this bucket can be accessed.This hostname can be accessed through a browser if the bucket is made public.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The id of this bucket.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The name of this bucket.","description_kind":"plain","required":true},"objects":{"type":"number","description":"The number of objects stored in this bucket.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The ID of the region this bucket is in.","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description":"The size of the bucket in bytes.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_object_storage_cluster":{"version":0,"block":{"attributes":{"domain":{"type":"string","description":"The base URL for this cluster.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID of this Cluster.","description_kind":"plain","required":true},"region":{"type":"string","description":"The region this cluster is located in.","description_kind":"plain","computed":true},"static_site_domain":{"type":"string","description":"The base URL for this cluster used when hosting static sites.","description_kind":"plain","computed":true},"status":{"type":"string","description":"This cluster's status.","description_kind":"plain","computed":true}},"description_kind":"plain","deprecated":true}},"linode_placement_group":{"version":0,"block":{"attributes":{"id":{"type":"number","description":"The ID of the placement group.","description_kind":"plain","required":true},"is_compliant":{"type":"bool","description":"Whether all Linodes in this group are currently compliant with the group's placement group type.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the placement group.","description_kind":"plain","computed":true},"placement_group_policy":{"type":"string","description":"Whether Linodes must be able to become compliant during assignment.","description_kind":"plain","computed":true},"placement_group_type":{"type":"string","description":"The placement group type for Linodes in a placement group","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region that the placement group is in.","description_kind":"plain","computed":true}},"block_types":{"members":{"nesting_mode":"set","block":{"attributes":{"is_compliant":{"type":"bool","description":"Whether this Linode is currently compliant with the group's placement group type.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode.","description_kind":"plain","computed":true}},"description":"A list of Linodes assigned to a placement group.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_placement_groups":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"placement_groups":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"number","description":"The ID of the placement group.","description_kind":"plain","required":true},"is_compliant":{"type":"bool","description":"Whether all Linodes in this group are currently compliant with the group's placement group type.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the placement group.","description_kind":"plain","computed":true},"placement_group_policy":{"type":"string","description":"Whether Linodes must be able to become compliant during assignment.","description_kind":"plain","computed":true},"placement_group_type":{"type":"string","description":"The placement group type for Linodes in a placement group","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region that the placement group is in.","description_kind":"plain","computed":true}},"block_types":{"members":{"nesting_mode":"set","block":{"attributes":{"is_compliant":{"type":"bool","description":"Whether this Linode is currently compliant with the group's placement group type.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode.","description_kind":"plain","computed":true}},"description":"A list of Linodes assigned to a placement group.","description_kind":"plain"}}},"description":"The returned list of Placement Groups.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_profile":{"version":0,"block":{"attributes":{"authorized_keys":{"type":["list","string"],"description":"The list of SSH Keys authorized to use Lish for this user. This value is ignored if lish_auth_method is 'disabled'.","description_kind":"plain","computed":true},"email":{"type":"string","description":"The profile email address. This address will be used for communication with Linode as necessary.","description_kind":"plain","computed":true},"email_notifications":{"type":"bool","description":"If true, email notifications will be sent about account activity. If false, when false business-critical communications may still be sent through email.","description_kind":"plain","computed":true},"id":{"type":"string","description":"Unique identification field for this datasource.","description_kind":"plain","computed":true},"ip_whitelist_enabled":{"type":"bool","description":"If true, logins for the user will only be allowed from whitelisted IPs. This setting is currently deprecated, and cannot be enabled.","description_kind":"plain","computed":true},"lish_auth_method":{"type":"string","description":"The methods of authentication allowed when connecting via Lish. 'keys_only' is the most secure with the intent to use Lish, and 'disabled' is recommended for users that will not use Lish at all.","description_kind":"plain","computed":true},"referrals":{"type":["list",["object",{"code":"string","completed":"number","credit":"number","pending":"number","total":"number","url":"string"}]],"description":"Credit Card information associated with this Account.","description_kind":"plain","computed":true},"restricted":{"type":"bool","description":"If true, the user has restrictions on what can be accessed on the Account.","description_kind":"plain","computed":true},"timezone":{"type":"string","description":"The profile's preferred timezone. This is not used by the API, and is for the benefit of clients only. All times the API returns are in UTC.","description_kind":"plain","computed":true},"two_factor_auth":{"type":"bool","description":"If true, logins from untrusted computers will require Two Factor Authentication.","description_kind":"plain","computed":true},"username":{"type":"string","description":"The username for logging in to Linode services.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_region":{"version":0,"block":{"attributes":{"capabilities":{"type":["set","string"],"description":"A list of capabilities of this region.","description_kind":"plain","computed":true},"country":{"type":"string","description":"The country where this Region resides.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID of this Region.","description_kind":"plain","required":true},"label":{"type":"string","description":"Detailed location information for this Region, including city, state or region, and country.","description_kind":"plain","computed":true},"placement_group_limits":{"type":["list",["object",{"maximum_linodes_per_pg":"number","maximum_pgs_per_customer":"number"}]],"description":"Information about placement groups limits for this region.","description_kind":"plain","computed":true},"site_type":{"type":"string","description":"The type of this Region.","description_kind":"plain","computed":true},"status":{"type":"string","description":"This region’s current operational status.","description_kind":"plain","computed":true}},"block_types":{"resolvers":{"nesting_mode":"list","block":{"attributes":{"ipv4":{"type":"string","description":"The IPv4 addresses for this region’s DNS resolvers, separated by commas.","description_kind":"plain","computed":true},"ipv6":{"type":"string","description":"The IPv6 addresses for this region’s DNS resolvers, separated by commas.","description_kind":"plain","computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_regions":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"regions":{"nesting_mode":"list","block":{"attributes":{"capabilities":{"type":["set","string"],"description":"A list of capabilities of this region.","description_kind":"plain","computed":true},"country":{"type":"string","description":"The country where this Region resides.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID of this Region.","description_kind":"plain","required":true},"label":{"type":"string","description":"Detailed location information for this Region, including city, state or region, and country.","description_kind":"plain","computed":true},"placement_group_limits":{"type":["list",["object",{"maximum_linodes_per_pg":"number","maximum_pgs_per_customer":"number"}]],"description":"Information about placement groups limits for this region.","description_kind":"plain","computed":true},"site_type":{"type":"string","description":"The type of this Region.","description_kind":"plain","computed":true},"status":{"type":"string","description":"This region’s current operational status.","description_kind":"plain","computed":true}},"block_types":{"resolvers":{"nesting_mode":"list","block":{"attributes":{"ipv4":{"type":"string","description":"The IPv4 addresses for this region’s DNS resolvers, separated by commas.","description_kind":"plain","computed":true},"ipv6":{"type":"string","description":"The IPv6 addresses for this region’s DNS resolvers, separated by commas.","description_kind":"plain","computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_sshkey":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The date this key was added.","description_kind":"plain","computed":true},"id":{"type":"string","description":"A unique identifier for this datasource.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The label of the Linode SSH Key.","description_kind":"plain","required":true},"ssh_key":{"type":"string","description":"The public SSH Key, which is used to authenticate to the root user of the Linodes you deploy.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_sshkeys":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"sshkeys":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"The date this key was added.","description_kind":"plain","computed":true},"id":{"type":"string","description":"A unique identifier for this datasource.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The label of the Linode SSH Key.","description_kind":"plain","required":true},"ssh_key":{"type":"string","description":"The public SSH Key, which is used to authenticate to the root user of the Linodes you deploy.","description_kind":"plain","computed":true}},"description":"The returned list of SSH Keys.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_stackscript":{"version":1,"block":{"attributes":{"created":{"type":"string","description":"The date this StackScript was created.","description_kind":"plain","computed":true},"deployments_active":{"type":"number","description":"Count of currently active, deployed Linodes created from this StackScript.","description_kind":"plain","computed":true},"deployments_total":{"type":"number","description":"The total number of times this StackScript has been deployed.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A description for the StackScript.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The StackScript's unique ID.","description_kind":"plain","required":true},"images":{"type":["set","string"],"description":"An array of Image IDs representing the Images that this StackScript is compatible for deploying with.","description_kind":"plain","computed":true},"is_public":{"type":"bool","description":"This determines whether other users can use your StackScript. Once a StackScript is made public, it cannot be made private.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The StackScript's label is for display purposes only.","description_kind":"plain","computed":true},"rev_note":{"type":"string","description":"This field allows you to add notes for the set of revisions made to this StackScript.","description_kind":"plain","computed":true},"script":{"type":"string","description":"The script to execute when provisioning a new Linode with this StackScript.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"The date this StackScript was updated.","description_kind":"plain","computed":true},"user_defined_fields":{"type":["list",["object",{"default":"string","example":"string","label":"string","many_of":"string","name":"string","one_of":"string"}]],"description":"This is a list of fields defined with a special syntax inside this StackScript that allow for supplying customized parameters during deployment.","description_kind":"plain","computed":true},"user_gravatar_id":{"type":"string","description":"The Gravatar ID for the User who created the StackScript.","description_kind":"plain","computed":true},"username":{"type":"string","description":"The User who created the StackScript.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_stackscripts":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"latest":{"type":"bool","description":"If true, only the latest StackScript will be returned.","description_kind":"plain","optional":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"stackscripts":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"The date this StackScript was created.","description_kind":"plain","computed":true},"deployments_active":{"type":"number","description":"Count of currently active, deployed Linodes created from this StackScript.","description_kind":"plain","computed":true},"deployments_total":{"type":"number","description":"The total number of times this StackScript has been deployed.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A description for the StackScript.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The StackScript's unique ID.","description_kind":"plain","required":true},"images":{"type":["set","string"],"description":"An array of Image IDs representing the Images that this StackScript is compatible for deploying with.","description_kind":"plain","computed":true},"is_public":{"type":"bool","description":"This determines whether other users can use your StackScript. Once a StackScript is made public, it cannot be made private.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The StackScript's label is for display purposes only.","description_kind":"plain","computed":true},"rev_note":{"type":"string","description":"This field allows you to add notes for the set of revisions made to this StackScript.","description_kind":"plain","computed":true},"script":{"type":"string","description":"The script to execute when provisioning a new Linode with this StackScript.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"The date this StackScript was updated.","description_kind":"plain","computed":true},"user_defined_fields":{"type":["list",["object",{"default":"string","example":"string","label":"string","many_of":"string","name":"string","one_of":"string"}]],"description":"This is a list of fields defined with a special syntax inside this StackScript that allow for supplying customized parameters during deployment.","description_kind":"plain","computed":true},"user_gravatar_id":{"type":"string","description":"The Gravatar ID for the User who created the StackScript.","description_kind":"plain","computed":true},"username":{"type":"string","description":"The User who created the StackScript.","description_kind":"plain","computed":true}},"description":"The returned list of StackScripts.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_user":{"version":0,"block":{"attributes":{"database_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"domain_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"email":{"type":"string","description":"The email address for this User, for account management communications, and may be used for other communications as configured.","description_kind":"plain","computed":true},"firewall_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"global_grants":{"type":["list",["object",{"account_access":"string","add_databases":"bool","add_domains":"bool","add_firewalls":"bool","add_images":"bool","add_linodes":"bool","add_longview":"bool","add_nodebalancers":"bool","add_stackscripts":"bool","add_volumes":"bool","cancel_account":"bool","longview_subscription":"bool"}]],"description":"A structure containing the Account-level grants a User has.","description_kind":"plain","computed":true},"id":{"type":"string","description":"Unique identifier for this DataSource.","description_kind":"plain","computed":true},"image_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"linode_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"longview_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"nodebalancer_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"password_created":{"type":"string","description":"The date and time when this User’s current password was created.User passwords are first created during the Account sign-up process, and updated using the Reset Password webpage.null if this User has not created a password yet.","description_kind":"plain","computed":true},"restricted":{"type":"bool","description":"If true, this User must be granted access to perform actions or access entities on this Account.","description_kind":"plain","computed":true},"ssh_keys":{"type":["list","string"],"description":"A list of SSH Key labels added by this User. These are the keys that will be deployed if this User is included in the authorized_users field of a create Linode, rebuild Linode, or create Disk request.","description_kind":"plain","computed":true},"stackscript_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"tfa_enabled":{"type":"bool","description":"A boolean value indicating if the User has Two Factor Authentication (TFA) enabled.","description_kind":"plain","computed":true},"user_type":{"type":"string","description":"The type of this user.","description_kind":"plain","computed":true},"username":{"type":"string","description":"This User's username. This is used for logging in, and may also be displayed alongside actions the User performs (for example, in Events or public StackScripts).","description_kind":"plain","required":true},"verified_phone_number":{"type":"string","description":"The phone number verified for this User Profile with the Phone Number Verify command.null if this User Profile has no verified phone number.","description_kind":"plain","computed":true},"volume_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"linode_users":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"users":{"nesting_mode":"list","block":{"attributes":{"database_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"domain_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"email":{"type":"string","description":"The email address for this User, for account management communications, and may be used for other communications as configured.","description_kind":"plain","computed":true},"firewall_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"global_grants":{"type":["list",["object",{"account_access":"string","add_databases":"bool","add_domains":"bool","add_firewalls":"bool","add_images":"bool","add_linodes":"bool","add_longview":"bool","add_nodebalancers":"bool","add_stackscripts":"bool","add_volumes":"bool","cancel_account":"bool","longview_subscription":"bool"}]],"description":"A structure containing the Account-level grants a User has.","description_kind":"plain","computed":true},"id":{"type":"string","description":"Unique identifier for this DataSource.","description_kind":"plain","computed":true},"image_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"linode_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"longview_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"nodebalancer_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"password_created":{"type":"string","description":"The date and time when this User’s current password was created.User passwords are first created during the Account sign-up process, and updated using the Reset Password webpage.null if this User has not created a password yet.","description_kind":"plain","computed":true},"restricted":{"type":"bool","description":"If true, this User must be granted access to perform actions or access entities on this Account.","description_kind":"plain","computed":true},"ssh_keys":{"type":["list","string"],"description":"A list of SSH Key labels added by this User. These are the keys that will be deployed if this User is included in the authorized_users field of a create Linode, rebuild Linode, or create Disk request.","description_kind":"plain","computed":true},"stackscript_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"tfa_enabled":{"type":"bool","description":"A boolean value indicating if the User has Two Factor Authentication (TFA) enabled.","description_kind":"plain","computed":true},"user_type":{"type":"string","description":"The type of this user.","description_kind":"plain","computed":true},"username":{"type":"string","description":"This User's username. This is used for logging in, and may also be displayed alongside actions the User performs (for example, in Events or public StackScripts).","description_kind":"plain","required":true},"verified_phone_number":{"type":"string","description":"The phone number verified for this User Profile with the Phone Number Verify command.null if this User Profile has no verified phone number.","description_kind":"plain","computed":true},"volume_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true}},"description":"The returned list of Users.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_vlans":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"vlans":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"When this VLAN was created.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The unique label of this VLAN.","description_kind":"plain","computed":true},"linodes":{"type":["set","number"],"description":"The Linodes currently attached to this VLAN.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region this VLAN is located in.","description_kind":"plain","computed":true}},"description":"The returned list of VLANs.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_volume":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"Datetime string representing when the Volume was created.","description_kind":"plain","computed":true},"filesystem_path":{"type":"string","description":"The full filesystem path for the Volume based on the Volume's label. Path is /dev/disk/by-id/scsi-0LinodeVolume + Volume label.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique id of this Volume.","description_kind":"plain","required":true},"label":{"type":"string","description":"The Volume's label. For display purposes only.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"If a Volume is attached to a specific Linode, the ID of that Linode will be displayed here.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The datacenter where this Volume is located.","description_kind":"plain","computed":true},"size":{"type":"number","description":"The size of this Volume in GiB.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the Volume. Can be one of active | creating | resizing | contact_support","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this Volume. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"Datetime string representing when the Volume was last updated.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_volumes":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"volumes":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"Datetime string representing when the Volume was created.","description_kind":"plain","computed":true},"filesystem_path":{"type":"string","description":"The full filesystem path for the Volume based on the Volume's label. Path is /dev/disk/by-id/scsi-0LinodeVolume + Volume label.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique id of this Volume.","description_kind":"plain","required":true},"label":{"type":"string","description":"The Volume's label. For display purposes only.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"If a Volume is attached to a specific Linode, the ID of that Linode will be displayed here.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The datacenter where this Volume is located.","description_kind":"plain","computed":true},"size":{"type":"number","description":"The size of this Volume in GiB.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the Volume. Can be one of active | creating | resizing | contact_support","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this Volume. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"Datetime string representing when the Volume was last updated.","description_kind":"plain","computed":true}},"description":"The return list of Volumes.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_vpc":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The date and time when the VPC was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"The user-defined description of this VPC.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The id of the VPC.","description_kind":"plain","required":true},"label":{"type":"string","description":"The label of the VPC.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region of the VPC.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"The date and time when the VPC was updated.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_vpc_subnet":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The date and time when the VPC Subnet was created.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The id of the VPC Subnet.","description_kind":"plain","required":true},"ipv4":{"type":"string","description":"The IPv4 range of this subnet in CIDR format.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the VPC Subnet.","description_kind":"plain","computed":true},"linodes":{"type":["list",["object",{"id":"number","interfaces":["list",["object",{"active":"bool","id":"number"}]]}]],"description_kind":"plain","computed":true},"updated":{"type":"string","description":"The date and time when the VPC Subnet was updated.","description_kind":"plain","computed":true},"vpc_id":{"type":"number","description":"The id of the parent VPC for this VPC Subnet","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_vpc_subnets":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"vpc_id":{"type":"number","description":"The id of the parent VPC for the list of VPC subnets","description_kind":"plain","required":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"vpc_subnets":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"The date and time when the VPC Subnet was created.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The id of the VPC Subnet.","description_kind":"plain","computed":true},"ipv4":{"type":"string","description":"The IPv4 range of this subnet in CIDR format.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the VPC Subnet.","description_kind":"plain","computed":true},"linodes":{"type":["list",["object",{"id":"number","interfaces":["list",["object",{"active":"bool","id":"number"}]]}]],"description_kind":"plain","computed":true},"updated":{"type":"string","description":"The date and time when the VPC Subnet was updated.","description_kind":"plain","computed":true}},"description":"The returned list of subnets under a VPC.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_vpcs":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"vpcs":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"The date and time when the VPC was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"The user-defined description of this VPC.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The id of the VPC.","description_kind":"plain","required":true},"label":{"type":"string","description":"The label of the VPC.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region of the VPC.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"The date and time when the VPC was updated.","description_kind":"plain","computed":true}},"description":"The returned list of VPCs.","description_kind":"plain"}}},"description_kind":"plain"}}}}}} +{"format_version":"1.0","provider_schemas":{"registry.terraform.io/linode/linode":{"provider":{"version":0,"block":{"attributes":{"api_version":{"type":"string","description":"The version of Linode API.","description_kind":"plain","optional":true},"config_path":{"type":"string","description":"The path to the Linode config file to use. (default `~/.config/linode`)","description_kind":"plain","optional":true},"config_profile":{"type":"string","description":"The Linode config profile to use. (default `default`)","description_kind":"plain","optional":true},"disable_internal_cache":{"type":"bool","description":"Disable the internal caching system that backs certain Linode API requests.","description_kind":"plain","optional":true},"event_poll_ms":{"type":"number","description":"The rate in milliseconds to poll for events.","description_kind":"plain","optional":true},"lke_event_poll_ms":{"type":"number","description":"The rate in milliseconds to poll for LKE events.","description_kind":"plain","optional":true},"lke_node_ready_poll_ms":{"type":"number","description":"The rate in milliseconds to poll for an LKE node to be ready.","description_kind":"plain","optional":true},"max_retry_delay_ms":{"type":"number","description":"Maximum delay in milliseconds before retrying a request.","description_kind":"plain","optional":true},"min_retry_delay_ms":{"type":"number","description":"Minimum delay in milliseconds before retrying a request.","description_kind":"plain","optional":true},"obj_access_key":{"type":"string","description":"The access key to be used in linode_object_storage_bucket and linode_object_storage_object.","description_kind":"plain","optional":true},"obj_bucket_force_delete":{"type":"bool","description":"If true, when deleting a linode_object_storage_bucket any objects and versions will be force deleted.","description_kind":"plain","optional":true},"obj_secret_key":{"type":"string","description":"The secret key to be used in linode_object_storage_bucket and linode_object_storage_object.","description_kind":"plain","optional":true,"sensitive":true},"obj_use_temp_keys":{"type":"bool","description":"If true, temporary object keys will be created implicitly at apply-time for the linode_object_storage_object and linode_object_sorage_bucket resource.","description_kind":"plain","optional":true},"skip_implicit_reboots":{"type":"bool","description":"If true, Linode Instances will not be rebooted on config and interface changes.","description_kind":"plain","optional":true},"skip_instance_delete_poll":{"type":"bool","description":"Skip waiting for a linode_instance resource to finish deleting.","description_kind":"plain","optional":true},"skip_instance_ready_poll":{"type":"bool","description":"Skip waiting for a linode_instance resource to be running.","description_kind":"plain","optional":true},"token":{"type":"string","description":"The token that allows you access to your Linode account","description_kind":"plain","optional":true},"ua_prefix":{"type":"string","description":"An HTTP User-Agent Prefix to prepend in API requests.","description_kind":"plain","optional":true},"url":{"type":"string","description":"The HTTP(S) API address of the Linode API to use.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"resource_schemas":{"linode_account_settings":{"version":0,"block":{"attributes":{"backups_enabled":{"type":"bool","description":"Account-wide backups default.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"The email of the current account.","description_kind":"plain","computed":true},"longview_subscription":{"type":"string","description":"The Longview Pro tier you are currently subscribed to.","description_kind":"plain","optional":true,"computed":true},"managed":{"type":"bool","description":"Enables monitoring for connectivity, response, and total request time.","description_kind":"plain","computed":true},"network_helper":{"type":"bool","description":"Enables network helper across all users by default for new Linodes and Linode Configs.","description_kind":"plain","optional":true,"computed":true},"object_storage":{"type":"string","description":"A string describing the status of this account's Object Storage service enrollment.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_database_access_controls":{"version":0,"block":{"attributes":{"allow_list":{"type":["set","string"],"description":"A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format.","description_kind":"plain","required":true},"database_id":{"type":"number","description":"The ID of the database to manage the allow list for.","description_kind":"plain","required":true},"database_type":{"type":"string","description":"The type of the database to manage the allow list for.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"linode_database_mysql":{"version":0,"block":{"attributes":{"allow_list":{"type":["set","string"],"description":"A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format.","description_kind":"plain","optional":true,"computed":true},"ca_cert":{"type":"string","description":"The base64-encoded SSL CA certificate for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"cluster_size":{"type":"number","description":"The number of Linode Instance nodes deployed to the Managed Database. Defaults to 1.","description_kind":"plain","optional":true},"created":{"type":"string","description":"When this Managed Database was created.","description_kind":"plain","computed":true},"encrypted":{"type":"bool","description":"Whether the Managed Databases is encrypted.","description_kind":"plain","optional":true},"engine":{"type":"string","description":"The Managed Database engine.","description_kind":"plain","computed":true},"engine_id":{"type":"string","description":"The Managed Database engine in engine/version format. (e.g. mysql/8.0.30)","description_kind":"plain","required":true},"host_primary":{"type":"string","description":"The primary host for the Managed Database.","description_kind":"plain","computed":true},"host_secondary":{"type":"string","description":"The secondary host for the Managed Database.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description":"A unique, user-defined string referring to the Managed Database.","description_kind":"plain","required":true},"region":{"type":"string","description":"The region to use for the Managed Database.","description_kind":"plain","required":true},"replication_type":{"type":"string","description":"The replication method used for the Managed Database.","description_kind":"plain","optional":true},"root_password":{"type":"string","description":"The randomly-generated root password for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"root_username":{"type":"string","description":"The root username for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"ssl_connection":{"type":"bool","description":"Whether to require SSL credentials to establish a connection to the Managed Database.","description_kind":"plain","optional":true},"status":{"type":"string","description":"The operating status of the Managed Database.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The Linode Instance type used by the Managed Database for its nodes.","description_kind":"plain","required":true},"updated":{"type":"string","description":"When this Managed Database was last updated.","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Managed Database engine version.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"updates":{"nesting_mode":"list","block":{"attributes":{"day_of_week":{"type":"string","description":"The day to perform maintenance.","description_kind":"plain","required":true},"duration":{"type":"number","description":"The maximum maintenance window time in hours.","description_kind":"plain","required":true},"frequency":{"type":"string","description":"Whether maintenance occurs on a weekly or monthly basis.","description_kind":"plain","required":true},"hour_of_day":{"type":"number","description":"The hour to begin maintenance based in UTC time.","description_kind":"plain","required":true},"week_of_month":{"type":"number","description":"The week of the month to perform monthly frequency updates. Required for monthly frequency updates.","description_kind":"plain","optional":true}},"description":"Configuration settings for automated patch update maintenance for the Managed Database.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"linode_database_postgresql":{"version":0,"block":{"attributes":{"allow_list":{"type":["set","string"],"description":"A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format.","description_kind":"plain","optional":true,"computed":true},"ca_cert":{"type":"string","description":"The base64-encoded SSL CA certificate for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"cluster_size":{"type":"number","description":"The number of Linode Instance nodes deployed to the Managed Database. Defaults to 1.","description_kind":"plain","optional":true},"created":{"type":"string","description":"When this Managed Database was created.","description_kind":"plain","computed":true},"encrypted":{"type":"bool","description":"Whether the Managed Databases is encrypted.","description_kind":"plain","optional":true},"engine":{"type":"string","description":"The Managed Database engine.","description_kind":"plain","computed":true},"engine_id":{"type":"string","description":"The Managed Database engine in engine/version format. (e.g. mysql/8.0.30)","description_kind":"plain","required":true},"host_primary":{"type":"string","description":"The primary host for the Managed Database.","description_kind":"plain","computed":true},"host_secondary":{"type":"string","description":"The secondary host for the Managed Database.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description":"A unique, user-defined string referring to the Managed Database.","description_kind":"plain","required":true},"port":{"type":"number","description":"The access port for this Managed Database.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region to use for the Managed Database.","description_kind":"plain","required":true},"replication_commit_type":{"type":"string","description":"The synchronization level of the replicating server.Must be `local` or `off` for the `asynch` replication type. Must be `on`, `remote_write`, or `remote_apply` for the `semi_synch` replication type.","description_kind":"plain","optional":true},"replication_type":{"type":"string","description":"The replication method used for the Managed Database. Must be `none` for a single node cluster. Must be `asynch` or `semi_synch` for a high availability cluster.","description_kind":"plain","optional":true},"root_password":{"type":"string","description":"The randomly-generated root password for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"root_username":{"type":"string","description":"The root username for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"ssl_connection":{"type":"bool","description":"Whether to require SSL credentials to establish a connection to the Managed Database.","description_kind":"plain","optional":true},"status":{"type":"string","description":"The operating status of the Managed Database.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The Linode Instance type used by the Managed Database for its nodes.","description_kind":"plain","required":true},"updated":{"type":"string","description":"When this Managed Database was last updated.","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Managed Database engine version.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"updates":{"nesting_mode":"list","block":{"attributes":{"day_of_week":{"type":"string","description":"The day to perform maintenance.","description_kind":"plain","required":true},"duration":{"type":"number","description":"The maximum maintenance window time in hours.","description_kind":"plain","required":true},"frequency":{"type":"string","description":"Whether maintenance occurs on a weekly or monthly basis.","description_kind":"plain","required":true},"hour_of_day":{"type":"number","description":"The hour to begin maintenance based in UTC time.","description_kind":"plain","required":true},"week_of_month":{"type":"number","description":"The week of the month to perform monthly frequency updates. Required for monthly frequency updates.","description_kind":"plain","optional":true}},"description":"Configuration settings for automated patch update maintenance for the Managed Database.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"linode_domain":{"version":0,"block":{"attributes":{"axfr_ips":{"type":["set","string"],"description":"The list of IPs that may perform a zone transfer for this Domain. This is potentially dangerous, and should be set to an empty list unless you intend to use it.","description_kind":"plain","optional":true},"description":{"type":"string","description":"A description for this Domain. This is for display purposes only.","description_kind":"plain","optional":true},"domain":{"type":"string","description":"The domain this Domain represents. These must be unique in our system; you cannot have two Domains representing the same domain.","description_kind":"plain","required":true},"expire_sec":{"type":"number","description":"The amount of time in seconds that may pass before this Domain is no longer Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","optional":true},"group":{"type":"string","description":"The group this Domain belongs to. This is for display purposes only.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"master_ips":{"type":["set","string"],"description":"The IP addresses representing the master DNS for this Domain.","description_kind":"plain","optional":true},"refresh_sec":{"type":"number","description":"The amount of time in seconds before this Domain should be refreshed. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","optional":true},"retry_sec":{"type":"number","description":"The interval, in seconds, at which a failed refresh should be retried. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","optional":true},"soa_email":{"type":"string","description":"Start of Authority email address. This is required for master Domains.","description_kind":"plain","optional":true},"status":{"type":"string","description":"Used to control whether this Domain is currently being rendered.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","optional":true,"computed":true},"ttl_sec":{"type":"number","description":"'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","optional":true},"type":{"type":"string","description":"If this Domain represents the authoritative source of information for the domain it describes, or if it is a read-only copy of a master (also called a slave).","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_domain_record":{"version":0,"block":{"attributes":{"domain_id":{"type":"number","description":"The ID of the Domain to access.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the subdomain being associated with an IP address. Generated for SRV records.","description_kind":"plain","optional":true,"computed":true},"port":{"type":"number","description":"The port this Record points to.","description_kind":"plain","optional":true},"priority":{"type":"number","description":"The priority of the target host. Lower values are preferred.","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"The protocol this Record's service communicates with. Only valid for SRV records.","description_kind":"plain","optional":true},"record_type":{"type":"string","description":"The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address.","description_kind":"plain","required":true},"service":{"type":"string","description":"The service this Record identified. Only valid for SRV records.","description_kind":"plain","optional":true},"tag":{"type":"string","description":"The tag portion of a CAA record. It is invalid to set this on other record types.","description_kind":"plain","optional":true},"target":{"type":"string","description":"The target for this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the address the named Domain should resolve to.","description_kind":"plain","required":true},"ttl_sec":{"type":"number","description":"'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","optional":true},"weight":{"type":"number","description":"The relative weight of this Record. Higher values are preferred.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"linode_firewall":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"When this firewall was created","description_kind":"plain","computed":true},"devices":{"type":["list",["object",{"entity_id":"number","id":"number","label":"string","type":"string","url":"string"}]],"description":"The devices associated with this firewall.","description_kind":"plain","computed":true},"disabled":{"type":"bool","description":"If true, the Firewall is inactive.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"The unique ID of this Object Storage key.","description_kind":"plain","computed":true},"inbound_policy":{"type":"string","description":"The default behavior for inbound traffic. This setting can be overridden by updating the inbound.action property for an individual Firewall Rule.","description_kind":"plain","required":true},"label":{"type":"string","description":"The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.","description_kind":"plain","required":true},"linodes":{"type":["set","number"],"description":"The IDs of Linodes to apply this firewall to.","description_kind":"plain","optional":true,"computed":true},"nodebalancers":{"type":["set","number"],"description":"The IDs of NodeBalancers to apply this firewall to.","description_kind":"plain","optional":true,"computed":true},"outbound_policy":{"type":"string","description":"The default behavior for outbound traffic. This setting can be overridden by updating the outbound.action property for an individual Firewall Rule.","description_kind":"plain","required":true},"status":{"type":"string","description":"The status of the firewall.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to the firewall. Tags are for organizational purposes only.","description_kind":"plain","optional":true,"computed":true},"updated":{"type":"string","description":"When this firewall was last updated","description_kind":"plain","computed":true}},"block_types":{"inbound":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule.","description_kind":"plain","required":true},"description":{"type":"string","description":"Used to describe this rule. For display purposes only.","description_kind":"plain","optional":true,"computed":true},"ipv4":{"type":["list","string"],"description":"A list of CIDR blocks or 0.0.0.0/0 (to allow all) this rule applies to.","description_kind":"plain","optional":true},"ipv6":{"type":["list","string"],"description":"A list of IPv6 addresses or networks this rule applies to.","description_kind":"plain","optional":true},"label":{"type":"string","description":"Used to identify this rule. For display purposes only.","description_kind":"plain","required":true},"ports":{"type":"string","description":"A string representation of ports and/or port ranges (i.e. \"443\" or \"80-90, 91\").","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"The network protocol this rule controls.","description_kind":"plain","required":true}},"description":"A firewall rule that specifies what inbound network traffic is allowed.","description_kind":"plain"}},"outbound":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule.","description_kind":"plain","required":true},"description":{"type":"string","description":"Used to describe this rule. For display purposes only.","description_kind":"plain","optional":true,"computed":true},"ipv4":{"type":["list","string"],"description":"A list of CIDR blocks or 0.0.0.0/0 (to allow all) this rule applies to.","description_kind":"plain","optional":true},"ipv6":{"type":["list","string"],"description":"A list of IPv6 addresses or networks this rule applies to.","description_kind":"plain","optional":true},"label":{"type":"string","description":"Used to identify this rule. For display purposes only.","description_kind":"plain","required":true},"ports":{"type":"string","description":"A string representation of ports and/or port ranges (i.e. \"443\" or \"80-90, 91\").","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"The network protocol this rule controls.","description_kind":"plain","required":true}},"description":"A firewall rule that specifies what outbound network traffic is allowed.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_firewall_device":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"When this Firewall Device was created.","description_kind":"plain","computed":true},"entity_id":{"type":"number","description":"The ID of the entity to create a Firewall device for.","description_kind":"plain","required":true},"entity_type":{"type":"string","description":"The type of the entity to create a Firewall device for.","description_kind":"plain","optional":true,"computed":true},"firewall_id":{"type":"number","description":"The ID of the Firewall to access.","description_kind":"plain","required":true},"id":{"type":"string","description":"The unique ID that represents the firewall device in the Terraform state.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Firewall Device was updated.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_image":{"version":0,"block":{"attributes":{"capabilities":{"type":["list","string"],"description":"The capabilities of this Image.","description_kind":"plain","computed":true},"cloud_init":{"type":"bool","description":"Whether this image supports cloud-init.","description_kind":"plain","optional":true,"computed":true},"created":{"type":"string","description":"When this Image was created.","description_kind":"plain","computed":true},"created_by":{"type":"string","description":"The name of the User who created this Image.","description_kind":"plain","computed":true},"deprecated":{"type":"bool","description":"Whether or not this Image is deprecated. Will only be True for deprecated public Images.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A detailed description of this Image.","description_kind":"plain","optional":true},"disk_id":{"type":"number","description":"The ID of the Linode Disk that this Image will be created from.","description_kind":"plain","optional":true},"expiry":{"type":"string","description":"Only Images created automatically (from a deleted Linode; type=automatic) will expire.","description_kind":"plain","computed":true},"file_hash":{"type":"string","description":"The MD5 hash of the image file.","description_kind":"plain","optional":true},"file_path":{"type":"string","description":"The name of the file to upload to this image.","description_kind":"plain","optional":true},"id":{"type":"string","description":"The ID of the Linode image.","description_kind":"plain","computed":true},"is_public":{"type":"bool","description":"True if the Image is public.","description_kind":"plain","computed":true},"label":{"type":"string","description":"A short description of the Image. Labels cannot contain special characters.","description_kind":"plain","required":true},"linode_id":{"type":"number","description":"The ID of the Linode that this Image will be created from.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region to upload to.","description_kind":"plain","optional":true},"replica_regions":{"type":["list","string"],"description":"A list of regions that customer wants to replicate this image in. At least one available region is required and only core regions allowed. Existing images in the regions not passed will be removed.","description_kind":"plain","optional":true},"replications":{"type":["list",["object",{"region":"string","status":"string"}]],"description":"A list of image replications region and corresponding status.","description_kind":"plain","computed":true},"size":{"type":"number","description":"The minimum size this Image needs to deploy. Size is in MB.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The current status of this Image.","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The customized tags for the image.","description_kind":"plain","optional":true,"computed":true},"total_size":{"type":"number","description":"The total size of the image in all available regions.","description_kind":"plain","computed":true},"type":{"type":"string","description":"How the Image was created. 'Manual' Images can be created at any time. 'Automatic' images are created automatically from a deleted Linode.","description_kind":"plain","computed":true},"vendor":{"type":"string","description":"The upstream distribution vendor. Nil for private Images.","description_kind":"plain","computed":true},"wait_for_replications":{"type":"bool","description":"Whether to wait for all image replications become `available`.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_instance":{"version":0,"block":{"attributes":{"authorized_keys":{"type":["list","string"],"description":"A list of SSH public keys to deploy for the root user on the newly created Linode. Only accepted if 'image' is provided.","description_kind":"plain","optional":true},"authorized_users":{"type":["list","string"],"description":"A list of Linode usernames. If the usernames have associated SSH keys, the keys will be appended to the `root` user's `~/.ssh/authorized_keys` file automatically. Only accepted if 'image' is provided.","description_kind":"plain","optional":true},"backup_id":{"type":"number","description":"A Backup ID from another Linode's available backups. Your User must have read_write access to that Linode, the Backup must have a status of successful, and the Linode must be deployed to the same region as the Backup. See /linode/instances/{linodeId}/backups for a Linode's available backups. This field and the image field are mutually exclusive.","description_kind":"plain","optional":true},"backups":{"type":["list",["object",{"available":"bool","enabled":"bool","schedule":["list",["object",{"day":"string","window":"string"}]]}]],"description":"Information about this Linode's backups status.","description_kind":"plain","computed":true},"backups_enabled":{"type":"bool","description":"If this field is set to true, the created Linode will automatically be enrolled in the Linode Backup service. This will incur an additional charge. The cost for the Backup service is dependent on the Type of Linode deployed.","description_kind":"plain","optional":true,"computed":true},"boot_config_label":{"type":"string","description":"The Label of the Instance Config that should be used to boot the Linode instance.","description_kind":"plain","optional":true,"computed":true},"booted":{"type":"bool","description_kind":"plain","optional":true,"computed":true},"disk_encryption":{"type":"string","description":"The disk encryption policy for this Instance. NOTE: Disk encryption may not currently be available to all users.","description_kind":"plain","optional":true,"computed":true},"firewall_id":{"type":"number","description":"The ID of the firewall applied to the Linode instance during creation.","description_kind":"plain","optional":true},"group":{"type":"string","description":"The display group of the Linode instance.","description_kind":"plain","deprecated":true,"optional":true},"has_user_data":{"type":"bool","description":"Whether or not this Instance was created with user-data.","description_kind":"plain","computed":true},"host_uuid":{"type":"string","description":"The Linode’s host machine, as a UUID.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image":{"type":"string","description":"An Image ID to deploy the Disk from. Official Linode Images start with linode/, while your Images start with private/. See /images for more information on the Images available for you to use.","description_kind":"plain","optional":true},"ip_address":{"type":"string","description":"This Linode's Public IPv4 Address. If there are multiple public IPv4 addresses on this Instance, an arbitrary address will be used for this field.","description_kind":"plain","computed":true},"ipv4":{"type":["set","string"],"description":"This Linode's IPv4 Addresses. Each Linode is assigned a single public IPv4 address upon creation, and may get a single private IPv4 address if needed. You may need to open a support ticket to get additional IPv4 addresses.","description_kind":"plain","computed":true},"ipv6":{"type":"string","description":"This Linode's IPv6 SLAAC addresses. This address is specific to a Linode, and may not be shared.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The Linode's label is for display purposes only. If no label is provided for a Linode, a default will be assigned","description_kind":"plain","optional":true,"computed":true},"lke_cluster_id":{"type":"number","description":"If applicable, the ID of the LKE cluster this Instance is a node of.","description_kind":"plain","computed":true},"migration_type":{"type":"string","description":"The type of migration to use for resize and migration operations.","description_kind":"plain","optional":true},"placement_group_externally_managed":{"type":"bool","description":"If true, this placement group's assignment is externally managed and will NOT be updated by this resource.","description_kind":"plain","optional":true},"private_ip":{"type":"bool","description":"If true, the created Linode will have private networking enabled, allowing use of the 192.168.128.0/17 network within the Linode's region.","description_kind":"plain","optional":true},"private_ip_address":{"type":"string","description":"This Linode's Private IPv4 Address. The regional private IP address range is 192.168.128/17 address shared by all Linode Instances in a region.","description_kind":"plain","computed":true},"region":{"type":"string","description":"This is the location where the Linode was deployed. This cannot be changed without opening a support ticket.","description_kind":"plain","required":true},"resize_disk":{"type":"bool","description":"If true, changes in Linode type will attempt to upsize or downsize implicitly created disks. This must be false if explicit disks are defined. This is an irreversible action as Linode disks cannot be automatically downsized.","description_kind":"plain","optional":true},"root_pass":{"type":"string","description":"The password that will be initially assigned to the 'root' user account.","description_kind":"plain","optional":true,"sensitive":true},"shared_ipv4":{"type":["set","string"],"description":"A set of IPv4 addresses to share with this Linode.","description_kind":"plain","optional":true,"computed":true},"specs":{"type":["list",["object",{"disk":"number","memory":"number","transfer":"number","vcpus":"number"}]],"description":"Information about the resources available to this Linode.","description_kind":"plain","computed":true},"stackscript_data":{"type":["map","string"],"description":"An object containing responses to any User Defined Fields present in the StackScript being deployed to this Linode. Only accepted if 'stackscript_id' is given. The required values depend on the StackScript being deployed.","description_kind":"plain","optional":true,"sensitive":true},"stackscript_id":{"type":"number","description":"The StackScript to deploy to the newly created Linode. If provided, 'image' must also be provided, and must be an Image that is compatible with this StackScript.","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the instance, indicating the current readiness state.","description_kind":"plain","computed":true},"swap_size":{"type":"number","description":"When deploying from an Image, this field is optional with a Linode API default of 512mb, otherwise it is ignored. This is used to set the swap disk size for the newly-created Linode.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The type of instance to be deployed, determining the price and size.","description_kind":"plain","optional":true},"watchdog_enabled":{"type":"bool","description":"The watchdog, named Lassie, is a Shutdown Watchdog that monitors your Linode and will reboot it if it powers off unexpectedly. It works by issuing a boot job when your Linode powers off without a shutdown job being responsible. To prevent a loop, Lassie will give up if there have been more than 5 boot jobs issued within 15 minutes.","description_kind":"plain","optional":true}},"block_types":{"alerts":{"nesting_mode":"list","block":{"attributes":{"cpu":{"type":"number","description":"The percentage of CPU usage required to trigger an alert. If the average CPU usage over two hours exceeds this value, we'll send you an alert. If this is set to 0, the alert is disabled.","description_kind":"plain","optional":true,"computed":true},"io":{"type":"number","description":"The amount of disk IO operation per second required to trigger an alert. If the average disk IO over two hours exceeds this value, we'll send you an alert. If set to 0, this alert is disabled.","description_kind":"plain","optional":true,"computed":true},"network_in":{"type":"number","description":"The amount of incoming traffic, in Mbit/s, required to trigger an alert. If the average incoming traffic over two hours exceeds this value, we'll send you an alert. If this is set to 0 (zero), the alert is disabled.","description_kind":"plain","optional":true,"computed":true},"network_out":{"type":"number","description":"The amount of outbound traffic, in Mbit/s, required to trigger an alert. If the average outbound traffic over two hours exceeds this value, we'll send you an alert. If this is set to 0 (zero), the alert is disabled.","description_kind":"plain","optional":true,"computed":true},"transfer_quota":{"type":"number","description":"The percentage of network transfer that may be used before an alert is triggered. When this value is exceeded, we'll alert you. If this is set to 0 (zero), the alert is disabled.","description_kind":"plain","optional":true,"computed":true}},"description":"Configuration options for alert triggers on this Linode.","description_kind":"plain"},"max_items":1},"config":{"nesting_mode":"list","block":{"attributes":{"comments":{"type":"string","description":"Optional field for arbitrary User comments on this Config.","description_kind":"plain","optional":true},"id":{"type":"number","description":"The unique ID of this Config.","description_kind":"plain","computed":true},"kernel":{"type":"string","description":"A Kernel ID to boot a Linode with. Default is based on image choice. (examples: linode/latest-64bit, linode/grub2, linode/direct-disk)","description_kind":"plain","optional":true},"label":{"type":"string","description":"The Config's label for display purposes. Also used by `boot_config_label`.","description_kind":"plain","required":true},"memory_limit":{"type":"number","description":"Defaults to the total RAM of the Linode","description_kind":"plain","optional":true},"root_device":{"type":"string","description":"The root device to boot. The corresponding disk must be attached.","description_kind":"plain","optional":true,"computed":true},"run_level":{"type":"string","description":"Defines the state of your Linode after booting. Defaults to default.","description_kind":"plain","optional":true},"virt_mode":{"type":"string","description":"Controls the virtualization mode. Defaults to paravirt.","description_kind":"plain","optional":true}},"block_types":{"devices":{"nesting_mode":"list","block":{"block_types":{"sda":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdb":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdc":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdd":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sde":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdf":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdg":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdh":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true,"computed":true},"disk_label":{"type":"string","description":"The `label` of the `disk` to map to this `device` slot.","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1}},"description":"Device sda-sdh can be either a Disk or Volume identified by disk_label or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"helpers":{"nesting_mode":"list","block":{"attributes":{"devtmpfs_automount":{"type":"bool","description":"Populates the /dev directory early during boot without udev. Defaults to false.","description_kind":"plain","optional":true},"distro":{"type":"bool","description":"Controls the behavior of the Linode Config's Distribution Helper setting.","description_kind":"plain","optional":true},"modules_dep":{"type":"bool","description":"Creates a modules dependency file for the Kernel you run.","description_kind":"plain","optional":true},"network":{"type":"bool","description":"Controls the behavior of the Linode Config's Network Helper setting, used to automatically configure additional IP addresses assigned to this instance.","description_kind":"plain","optional":true},"updatedb_disabled":{"type":"bool","description":"Disables updatedb cron job to avoid disk thrashing.","description_kind":"plain","optional":true}},"description":"Helpers enabled when booting to this Linode Config.","description_kind":"plain"},"max_items":1},"interface":{"nesting_mode":"list","block":{"attributes":{"active":{"type":"bool","description":"Whether this interface is currently booted and active.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the interface.","description_kind":"plain","computed":true},"ip_ranges":{"type":["list","string"],"description":"List of VPC IPs or IP ranges inside the VPC subnet.","description_kind":"plain","optional":true},"ipam_address":{"type":"string","description":"This Network Interface's private IP address in Classless Inter-Domain Routing (CIDR) notation.This attribute is only allowed for VLAN interfaces.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The name of the VALN. This attribute is required for VLAN interfaces. This attribute is only allowed for VLAN interfaces.","description_kind":"plain","optional":true},"primary":{"type":"bool","description":"Whether the interface is the primary interface that should have the default route for this Linode.","description_kind":"plain","optional":true},"purpose":{"type":"string","description":"The type of interface.","description_kind":"plain","required":true},"subnet_id":{"type":"number","description":"The ID of the subnet which the VPC interface is connected to.This attribute is required for VPC interfaces.This attribute is only allowed for VPC interfaces.","description_kind":"plain","optional":true},"vpc_id":{"type":"number","description":"The ID of VPC of the subnet which the VPC interface is connected to.","description_kind":"plain","computed":true}},"block_types":{"ipv4":{"nesting_mode":"list","block":{"attributes":{"nat_1_1":{"type":"string","description":"The public IP that will be used for the one-to-one NAT purpose.","description_kind":"plain","optional":true,"computed":true},"vpc":{"type":"string","description":"The IP from the VPC subnet to use for this interface.","description_kind":"plain","optional":true,"computed":true}},"description":"The IPv4 configuration of the VPC interface.This attribute is only allowed for VPC interfaces.","description_kind":"plain"},"max_items":1}},"description":"An array of Network Interfaces for this Linode’s Configuration Profile.","description_kind":"plain"}}},"description":"Configuration profiles define the VM settings and boot behavior of the Linode Instance.","description_kind":"plain","deprecated":true}},"disk":{"nesting_mode":"list","block":{"attributes":{"authorized_keys":{"type":["list","string"],"description":"A list of SSH public keys to deploy for the root user on the newly created Linode. Only accepted if 'image' is provided.","description_kind":"plain","optional":true},"authorized_users":{"type":["list","string"],"description":"A list of Linode usernames. If the usernames have associated SSH keys, the keys will be appended to the `root` user's `~/.ssh/authorized_keys` file automatically. Only accepted if 'image' is provided.","description_kind":"plain","optional":true},"filesystem":{"type":"string","description":"The Disk filesystem can be one of: raw, swap, ext3, ext4, initrd (max 32mb)","description_kind":"plain","optional":true,"computed":true},"id":{"type":"number","description":"The ID of the Disk (for use in Linode Image resources and Linode Instance Config Devices)","description_kind":"plain","computed":true},"image":{"type":"string","description":"An Image ID to deploy the Disk from. Official Linode Images start with linode/, while your Images start with private/.","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description":"The disks label, which acts as an identifier in Terraform.","description_kind":"plain","required":true},"read_only":{"type":"bool","description":"If true, this Disk is read-only.","description_kind":"plain","optional":true,"computed":true},"root_pass":{"type":"string","description":"The password that will be initialially assigned to the 'root' user account.","description_kind":"plain","optional":true,"sensitive":true},"size":{"type":"number","description":"The size of the Disk in MB.","description_kind":"plain","required":true},"stackscript_data":{"type":["map","string"],"description":"An object containing responses to any User Defined Fields present in the StackScript being deployed to this Linode. Only accepted if 'stackscript_id' is given. The required values depend on the StackScript being deployed.","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"stackscript_id":{"type":"number","description":"The StackScript to deploy to the newly created Linode. If provided, 'image' must also be provided, and must be an Image that is compatible with this StackScript.","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain","deprecated":true}},"interface":{"nesting_mode":"list","block":{"attributes":{"active":{"type":"bool","description":"Whether this interface is currently booted and active.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the interface.","description_kind":"plain","computed":true},"ip_ranges":{"type":["list","string"],"description":"List of VPC IPs or IP ranges inside the VPC subnet.","description_kind":"plain","optional":true},"ipam_address":{"type":"string","description":"This Network Interface's private IP address in Classless Inter-Domain Routing (CIDR) notation.This attribute is only allowed for VLAN interfaces.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The name of the VALN. This attribute is required for VLAN interfaces. This attribute is only allowed for VLAN interfaces.","description_kind":"plain","optional":true},"primary":{"type":"bool","description":"Whether the interface is the primary interface that should have the default route for this Linode.","description_kind":"plain","optional":true},"purpose":{"type":"string","description":"The type of interface.","description_kind":"plain","required":true},"subnet_id":{"type":"number","description":"The ID of the subnet which the VPC interface is connected to.This attribute is required for VPC interfaces.This attribute is only allowed for VPC interfaces.","description_kind":"plain","optional":true},"vpc_id":{"type":"number","description":"The ID of VPC of the subnet which the VPC interface is connected to.","description_kind":"plain","computed":true}},"block_types":{"ipv4":{"nesting_mode":"list","block":{"attributes":{"nat_1_1":{"type":"string","description":"The public IP that will be used for the one-to-one NAT purpose.","description_kind":"plain","optional":true,"computed":true},"vpc":{"type":"string","description":"The IP from the VPC subnet to use for this interface.","description_kind":"plain","optional":true,"computed":true}},"description":"The IPv4 configuration of the VPC interface.This attribute is only allowed for VPC interfaces.","description_kind":"plain"},"max_items":1}},"description":"An array of Network Interfaces for this Linode to be created with. If an explicit config or disk is defined, interfaces must be declared in the config block.","description_kind":"plain"}},"metadata":{"nesting_mode":"list","block":{"attributes":{"user_data":{"type":"string","description":"The base64-encoded user-defined data exposed to this instance through the Linode Metadata service. Refer to the base64encode(...) function for information on encoding content for this field.","description_kind":"plain","optional":true}},"description":"Various fields related to the Linode Metadata service.","description_kind":"plain"}},"placement_group":{"nesting_mode":"list","block":{"attributes":{"compliant_only":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"number","description":"The ID of the Placement Group to assign this Linode to.","description_kind":"plain","required":true},"label":{"type":"string","description":"The label of this Placement Group.","description_kind":"plain","computed":true},"placement_group_policy":{"type":"string","description":"Whether compliance is strictly enforced by this Placement Group.","description_kind":"plain","optional":true,"computed":true},"placement_group_type":{"type":"string","description":"The placement group type for this Placement Group.","description_kind":"plain","computed":true}},"description":"Fields related to the Placement Group this instance is assigned to.","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_instance_config":{"version":0,"block":{"attributes":{"booted":{"type":"bool","description":"If true, the Linode will be booted to running state. If false, the Linode will be shutdown. If undefined, no action will be taken.","description_kind":"plain","optional":true,"computed":true},"comments":{"type":"string","description":"Optional field for arbitrary User comments on this Config.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kernel":{"type":"string","description":"A Kernel ID to boot a Linode with. Defaults to “linode/latest-64bit”.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The Config's label for display purposes only.","description_kind":"plain","required":true},"linode_id":{"type":"number","description":"The ID of the Linode to create this configuration profile under.","description_kind":"plain","required":true},"memory_limit":{"type":"number","description":"The memory limit of the Linode.","description_kind":"plain","optional":true,"computed":true},"root_device":{"type":"string","description":"The root device to boot. If no value or an invalid value is provided, root device will default to /dev/sda. If the device specified at the root device location is not mounted, the Linode will not boot until a device is mounted.","description_kind":"plain","optional":true},"run_level":{"type":"string","description":"Defines the state of your Linode after booting.","description_kind":"plain","optional":true},"virt_mode":{"type":"string","description":"Controls the virtualization mode.","description_kind":"plain","optional":true}},"block_types":{"device":{"nesting_mode":"set","block":{"attributes":{"device_name":{"type":"string","description":"The Disk ID to map to this disk slot","description_kind":"plain","required":true},"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Blocks for device disks in a Linode's configuration profile.","description_kind":"plain"}},"devices":{"nesting_mode":"list","block":{"block_types":{"sda":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdb":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdc":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdd":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sde":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdf":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdg":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1},"sdh":{"nesting_mode":"list","block":{"attributes":{"disk_id":{"type":"number","description":"The Disk ID to map to this disk slot","description_kind":"plain","optional":true},"volume_id":{"type":"number","description":"The Block Storage volume ID to map to this disk slot","description_kind":"plain","optional":true}},"description":"Device can be either a Disk or Volume identified by disk_id or volume_id. Only one type per slot allowed.","description_kind":"plain"},"max_items":1}},"description":"A dictionary of device disks to use as a device map in a Linode's configuration profile.","description_kind":"plain","deprecated":true},"max_items":1},"helpers":{"nesting_mode":"list","block":{"attributes":{"devtmpfs_automount":{"type":"bool","description":"Populates the /dev directory early during boot without udev.","description_kind":"plain","optional":true},"distro":{"type":"bool","description":"Helps maintain correct inittab/upstart console device.","description_kind":"plain","optional":true},"modules_dep":{"type":"bool","description":"Creates a modules dependency file for the Kernel you run.","description_kind":"plain","optional":true},"network":{"type":"bool","description":"Automatically configures static networking.","description_kind":"plain","optional":true},"updatedb_disabled":{"type":"bool","description":"Disables updatedb cron job to avoid disk thrashing.","description_kind":"plain","optional":true}},"description":"Helpers enabled when booting to this Linode Config.","description_kind":"plain"}},"interface":{"nesting_mode":"list","block":{"attributes":{"active":{"type":"bool","description":"Whether this interface is currently booted and active.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the interface.","description_kind":"plain","computed":true},"ip_ranges":{"type":["list","string"],"description":"List of VPC IPs or IP ranges inside the VPC subnet.","description_kind":"plain","optional":true},"ipam_address":{"type":"string","description":"This Network Interface's private IP address in Classless Inter-Domain Routing (CIDR) notation.This attribute is only allowed for VLAN interfaces.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The name of the VALN. This attribute is required for VLAN interfaces. This attribute is only allowed for VLAN interfaces.","description_kind":"plain","optional":true},"primary":{"type":"bool","description":"Whether the interface is the primary interface that should have the default route for this Linode.","description_kind":"plain","optional":true},"purpose":{"type":"string","description":"The type of interface.","description_kind":"plain","required":true},"subnet_id":{"type":"number","description":"The ID of the subnet which the VPC interface is connected to.This attribute is required for VPC interfaces.This attribute is only allowed for VPC interfaces.","description_kind":"plain","optional":true},"vpc_id":{"type":"number","description":"The ID of VPC of the subnet which the VPC interface is connected to.","description_kind":"plain","computed":true}},"block_types":{"ipv4":{"nesting_mode":"list","block":{"attributes":{"nat_1_1":{"type":"string","description":"The public IP that will be used for the one-to-one NAT purpose.","description_kind":"plain","optional":true,"computed":true},"vpc":{"type":"string","description":"The IP from the VPC subnet to use for this interface.","description_kind":"plain","optional":true,"computed":true}},"description":"The IPv4 configuration of the VPC interface.This attribute is only allowed for VPC interfaces.","description_kind":"plain"},"max_items":1}},"description":"An array of Network Interfaces to add to this Linode's Configuration Profile.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_instance_disk":{"version":0,"block":{"attributes":{"authorized_keys":{"type":["set","string"],"description":"A list of public SSH keys that will be automatically appended to the root user's ~/.ssh/authorized_keys file when deploying from an Image.","description_kind":"plain","optional":true},"authorized_users":{"type":["set","string"],"description":"A list of usernames. If the usernames have associated SSH keys, the keys will be appended to the root users ~/.ssh/authorized_keys file automatically when deploying from an Image.","description_kind":"plain","optional":true},"created":{"type":"string","description":"When this disk was created.","description_kind":"plain","computed":true},"disk_encryption":{"type":"string","description":"The disk encryption policy for this disk's parent Linode. NOTE: Disk encryption may not currently be available to all users.","description_kind":"plain","computed":true},"filesystem":{"type":"string","description":"The filesystem of this disk.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"The ID of the Linode disk.","description_kind":"plain","computed":true},"image":{"type":"string","description":"An Image ID to deploy the Linode Disk from.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The Disk;s label is for display purposes only.","description_kind":"plain","required":true},"linode_id":{"type":"number","description":"The ID of the Linode to assign this disk to.","description_kind":"plain","required":true},"root_pass":{"type":"string","description":"This sets the root user's password on a newly-created Linode Disk when deploying from an Image.","description_kind":"plain","optional":true,"sensitive":true},"size":{"type":"number","description":"The ID of the token.","description_kind":"plain","required":true},"stackscript_data":{"type":["map","string"],"description":"An object containing responses to any User Defined Fields present in the StackScript being deployed to this Disk. Only accepted if 'stackscript_id' is given. The required values depend on the StackScript being deployed.","description_kind":"plain","optional":true,"sensitive":true},"stackscript_id":{"type":"number","description":"A StackScript ID that will cause the referenced StackScript to be run during deployment of this Linode.","description_kind":"plain","optional":true},"status":{"type":"string","description":"A brief description of this Disk's current state.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this disk was last updated.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).","description_kind":"plain","optional":true},"delete":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.","description_kind":"plain","optional":true},"update":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_instance_ip":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The resulting IPv4 address.","description_kind":"plain","computed":true},"apply_immediately":{"type":"bool","description":"If true, the instance will be rebooted to update network interfaces. This functionality is not affected by the `skip_implicit_reboots` provider argument.","description_kind":"plain","optional":true,"computed":true},"gateway":{"type":"string","description":"The default gateway for this address","description_kind":"plain","computed":true},"id":{"type":"string","description":"The ID of the IPv4 address, which will be IPv4 address itself.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode to allocate an IPv4 address for.","description_kind":"plain","required":true},"prefix":{"type":"number","description":"The number of bits set in the subnet mask.","description_kind":"plain","computed":true},"public":{"type":"bool","description":"Whether the IPv4 address is public or private.","description_kind":"plain","optional":true,"computed":true},"rdns":{"type":"string","description":"The reverse DNS assigned to this address.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region this IP resides in.","description_kind":"plain","computed":true},"subnet_mask":{"type":"string","description":"The mask that separates host bits from network bits for this address.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of IP address.","description_kind":"plain","computed":true},"vpc_nat_1_1":{"type":["list",["object",{"address":"string","subnet_id":"number","vpc_id":"number"}]],"description":"Contains information about the NAT 1:1 mapping of a public IP address to a VPC subnet.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_instance_shared_ips":{"version":0,"block":{"attributes":{"addresses":{"type":["set","string"],"description":"A set of IP addresses to share to the Linode","description_kind":"plain","required":true},"id":{"type":"string","description":"linode_id is used as the ID of linode_instance_shared_ips","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode to share these IP addresses with.","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_ipv6_range":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The unique ID for this Resource.","description_kind":"plain","computed":true},"is_bgp":{"type":"bool","description":"Whether this IPv6 range is shared.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode to assign this range to.","description_kind":"plain","optional":true},"linodes":{"type":["set","number"],"description":"A list of Linodes targeted by this IPv6 range.Includes Linodes with IP sharing.","description_kind":"plain","computed":true},"prefix_length":{"type":"number","description":"The prefix length of the IPv6 range.","description_kind":"plain","required":true},"range":{"type":"string","description":"The IPv6 range of addresses in this pool.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region for this range of IPv6 addresses.","description_kind":"plain","computed":true},"route_target":{"type":"string","description":"The IPv6 SLAAC address to assign this range to.","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"linode_lke_cluster":{"version":0,"block":{"attributes":{"api_endpoints":{"type":["list","string"],"description":"The API endpoints for the cluster.","description_kind":"plain","computed":true},"dashboard_url":{"type":"string","description":"The dashboard URL of the cluster.","description_kind":"plain","computed":true},"external_pool_tags":{"type":["set","string"],"description":"An array of tags indicating that node pools having those tags are defined with a separate nodepool resource, rather than inside the current cluster resource.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"k8s_version":{"type":"string","description":"The desired Kubernetes version for this Kubernetes cluster in the format of \u003cmajor\u003e.\u003cminor\u003e. The latest supported patch version will be deployed.","description_kind":"plain","required":true},"kubeconfig":{"type":"string","description":"The Base64-encoded Kubeconfig for the cluster.","description_kind":"plain","computed":true,"sensitive":true},"label":{"type":"string","description":"The unique label for the cluster.","description_kind":"plain","required":true},"region":{"type":"string","description":"This cluster's location.","description_kind":"plain","required":true},"status":{"type":"string","description":"The status of the cluster.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"control_plane":{"nesting_mode":"list","block":{"attributes":{"high_availability":{"type":"bool","description":"Defines whether High Availability is enabled for the Control Plane Components of the cluster.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"acl":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Defines default policy. A value of true results in a default policy of DENY. A value of false results in default policy of ALLOW, and has the same effect as delete the ACL configuration.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"addresses":{"nesting_mode":"list","block":{"attributes":{"ipv4":{"type":["set","string"],"description":"A set of individual ipv4 addresses or CIDRs to ALLOW.","description_kind":"plain","optional":true,"computed":true},"ipv6":{"type":["set","string"],"description":"A set of individual ipv6 addresses or CIDRs to ALLOW.","description_kind":"plain","optional":true,"computed":true}},"description":"A list of ip addresses to allow.","description_kind":"plain"}}},"description":"Defines the ACL configuration for an LKE cluster's control plane.","description_kind":"plain"},"max_items":1}},"description":"Defines settings for the Kubernetes Control Plane.","description_kind":"plain"},"max_items":1},"pool":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The number of nodes in the Node Pool.","description_kind":"plain","optional":true,"computed":true},"disk_encryption":{"type":"string","description":"The disk encryption policy for the nodes in this pool. NOTE: Disk encryption may not currently be available to all users.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the Node Pool.","description_kind":"plain","computed":true},"nodes":{"type":["list",["object",{"id":"string","instance_id":"number","status":"string"}]],"description":"The nodes in the node pool.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"A set of tags applied to this node pool.","description_kind":"plain","optional":true},"type":{"type":"string","description":"A Linode Type for all of the nodes in the Node Pool.","description_kind":"plain","required":true}},"block_types":{"autoscaler":{"nesting_mode":"list","block":{"attributes":{"max":{"type":"number","description":"The maximum number of nodes to autoscale to.","description_kind":"plain","required":true},"min":{"type":"number","description":"The minimum number of nodes to autoscale to.","description_kind":"plain","required":true}},"description":"When specified, the number of nodes autoscales within the defined minimum and maximum values.","description_kind":"plain"},"max_items":1}},"description":"A node pool in the cluster.","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_lke_node_pool":{"version":0,"block":{"attributes":{"cluster_id":{"type":"number","description":"The ID of the cluster to associate this node pool with.","description_kind":"plain","required":true},"disk_encryption":{"type":"string","description":"The disk encryption policy for nodes in this pool. NOTE: Disk encryption may not currently be available to all users.","description_kind":"plain","computed":true},"id":{"type":"string","description":"ID of the Node Pool.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects.","description_kind":"plain","optional":true,"computed":true},"node_count":{"type":"number","description":"The number of nodes in the Node Pool.","description_kind":"plain","optional":true,"computed":true},"nodes":{"type":["list",["object",{"id":"string","instance_id":"number","status":"string"}]],"description":"A list of nodes in the node pool.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"The type of node pool.","description_kind":"plain","required":true}},"block_types":{"autoscaler":{"nesting_mode":"list","block":{"attributes":{"max":{"type":"number","description_kind":"plain","required":true},"min":{"type":"number","description_kind":"plain","required":true}},"description_kind":"plain"}},"taint":{"nesting_mode":"set","block":{"attributes":{"effect":{"type":"string","description":"The Kubernetes taint effect.","description_kind":"plain","required":true},"key":{"type":"string","description":"The Kubernetes taint key.","description_kind":"plain","required":true},"value":{"type":"string","description":"The Kubernetes taint value.","description_kind":"plain","required":true}},"description":"Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_nodebalancer":{"version":1,"block":{"attributes":{"client_conn_throttle":{"type":"number","description":"Throttle connections per second (0-20). Set to 0 (zero) to disable throttling.","description_kind":"plain","optional":true,"computed":true},"created":{"type":"string","description":"When this NodeBalancer was created.","description_kind":"plain","computed":true},"firewall_id":{"type":"number","description":"ID for the firewall you'd like to use with this NodeBalancer.","description_kind":"plain","optional":true},"firewalls":{"type":["list",["object",{"created":"string","id":"number","inbound":["list",["object",{"action":"string","description":"string","ipv4":["list","string"],"ipv6":["list","string"],"label":"string","ports":"string","protocol":"string"}]],"inbound_policy":"string","label":"string","outbound":["list",["object",{"action":"string","description":"string","ipv4":["list","string"],"ipv6":["list","string"],"label":"string","ports":"string","protocol":"string"}]],"outbound_policy":"string","status":"string","tags":["set","string"],"updated":"string"}]],"description":"A list of Firewalls assigned to this NodeBalancer.","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"This NodeBalancer's hostname, ending with .nodebalancer.linode.com","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID of the Linode NodeBalancer.","description_kind":"plain","computed":true},"ipv4":{"type":"string","description":"The Public IPv4 Address of this NodeBalancer","description_kind":"plain","computed":true},"ipv6":{"type":"string","description":"The Public IPv6 Address of this NodeBalancer","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the Linode NodeBalancer.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region where this NodeBalancer will be deployed.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","optional":true,"computed":true},"transfer":{"type":["list",["object",{"in":"number","out":"number","total":"number"}]],"description":"Information about the amount of transfer this NodeBalancer has had so far this month.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this NodeBalancer was last updated.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_nodebalancer_config":{"version":1,"block":{"attributes":{"algorithm":{"type":"string","description":"What algorithm this NodeBalancer should use for routing traffic to backends: roundrobin, leastconn, source","description_kind":"plain","optional":true,"computed":true},"check":{"type":"string","description":"The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. If none no check is performed. connection requires only a connection to the backend to succeed. http and http_body rely on the backend serving HTTP, and that the response returned matches what is expected.","description_kind":"plain","optional":true,"computed":true},"check_attempts":{"type":"number","description":"How many times to attempt a check before considering a backend to be down. (1-30)","description_kind":"plain","optional":true,"computed":true},"check_body":{"type":"string","description":"This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down","description_kind":"plain","optional":true,"computed":true},"check_interval":{"type":"number","description":"How often, in seconds, to check that backends are up and serving requests.","description_kind":"plain","optional":true,"computed":true},"check_passive":{"type":"bool","description":"If true, any response from this backend with a 5xx status code will be enough for it to be considered unhealthy and taken out of rotation.","description_kind":"plain","optional":true,"computed":true},"check_path":{"type":"string","description":"The URL path to check on each backend. If the backend does not respond to this request it is considered to be down.","description_kind":"plain","optional":true,"computed":true},"check_timeout":{"type":"number","description":"How long, in seconds, to wait for a check attempt before considering it failed. (1-30)","description_kind":"plain","optional":true,"computed":true},"cipher_suite":{"type":"string","description":"What ciphers to use for SSL connections served by this NodeBalancer. `legacy` is considered insecure and should only be used if necessary.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"The ID of the Linode NodeBalancer Config.","description_kind":"plain","computed":true},"node_status":{"type":["list",["object",{"down":"number","up":"number"}]],"description":"A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends.","description_kind":"plain","computed":true},"nodebalancer_id":{"type":"number","description":"The ID of the NodeBalancer to access.","description_kind":"plain","required":true},"port":{"type":"number","description":"The TCP port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443.","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description":"The protocol this port is configured to serve. If this is set to https you must include an ssl_cert and an ssl_key.","description_kind":"plain","optional":true,"computed":true},"proxy_protocol":{"type":"string","description":"The version of ProxyProtocol to use for the underlying NodeBalancer. This requires protocol to be `tcp`. Valid values are `none`, `v1`, and `v2`.","description_kind":"plain","optional":true,"computed":true},"ssl_cert":{"type":"string","description":"The certificate this port is serving. This is not returned. If set, this field will come back as `\u003cREDACTED\u003e`. Please use the ssl_commonname and ssl_fingerprint to identify the certificate.","description_kind":"plain","optional":true,"sensitive":true},"ssl_commonname":{"type":"string","description":"The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.","description_kind":"plain","computed":true},"ssl_fingerprint":{"type":"string","description":"The read-only fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.","description_kind":"plain","computed":true},"ssl_key":{"type":"string","description":"The private key corresponding to this port's certificate. This is not returned. If set, this field will come back as `\u003cREDACTED\u003e`. Please use the ssl_commonname and ssl_fingerprint to identify the certificate.","description_kind":"plain","optional":true,"sensitive":true},"stickiness":{"type":"string","description":"Controls how session stickiness is handled on this port: 'none', 'table', 'http_cookie'","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"linode_nodebalancer_node":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The private IP Address and port (IP:PORT) where this backend can be reached. This must be a private IP address.","description_kind":"plain","required":true},"config_id":{"type":"number","description":"The ID of the NodeBalancerConfig to access.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description":"The label for this node. This is for display purposes only.","description_kind":"plain","required":true},"mode":{"type":"string","description":"The mode this NodeBalancer should use when sending traffic to this backend. If set to `accept` this backend is accepting traffic. If set to `reject` this backend will not receive traffic. If set to `drain` this backend will not receive new traffic, but connections already pinned to it will continue to be routed to it. If set to `backup` this backend will only accept traffic if all other nodes are down.","description_kind":"plain","optional":true,"computed":true},"nodebalancer_id":{"type":"number","description":"The ID of the NodeBalancer to access.","description_kind":"plain","required":true},"status":{"type":"string","description":"The current status of this node, based on the configured checks of its NodeBalancer Config. (unknown, UP, DOWN)","description_kind":"plain","computed":true},"weight":{"type":"number","description":"Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. (1-255)","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"linode_object_storage_bucket":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"The S3 access key to use for this resource. (Required for lifecycle_rule and versioning). If not specified with the resource, the value will be read from provider-level obj_access_key, or, generated implicitly at apply-time if obj_use_temp_keys in provider configuration is set.","description_kind":"plain","optional":true},"acl":{"type":"string","description":"The Access Control Level of the bucket using a canned ACL string.","description_kind":"plain","optional":true},"cluster":{"type":"string","description":"The cluster of the Linode Object Storage Bucket.","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"cors_enabled":{"type":"bool","description":"If true, the bucket will be created with CORS enabled for all origins.","description_kind":"plain","optional":true},"endpoint":{"type":"string","description":"The endpoint for the bucket used for s3 connections.","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"The hostname where this bucket can be accessed. This hostname can be accessed through a browser if the bucket is made public.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description":"The label of the Linode Object Storage Bucket.","description_kind":"plain","required":true},"region":{"type":"string","description":"The region of the Linode Object Storage Bucket.","description_kind":"plain","optional":true,"computed":true},"secret_key":{"type":"string","description":"The S3 secret key to use for this resource. (Required for lifecycle_rule and versioning). If not specified with the resource, the value will be read from provider-level obj_secret_key, or, generated implicitly at apply-time if obj_use_temp_keys in provider configuration is set.","description_kind":"plain","optional":true,"sensitive":true},"versioning":{"type":"bool","description":"Whether to enable versioning.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"cert":{"nesting_mode":"list","block":{"attributes":{"certificate":{"type":"string","description":"The Base64 encoded and PEM formatted SSL certificate.","description_kind":"plain","required":true,"sensitive":true},"private_key":{"type":"string","description":"The private key associated with the TLS/SSL certificate.","description_kind":"plain","required":true,"sensitive":true}},"description":"The cert used by this Object Storage Bucket.","description_kind":"plain"},"max_items":1},"lifecycle_rule":{"nesting_mode":"list","block":{"attributes":{"abort_incomplete_multipart_upload_days":{"type":"number","description":"Specifies the number of days after initiating a multipart upload when the multipart upload must be completed.","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"Specifies whether the lifecycle rule is active.","description_kind":"plain","required":true},"id":{"type":"string","description":"The unique identifier for the rule.","description_kind":"plain","optional":true,"computed":true},"prefix":{"type":"string","description":"The object key prefix identifying one or more objects to which the rule applies.","description_kind":"plain","optional":true}},"block_types":{"expiration":{"nesting_mode":"list","block":{"attributes":{"date":{"type":"string","description":"Specifies the date after which you want the corresponding action to take effect.","description_kind":"plain","optional":true},"days":{"type":"number","description":"Specifies the number of days after object creation when the specific rule action takes effect.","description_kind":"plain","optional":true},"expired_object_delete_marker":{"type":"bool","description":"Directs Linode Object Storage to remove expired deleted markers.","description_kind":"plain","optional":true}},"description":"Specifies a period in the object's expire.","description_kind":"plain"},"max_items":1},"noncurrent_version_expiration":{"nesting_mode":"list","block":{"attributes":{"days":{"type":"number","description":"Specifies the number of days non-current object versions expire.","description_kind":"plain","required":true}},"description":"Specifies when non-current object versions expire.","description_kind":"plain"},"max_items":1}},"description":"Lifecycle rules to be applied to the bucket.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_object_storage_key":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"This keypair's access key. This is not secret.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID of this Object Storage key.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label given to this key. For display purposes only.","description_kind":"plain","required":true},"limited":{"type":"bool","description":"Whether or not this key is a limited access key.","description_kind":"plain","computed":true},"regions":{"type":["set","string"],"description":"A set of regions where the key will grant access to create buckets.","description_kind":"plain","optional":true,"computed":true},"regions_details":{"type":["set",["object",{"id":"string","s3_endpoint":"string"}]],"description":"A set of objects containing the detailed info of the regions where the key will grant access.","description_kind":"plain","computed":true},"secret_key":{"type":"string","description":"This keypair's secret key.","description_kind":"plain","computed":true,"sensitive":true}},"block_types":{"bucket_access":{"nesting_mode":"set","block":{"attributes":{"bucket_name":{"type":"string","description":"The unique label of the bucket to which the key will grant limited access.","description_kind":"plain","required":true},"cluster":{"type":"string","description":"The Object Storage cluster where the bucket resides. Deprecated in favor of `region`","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"permissions":{"type":"string","description":"This Limited Access Key's permissions for the selected bucket.","description_kind":"plain","required":true},"region":{"type":"string","description":"The region where the bucket resides.","description_kind":"plain","optional":true,"computed":true}},"description":"A list of permissions to grant this limited access key.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_object_storage_object":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"The REQUIRED S3 access key with access to the target bucket. If not specified with the resource, you must provide its value by configuring the obj_access_key, or, opting-in generating it implicitly at apply-time using obj_use_temp_keys at provider-level.","description_kind":"plain","optional":true},"acl":{"type":"string","description":"The ACL config given to this object.","description_kind":"plain","optional":true},"bucket":{"type":"string","description":"The target bucket to put this object in.","description_kind":"plain","required":true},"cache_control":{"type":"string","description":"This cache_control configuration of this object.","description_kind":"plain","optional":true},"cluster":{"type":"string","description":"The target cluster that the bucket is in.","description_kind":"plain","deprecated":true,"optional":true},"content":{"type":"string","description":"The contents of the Object to upload.","description_kind":"plain","optional":true},"content_base64":{"type":"string","description":"The base64 contents of the Object to upload.","description_kind":"plain","optional":true},"content_disposition":{"type":"string","description":"The content disposition configuration of this object.","description_kind":"plain","optional":true},"content_encoding":{"type":"string","description":"The encoding of the content of this object.","description_kind":"plain","optional":true},"content_language":{"type":"string","description":"The language metadata of this object.","description_kind":"plain","optional":true},"content_type":{"type":"string","description":"The MIME type of the content.","description_kind":"plain","optional":true,"computed":true},"endpoint":{"type":"string","description":"The endpoint for the bucket used for s3 connections.","description_kind":"plain","optional":true,"computed":true},"etag":{"type":"string","description":"The specific version of this object.","description_kind":"plain","optional":true,"computed":true},"force_destroy":{"type":"bool","description":"Whether the object should bypass deletion restrictions.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"The name of the uploaded object.","description_kind":"plain","required":true},"metadata":{"type":["map","string"],"description":"The metadata of this object","description_kind":"plain","optional":true},"region":{"type":"string","description":"The target region that the bucket is in.","description_kind":"plain","optional":true},"secret_key":{"type":"string","description":"The REQUIRED S3 secret key with access to the target bucket. If not specified with the resource, you must provide its value by configuring the obj_secret_key, or, opting-in generating it implicitly at apply-time using obj_use_temp_keys at provider-level.","description_kind":"plain","optional":true,"sensitive":true},"source":{"type":"string","description":"The source file to upload.","description_kind":"plain","optional":true},"version_id":{"type":"string","description":"The version ID of this object.","description_kind":"plain","computed":true},"website_redirect":{"type":"string","description":"The website redirect location of this object.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"linode_placement_group":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The id of the Placement Group.","description_kind":"plain","computed":true},"is_compliant":{"type":"bool","description":"Whether all Linodes in this Placement Group are currently compliant.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the Placement Group.","description_kind":"plain","required":true},"members":{"type":["set",["object",{"is_compliant":"bool","linode_id":"number"}]],"description":"A set of Linodes currently assigned to this Placement Group.","description_kind":"plain","computed":true},"placement_group_policy":{"type":"string","description":"Whether this Placement Group has a strict compliance policy.","description_kind":"plain","optional":true,"computed":true},"placement_group_type":{"type":"string","description":"The placement group type for Linodes in this Placement Group.","description_kind":"plain","required":true},"region":{"type":"string","description":"The region of the Placement Group.","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_placement_group_assignment":{"version":0,"block":{"attributes":{"compliant_only":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description":"The unique ID that represents the assignment between a Placement Group and a set of Linodes.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"A set of Linode IDs to assign to the Placement Group.","description_kind":"plain","required":true},"placement_group_id":{"type":"number","description":"The ID of the Placement Group for this assignment.","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_rdns":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The public Linode IPv4 or IPv6 address to operate on.","description_kind":"plain","required":true},"id":{"type":"string","description":"Unique identification field for this RDNS Resource. The public Linode IPv4 or IPv6 address to operate on. ","description_kind":"plain","computed":true},"rdns":{"type":"string","description":"The reverse DNS assigned to this address. For public IPv4 addresses, this will be set to a default value provided by Linode if not explicitly set.","description_kind":"plain","required":true},"wait_for_available":{"type":"bool","description":"If true, the RDNS assignment will be retried within the operation timeout period.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).","description_kind":"plain","optional":true},"update":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_sshkey":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The date this key was added.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique identifier for this SSH key.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the Linode SSH Key.","description_kind":"plain","required":true},"ssh_key":{"type":"string","description":"The public SSH Key, which is used to authenticate to the root user of the Linodes you deploy.","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_stackscript":{"version":1,"block":{"attributes":{"created":{"type":"string","description":"The date this StackScript was created.","description_kind":"plain","computed":true},"deployments_active":{"type":"number","description":"Count of currently active, deployed Linodes created from this StackScript.","description_kind":"plain","computed":true},"deployments_total":{"type":"number","description":"The total number of times this StackScript has been deployed.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A description for the StackScript.","description_kind":"plain","required":true},"id":{"type":"string","description":"The StackScript's unique ID.","description_kind":"plain","computed":true},"images":{"type":["set","string"],"description":"An array of Image IDs representing the Images that this StackScript is compatible for deploying with.","description_kind":"plain","required":true},"is_public":{"type":"bool","description":"This determines whether other users can use your StackScript. Once a StackScript is made public, it cannot be made private.","description_kind":"plain","optional":true,"computed":true},"label":{"type":"string","description":"The StackScript's label is for display purposes only.","description_kind":"plain","required":true},"rev_note":{"type":"string","description":"This field allows you to add notes for the set of revisions made to this StackScript.","description_kind":"plain","optional":true,"computed":true},"script":{"type":"string","description":"The script to execute when provisioning a new Linode with this StackScript.","description_kind":"plain","required":true},"updated":{"type":"string","description":"The date this StackScript was updated.","description_kind":"plain","computed":true},"user_defined_fields":{"type":["list",["object",{"default":"string","example":"string","label":"string","many_of":"string","name":"string","one_of":"string"}]],"description":"This is a list of fields defined with a special syntax inside this StackScript that allow for supplying customized parameters during deployment.","description_kind":"plain","computed":true},"user_gravatar_id":{"type":"string","description":"The Gravatar ID for the User who created the StackScript.","description_kind":"plain","computed":true},"username":{"type":"string","description":"The User who created the StackScript.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_token":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The date and time this token was created.","description_kind":"plain","computed":true},"expiry":{"type":"string","description":"When this token will expire. Personal Access Tokens cannot be renewed, so after this time the token will be completely unusable and a new token will need to be generated. Tokens may be created with 'null' as their expiry and will never expire unless revoked. Format: 2006-01-02T15:04:05Z","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"The ID of the token.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the Linode Token.","description_kind":"plain","optional":true},"scopes":{"type":"string","description":"The scopes this token was created with. These define what parts of the Account the token can be used to access. Many command-line tools, such as the Linode CLI, require tokens with access to *. Tokens with more restrictive scopes are generally more secure. Multiple scopes are separated by a space character (e.g., \"databases:read_only events:read_only\"). You can find the list of available scopes on Linode API docs site, https://techdocs.akamai.com/linode-api/reference/get-started#oauth-reference","description_kind":"plain","required":true},"token":{"type":"string","description":"The token used to access the API.","description_kind":"plain","computed":true,"sensitive":true}},"description_kind":"plain"}},"linode_user":{"version":0,"block":{"attributes":{"email":{"type":"string","description":"The email of the user.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"restricted":{"type":"bool","description":"If true, the user must be explicitly granted access to platform actions and entities.","description_kind":"plain","optional":true},"ssh_keys":{"type":["list","string"],"description":"SSH keys to add to the user profile.","description_kind":"plain","computed":true},"tfa_enabled":{"type":"bool","description":"If the User has Two Factor Authentication (TFA) enabled.","description_kind":"plain","computed":true},"user_type":{"type":"string","description":"The type of this user.","description_kind":"plain","computed":true},"username":{"type":"string","description":"The username of the user.","description_kind":"plain","required":true}},"block_types":{"domain_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}},"firewall_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}},"global_grants":{"nesting_mode":"list","block":{"attributes":{"account_access":{"type":"string","description":"The level of access this User has to Account-level actions, like billing information. A restricted User will never be able to manage users.","description_kind":"plain","optional":true},"add_databases":{"type":"bool","description":"If true, this User may add Databases.","description_kind":"plain","optional":true},"add_domains":{"type":"bool","description":"If true, this User may add Domains.","description_kind":"plain","optional":true},"add_firewalls":{"type":"bool","description":"If true, this User may add Firewalls.","description_kind":"plain","optional":true},"add_images":{"type":"bool","description":"If true, this User may add Images.","description_kind":"plain","optional":true},"add_linodes":{"type":"bool","description":"If true, this User may create Linodes.","description_kind":"plain","optional":true},"add_longview":{"type":"bool","description":"If true, this User may create Longview clients and view the current plan.","description_kind":"plain","optional":true},"add_nodebalancers":{"type":"bool","description":"If true, this User may add NodeBalancers.","description_kind":"plain","optional":true},"add_stackscripts":{"type":"bool","description":"If true, this User may add StackScripts.","description_kind":"plain","optional":true},"add_volumes":{"type":"bool","description":"If true, this User may add Volumes.","description_kind":"plain","optional":true},"cancel_account":{"type":"bool","description":"If true, this User may cancel the entire Account.","description_kind":"plain","optional":true},"longview_subscription":{"type":"bool","description":"If true, this User may manage the Account’s Longview subscription.","description_kind":"plain","optional":true}},"description":"A structure containing the Account-level grants a User has.","description_kind":"plain"},"max_items":1},"image_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}},"linode_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}},"longview_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}},"nodebalancer_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}},"stackscript_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}},"volume_grant":{"nesting_mode":"set","block":{"attributes":{"id":{"type":"number","description":"The ID of the entity this grant applies to.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"The level of access this User has to this entity. If null, this User has no access.","description_kind":"plain","required":true}},"description":"A set containing all of the user's active grants.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_volume":{"version":0,"block":{"attributes":{"filesystem_path":{"type":"string","description":"The full filesystem path for the Volume based on the Volume's label. Path is /dev/disk/by-id/scsi-0Linode_Volume_ + Volume label.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The id of the volume.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the Linode Volume.","description_kind":"plain","required":true},"linode_id":{"type":"number","description":"The Linode ID where the Volume should be attached.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region where this volume will be deployed.","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description":"Size of the Volume in GB","description_kind":"plain","optional":true,"computed":true},"source_volume_id":{"type":"number","description":"The ID of a volume to clone.","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the volume, indicating the current readiness state.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).","description_kind":"plain","optional":true},"delete":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.","description_kind":"plain","optional":true},"update":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_vpc":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The date and time when the VPC was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"The user-defined description of this VPC.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"The id of the VPC.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the VPC. Only contains ascii letters, digits and dashes","description_kind":"plain","required":true},"region":{"type":"string","description":"The region of the VPC.","description_kind":"plain","required":true},"updated":{"type":"string","description":"The date and time when the VPC was updated.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_vpc_subnet":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The date and time when the VPC Subnet was created.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The id of the VPC Subnet.","description_kind":"plain","computed":true},"ipv4":{"type":"string","description":"The IPv4 range of this subnet in CIDR format.","description_kind":"plain","required":true},"label":{"type":"string","description":"The label of the VPC subnet.","description_kind":"plain","required":true},"linodes":{"type":["list",["object",{"id":"number","interfaces":["list",["object",{"active":"bool","id":"number"}]]}]],"description_kind":"plain","computed":true},"updated":{"type":"string","description":"The date and time when the VPC Subnet was updated.","description_kind":"plain","computed":true},"vpc_id":{"type":"number","description":"The id of the parent VPC for this VPC Subnet","description_kind":"plain","required":true}},"description_kind":"plain"}}},"data_source_schemas":{"linode_account":{"version":0,"block":{"attributes":{"active_since":{"type":"string","description":"When this account was activated.","description_kind":"plain","computed":true},"address_1":{"type":"string","description":"First line of this Account's billing address.","description_kind":"plain","computed":true},"address_2":{"type":"string","description":"Second line of this Account's billing address.","description_kind":"plain","computed":true},"balance":{"type":"number","description":"This Account's balance, in US dollars.","description_kind":"plain","computed":true},"capabilities":{"type":["set","string"],"description":"The capabilities of this account.","description_kind":"plain","computed":true},"city":{"type":"string","description":"The city for this Account's billing address.","description_kind":"plain","computed":true},"company":{"type":"string","description":"The company name associated with this Account.","description_kind":"plain","computed":true},"country":{"type":"string","description":"The two-letter country code of this Account's billing address.","description_kind":"plain","computed":true},"email":{"type":"string","description":"The email address for this Account, for account management communications, and may be used for other communications as configured.","description_kind":"plain","computed":true},"euuid":{"type":"string","description":"The unique ID of this Account.","description_kind":"plain","computed":true},"first_name":{"type":"string","description":"The first name of the person associated with this Account.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The Email of the Account.","description_kind":"plain","computed":true},"last_name":{"type":"string","description":"The last name of the person associated with this Account.","description_kind":"plain","computed":true},"phone":{"type":"string","description":"The phone number associated with this Account.","description_kind":"plain","computed":true},"state":{"type":"string","description":"If billing address is in the United States, this is the State portion of the Account's billing address. If the address is outside the US, this is the Province associated with the Account's billing address.","description_kind":"plain","computed":true},"zip":{"type":"string","description":"The zip code of this Account's billing address.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_account_availabilities":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true}},"block_types":{"availabilities":{"nesting_mode":"list","block":{"attributes":{"available":{"type":["set","string"],"description":"A set of available services for the current account in this region.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region of this availability entry.","description_kind":"plain","required":true},"unavailable":{"type":["set","string"],"description":"A set of unavailable services for the current account in this region.","description_kind":"plain","computed":true}},"description":"The returned list of account availabilities.","description_kind":"plain"}},"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_account_availability":{"version":0,"block":{"attributes":{"available":{"type":["set","string"],"description":"A set of available services for the current account in this region.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region of this availability entry.","description_kind":"plain","required":true},"unavailable":{"type":["set","string"],"description":"A set of unavailable services for the current account in this region.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_account_login":{"version":0,"block":{"attributes":{"datetime":{"type":"string","description":"The time when the login was initiated.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID of this login object.","description_kind":"plain","required":true},"ip":{"type":"string","description":"The remote IP address that requested the login.","description_kind":"plain","computed":true},"restricted":{"type":"bool","description":"True if the User that was logged into was a restricted User, false otherwise.","description_kind":"plain","computed":true},"status":{"type":"string","description":"Whether the login attempt succeeded or failed.","description_kind":"plain","computed":true},"username":{"type":"string","description":"The username of the User that was logged into.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_account_logins":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"logins":{"nesting_mode":"list","block":{"attributes":{"datetime":{"type":"string","description":"The time when the login was initiated.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID of this login object.","description_kind":"plain","required":true},"ip":{"type":"string","description":"The remote IP address that requested the login.","description_kind":"plain","computed":true},"restricted":{"type":"bool","description":"True if the User that was logged into was a restricted User, false otherwise.","description_kind":"plain","computed":true},"status":{"type":"string","description":"Whether the login attempt succeeded or failed.","description_kind":"plain","computed":true},"username":{"type":"string","description":"The username of the User that was logged into.","description_kind":"plain","computed":true}},"description":"The returned list of account logins.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_account_settings":{"version":0,"block":{"attributes":{"backups_enabled":{"type":"bool","description":"Account-wide backups default.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The email of the current account.","description_kind":"plain","computed":true},"longview_subscription":{"type":"string","description":"The Longview Pro tier you are currently subscribed to.","description_kind":"plain","computed":true},"managed":{"type":"bool","description":"Enables monitoring for connectivity, response, and total request time.","description_kind":"plain","computed":true},"network_helper":{"type":"bool","description":"Enables network helper across all users by default for new Linodes and Linode Configs.","description_kind":"plain","computed":true},"object_storage":{"type":"string","description":"A string describing the status of this account's Object Storage service enrollment.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_child_account":{"version":0,"block":{"attributes":{"active_since":{"type":"string","description":"When this account was activated.","description_kind":"plain","computed":true},"address_1":{"type":"string","description":"First line of this Account's billing address.","description_kind":"plain","computed":true},"address_2":{"type":"string","description":"Second line of this Account's billing address.","description_kind":"plain","computed":true},"balance":{"type":"number","description":"This Account's balance, in US dollars.","description_kind":"plain","computed":true},"capabilities":{"type":["set","string"],"description":"The capabilities of this account.","description_kind":"plain","computed":true},"city":{"type":"string","description":"The city for this Account's billing address.","description_kind":"plain","computed":true},"company":{"type":"string","description":"The company name associated with this Account.","description_kind":"plain","computed":true},"country":{"type":"string","description":"The two-letter country code of this Account's billing address.","description_kind":"plain","computed":true},"email":{"type":"string","description":"The email address for this Account, for account management communications, and may be used for other communications as configured.","description_kind":"plain","computed":true},"euuid":{"type":"string","description":"The unique ID of this Account.","description_kind":"plain","required":true},"first_name":{"type":"string","description":"The first name of the person associated with this Account.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The Email of the Account.","description_kind":"plain","computed":true},"last_name":{"type":"string","description":"The last name of the person associated with this Account.","description_kind":"plain","computed":true},"phone":{"type":"string","description":"The phone number associated with this Account.","description_kind":"plain","computed":true},"state":{"type":"string","description":"If billing address is in the United States, this is the State portion of the Account's billing address. If the address is outside the US, this is the Province associated with the Account's billing address.","description_kind":"plain","computed":true},"zip":{"type":"string","description":"The zip code of this Account's billing address.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_child_accounts":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true}},"block_types":{"child_accounts":{"nesting_mode":"list","block":{"attributes":{"active_since":{"type":"string","description":"When this account was activated.","description_kind":"plain","computed":true},"address_1":{"type":"string","description":"First line of this Account's billing address.","description_kind":"plain","computed":true},"address_2":{"type":"string","description":"Second line of this Account's billing address.","description_kind":"plain","computed":true},"balance":{"type":"number","description":"This Account's balance, in US dollars.","description_kind":"plain","computed":true},"capabilities":{"type":["set","string"],"description":"The capabilities of this account.","description_kind":"plain","computed":true},"city":{"type":"string","description":"The city for this Account's billing address.","description_kind":"plain","computed":true},"company":{"type":"string","description":"The company name associated with this Account.","description_kind":"plain","computed":true},"country":{"type":"string","description":"The two-letter country code of this Account's billing address.","description_kind":"plain","computed":true},"email":{"type":"string","description":"The email address for this Account, for account management communications, and may be used for other communications as configured.","description_kind":"plain","computed":true},"euuid":{"type":"string","description":"The unique ID of this Account.","description_kind":"plain","computed":true},"first_name":{"type":"string","description":"The first name of the person associated with this Account.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The Email of the Account.","description_kind":"plain","computed":true},"last_name":{"type":"string","description":"The last name of the person associated with this Account.","description_kind":"plain","computed":true},"phone":{"type":"string","description":"The phone number associated with this Account.","description_kind":"plain","computed":true},"state":{"type":"string","description":"If billing address is in the United States, this is the State portion of the Account's billing address. If the address is outside the US, this is the Province associated with the Account's billing address.","description_kind":"plain","computed":true},"zip":{"type":"string","description":"The zip code of this Account's billing address.","description_kind":"plain","computed":true}},"description":"The returned list of Child Accounts.","description_kind":"plain"}},"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_database_backups":{"version":0,"block":{"attributes":{"database_id":{"type":"number","description":"The ID of the Managed Database.","description_kind":"plain","required":true},"database_type":{"type":"string","description":"The type of the Managed Database","description_kind":"plain","required":true},"id":{"type":"number","description":"The data source's unique ID.","description_kind":"plain","computed":true},"latest":{"type":"bool","description":"If true, only the latest engine version will be returned.","description_kind":"plain","optional":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"backups":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"A time value given in a combined date and time format that represents when the database backup was created.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the database backup object.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The database backup’s label, for display purposes only.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of database backup, determined by how the backup was created.","description_kind":"plain","computed":true}},"description":"The returned list of backups.","description_kind":"plain"}},"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_database_engines":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"latest":{"type":"bool","description":"If true, only the latest engine version will be returned.","description_kind":"plain","optional":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"engines":{"nesting_mode":"list","block":{"attributes":{"engine":{"type":"string","description":"The Managed Database engine type.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The Managed Database engine ID in engine/version format.","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Managed Database engine version.","description_kind":"plain","computed":true}},"description":"The returned list of engines.","description_kind":"plain"}},"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_database_mysql":{"version":0,"block":{"attributes":{"allow_list":{"type":["set","string"],"description":"A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format.","description_kind":"plain","computed":true},"ca_cert":{"type":"string","description":"The base64-encoded SSL CA certificate for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"cluster_size":{"type":"number","description":"The number of Linode Instance nodes deployed to the Managed Database. Defaults to 1.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this Managed Database was created.","description_kind":"plain","computed":true},"database_id":{"type":"number","description":"The ID of the MySQL database. DEPRECATED: Use ID instead","description_kind":"plain","deprecated":true,"optional":true},"encrypted":{"type":"bool","description":"Whether the Managed Databases is encrypted.","description_kind":"plain","computed":true},"engine":{"type":"string","description":"The Managed Database engine.","description_kind":"plain","computed":true},"engine_id":{"type":"string","description":"The Managed Database engine in engine/version format. (e.g. mysql/8.0.30)","description_kind":"plain","computed":true},"host_primary":{"type":"string","description":"The primary host for the Managed Database.","description_kind":"plain","computed":true},"host_secondary":{"type":"string","description":"The secondary host for the Managed Database.","description_kind":"plain","computed":true},"id":{"type":"number","description":"Unique identifier for this DataSource. The ID of the MySQL database.","description_kind":"plain","optional":true},"label":{"type":"string","description":"A unique, user-defined string referring to the Managed Database.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region to use for the Managed Database.","description_kind":"plain","computed":true},"replication_type":{"type":"string","description":"The replication method used for the Managed Database.","description_kind":"plain","computed":true},"root_password":{"type":"string","description":"The randomly-generated root password for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"root_username":{"type":"string","description":"The root username for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"ssl_connection":{"type":"bool","description":"Whether to require SSL credentials to establish a connection to the Managed Database.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The operating status of the Managed Database.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The Linode Instance type used by the Managed Database for its nodes.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Managed Database was last updated.","description_kind":"plain","computed":true},"updates":{"type":["list",["object",{"day_of_week":"string","duration":"number","frequency":"string","hour_of_day":"number","week_of_month":"number"}]],"description":"Configuration settings for automated patch update maintenance for the Managed Database.","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Managed Database engine version.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_database_mysql_backups":{"version":0,"block":{"attributes":{"backups":{"type":["list",["object",{"created":"string","id":"number","label":"string","type":"string"}]],"description":"The returned list of backups.","description_kind":"plain","computed":true},"database_id":{"type":"number","description":"The ID of the Managed MySQL Database.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"latest":{"type":"bool","description":"If true, only the latest backup will be returned.","description_kind":"plain","optional":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"list","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["list","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_database_postgresql":{"version":0,"block":{"attributes":{"allow_list":{"type":["set","string"],"description":"A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format.","description_kind":"plain","computed":true},"ca_cert":{"type":"string","description":"The base64-encoded SSL CA certificate for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"cluster_size":{"type":"number","description":"The number of Linode Instance nodes deployed to the Managed Database. Defaults to 1.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this Managed Database was created.","description_kind":"plain","computed":true},"database_id":{"type":"number","description":"The ID of the PostgreSQL database. DEPRECATED: Use ID instead","description_kind":"plain","deprecated":true,"optional":true},"encrypted":{"type":"bool","description":"Whether the Managed Databases is encrypted.","description_kind":"plain","computed":true},"engine":{"type":"string","description":"The Managed Database engine.","description_kind":"plain","computed":true},"engine_id":{"type":"string","description":"The Managed Database engine in engine/version format. (e.g. postgresql/12.6)","description_kind":"plain","computed":true},"host_primary":{"type":"string","description":"The primary host for the Managed Database.","description_kind":"plain","computed":true},"host_secondary":{"type":"string","description":"The secondary host for the Managed Database.","description_kind":"plain","computed":true},"id":{"type":"number","description":"Unique identifier for this DataSource. The ID of the PostgreSQL database.","description_kind":"plain","optional":true},"label":{"type":"string","description":"A unique, user-defined string referring to the Managed Database.","description_kind":"plain","computed":true},"port":{"type":"number","description":"The access port for this Managed Database.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region to use for the Managed Database.","description_kind":"plain","computed":true},"replication_commit_type":{"type":"string","description":"The synchronization level of the replicating server.","description_kind":"plain","computed":true},"replication_type":{"type":"string","description":"The replication method used for the Managed Database.","description_kind":"plain","computed":true},"root_password":{"type":"string","description":"The randomly-generated root password for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"root_username":{"type":"string","description":"The root username for the Managed Database instance.","description_kind":"plain","computed":true,"sensitive":true},"ssl_connection":{"type":"bool","description":"Whether to require SSL credentials to establish a connection to the Managed Database.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The operating status of the Managed Database.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The Linode Instance type used by the Managed Database for its nodes.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Managed Database was last updated.","description_kind":"plain","computed":true},"updates":{"type":["list",["object",{"day_of_week":"string","duration":"number","frequency":"string","hour_of_day":"number","week_of_month":"number"}]],"description":"Configuration settings for automated patch update maintenance for the Managed Database.","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Managed Database engine version.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_databases":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"databases":{"nesting_mode":"list","block":{"attributes":{"allow_list":{"type":["set","string"],"description":"A list of IP addresses that can access the Managed Database. Each item can be a single IP address or a range in CIDR format.","description_kind":"plain","computed":true},"cluster_size":{"type":"number","description":"The number of Linode Instance nodes deployed to the Managed Database.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this Managed Database was created.","description_kind":"plain","computed":true},"encrypted":{"type":"bool","description":"Whether the Managed Databases is encrypted.","description_kind":"plain","computed":true},"engine":{"type":"string","description":"The Managed Database engine type.","description_kind":"plain","computed":true},"host_primary":{"type":"string","description":"The primary host for the Managed Database.","description_kind":"plain","computed":true},"host_secondary":{"type":"string","description":"The secondary/private host for the Managed Database.","description_kind":"plain","computed":true},"id":{"type":"number","description":"A unique ID that can be used to identify and reference the Managed Database.","description_kind":"plain","computed":true},"instance_uri":{"type":"string","description":"he API route for the database instance.","description_kind":"plain","computed":true},"label":{"type":"string","description":"A unique, user-defined string referring to the Managed Database.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The Region ID for the Managed Database.","description_kind":"plain","computed":true},"replication_type":{"type":"string","description":"The replication method used for the Managed Database.","description_kind":"plain","computed":true},"ssl_connection":{"type":"bool","description":"Whether to require SSL credentials to establish a connection to the Managed Database.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The operating status of the Managed Database.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The Linode Instance type used by the Managed Database for its nodes.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Managed Database was last updated.","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Managed Database engine version.","description_kind":"plain","computed":true}},"description":"The returned list of databases.","description_kind":"plain"}},"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_domain":{"version":0,"block":{"attributes":{"axfr_ips":{"type":["set","string"],"description":"The list of IPs that may perform a zone transfer for this Domain. This is potentially dangerous, and should be set to an empty list unless you intend to use it.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A description for this Domain. This is for display purposes only.","description_kind":"plain","computed":true},"domain":{"type":"string","description":"The domain this Domain represents. These must be unique in our system; you cannot have two Domains representing the same domain.","description_kind":"plain","optional":true},"expire_sec":{"type":"number","description":"The amount of time in seconds that may pass before this Domain is no longer Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"group":{"type":"string","description":"The group this Domain belongs to. This is for display purposes only.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The Domain's unique ID.","description_kind":"plain","optional":true},"master_ips":{"type":["set","string"],"description":"The IP addresses representing the master DNS for this Domain.","description_kind":"plain","computed":true},"refresh_sec":{"type":"number","description":"The amount of time in seconds before this Domain should be refreshed. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"retry_sec":{"type":"number","description":"The interval, in seconds, at which a failed refresh should be retried. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"soa_email":{"type":"string","description":"Start of Authority email address. This is required for master Domains.","description_kind":"plain","computed":true},"status":{"type":"string","description":"Used to control whether this Domain is currently being rendered.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"ttl_sec":{"type":"number","description":"'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"type":{"type":"string","description":"If this Domain represents the authoritative source of information for the domain it describes, or if it is a read-only copy of a master (also called a slave).","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_domain_record":{"version":0,"block":{"attributes":{"domain_id":{"type":"number","description":"The associated domain's ID.","description_kind":"plain","required":true},"id":{"type":"number","description":"The unique ID assigned to this domain record.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the Record.","description_kind":"plain","optional":true},"port":{"type":"number","description":"The port this Record points to.","description_kind":"plain","computed":true},"priority":{"type":"number","description":"The priority of the target host. Lower values are preferred.","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The protocol this Record's service communicates with. Only valid for SRV records.","description_kind":"plain","computed":true},"service":{"type":"string","description":"The service this Record identified. Only valid for SRV records.","description_kind":"plain","computed":true},"tag":{"type":"string","description":"The tag portion of a CAA record.","description_kind":"plain","computed":true},"target":{"type":"string","description":"The target for this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the address the named Domain should resolve to.","description_kind":"plain","computed":true},"ttl_sec":{"type":"number","description":"The amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of Record this is in the DNS system.","description_kind":"plain","computed":true},"weight":{"type":"number","description":"The relative weight of this Record. Higher values are preferred.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_domain_zonefile":{"version":0,"block":{"attributes":{"domain_id":{"type":"number","description":"The domain's ID.","description_kind":"plain","required":true},"id":{"type":"string","description":"The unique ID for this DataSource","description_kind":"plain","computed":true},"zone_file":{"type":["list","string"],"description":"Lines of the zone file for the last rendered zone for this domain.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_domains":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"domains":{"nesting_mode":"list","block":{"attributes":{"axfr_ips":{"type":["set","string"],"description":"The list of IPs that may perform a zone transfer for this Domain. This is potentially dangerous, and should be set to an empty list unless you intend to use it.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A description for this Domain. This is for display purposes only.","description_kind":"plain","computed":true},"domain":{"type":"string","description":"The domain this Domain represents. These must be unique in our system; you cannot have two Domains representing the same domain.","description_kind":"plain","optional":true},"expire_sec":{"type":"number","description":"The amount of time in seconds that may pass before this Domain is no longer Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"group":{"type":"string","description":"The group this Domain belongs to. This is for display purposes only.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The Domain's unique ID.","description_kind":"plain","optional":true},"master_ips":{"type":["set","string"],"description":"The IP addresses representing the master DNS for this Domain.","description_kind":"plain","computed":true},"refresh_sec":{"type":"number","description":"The amount of time in seconds before this Domain should be refreshed. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"retry_sec":{"type":"number","description":"The interval, in seconds, at which a failed refresh should be retried. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"soa_email":{"type":"string","description":"Start of Authority email address. This is required for master Domains.","description_kind":"plain","computed":true},"status":{"type":"string","description":"Used to control whether this Domain is currently being rendered.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"ttl_sec":{"type":"number","description":"'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 0, 30, 120, 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.","description_kind":"plain","computed":true},"type":{"type":"string","description":"If this Domain represents the authoritative source of information for the domain it describes, or if it is a read-only copy of a master (also called a slave).","description_kind":"plain","computed":true}},"description":"The returned list of Domains.","description_kind":"plain"}},"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_firewall":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"When this Firewall was created.","description_kind":"plain","computed":true},"devices":{"type":["list",["object",{"entity_id":"number","id":"number","label":"string","type":"string","url":"string"}]],"description":"The devices associated with this firewall.","description_kind":"plain","computed":true},"disabled":{"type":"bool","description":"If true, the Firewall is inactive.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID assigned to this Firewall.","description_kind":"plain","required":true},"inbound":{"type":["list",["object",{"action":"string","description":"string","ipv4":["list","string"],"ipv6":["list","string"],"label":"string","ports":"string","protocol":"string"}]],"description":"A firewall rule that specifies what inbound network traffic is allowed.","description_kind":"plain","computed":true},"inbound_policy":{"type":"string","description":"The default behavior for inbound traffic. This setting can be overridden by updating the inbound.action property for an individual Firewall Rule.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.","description_kind":"plain","computed":true},"linodes":{"type":["set","number"],"description":"The IDs of Linodes assigned to this Firewall.","description_kind":"plain","computed":true},"nodebalancers":{"type":["set","number"],"description":"The IDs of NodeBalancers assigned to this Firewall.","description_kind":"plain","computed":true},"outbound":{"type":["list",["object",{"action":"string","description":"string","ipv4":["list","string"],"ipv6":["list","string"],"label":"string","ports":"string","protocol":"string"}]],"description":"A firewall rule that specifies what outbound network traffic is allowed.","description_kind":"plain","computed":true},"outbound_policy":{"type":"string","description":"The default behavior for outbound traffic. This setting can be overridden by updating the outbound.action property for an individual Firewall Rule.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the firewall.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Firewall was last updated.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_firewalls":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"firewalls":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"When this Firewall was created.","description_kind":"plain","computed":true},"disabled":{"type":"bool","description":"If true, the Firewall is inactive.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID assigned to this Firewall.","description_kind":"plain","computed":true},"inbound_policy":{"type":"string","description":"The default behavior for inbound traffic.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.","description_kind":"plain","computed":true},"linodes":{"type":["set","number"],"description":"The IDs of Linodes assigned to this Firewall.","description_kind":"plain","computed":true},"nodebalancers":{"type":["set","number"],"description":"The IDs of NodeBalancers assigned to this Firewall..","description_kind":"plain","computed":true},"outbound_policy":{"type":"string","description":"The default behavior for outbound traffic.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the firewall.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Firewall was last updated.","description_kind":"plain","computed":true}},"block_types":{"devices":{"nesting_mode":"list","block":{"attributes":{"entity_id":{"type":"number","description":"The ID of the underlying entity this device references (i.e. the Linode's ID).","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID of the Firewall Device.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the underlying entity this device references.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of Firewall Device.","description_kind":"plain","computed":true},"url":{"type":"string","description":"The URL of the underlying entity this device references.","description_kind":"plain","computed":true}},"description":"The devices associated with this firewall.","description_kind":"plain"}},"inbound":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP).","description_kind":"plain","computed":true},"ipv4":{"type":["set","string"],"description":"A list of IPv4 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"ipv6":{"type":["set","string"],"description":"A list of IPv6 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of this rule for display purposes only.","description_kind":"plain","computed":true},"ports":{"type":"string","description":"A string representation of ports and/or port ranges (i.e. \"443\" or \"80-90, 91\").","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The network protocol this rule controls. (TCP, UDP, ICMP)","description_kind":"plain","computed":true}},"description":"A set of firewall rules that specify what inbound network traffic is allowed.","description_kind":"plain"}},"outbound":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP).","description_kind":"plain","computed":true},"ipv4":{"type":["set","string"],"description":"A list of IPv4 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"ipv6":{"type":["set","string"],"description":"A list of IPv6 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of this rule for display purposes only.","description_kind":"plain","computed":true},"ports":{"type":"string","description":"A string representation of ports and/or port ranges (i.e. \"443\" or \"80-90, 91\").","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The network protocol this rule controls. (TCP, UDP, ICMP)","description_kind":"plain","computed":true}},"description":"A set of firewall rules that specify what outbound network traffic is allowed.","description_kind":"plain"}}},"description":"The returned list of Firewalls.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_image":{"version":0,"block":{"attributes":{"capabilities":{"type":["set","string"],"description":"The capabilities of this Image.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this Image was created.","description_kind":"plain","computed":true},"created_by":{"type":"string","description":"The name of the User who created this Image.","description_kind":"plain","computed":true},"deprecated":{"type":"bool","description":"Whether or not this Image is deprecated. Will only be True for deprecated public Images.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A detailed description of this Image.","description_kind":"plain","computed":true},"expiry":{"type":"string","description":"Only Images created automatically (from a deleted Linode; type=automatic) will expire.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID assigned to this Image.","description_kind":"plain","required":true},"is_public":{"type":"bool","description":"True if the Image is public.","description_kind":"plain","computed":true},"label":{"type":"string","description":"A short description of the Image. Labels cannot contain special characters.","description_kind":"plain","computed":true},"size":{"type":"number","description":"The minimum size this Image needs to deploy. Size is in MB.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The current status of this Image.","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The customized tags for the image.","description_kind":"plain","computed":true},"total_size":{"type":"number","description":"The total size of the image in all available regions.","description_kind":"plain","computed":true},"type":{"type":"string","description":"How the Image was created. 'Manual' Images can be created at any time. 'Automatic' images are created automatically from a deleted Linode.","description_kind":"plain","computed":true},"vendor":{"type":"string","description":"The upstream distribution vendor. Nil for private Images.","description_kind":"plain","computed":true}},"block_types":{"replications":{"nesting_mode":"list","block":{"attributes":{"region":{"type":"string","description":"The region of an image replica.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of an image replica.","description_kind":"plain","computed":true}},"description":"A list of image replications region and corresponding status.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_images":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"latest":{"type":"bool","description":"If true, only the latest image will be returned.","description_kind":"plain","optional":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"images":{"nesting_mode":"list","block":{"attributes":{"capabilities":{"type":["set","string"],"description":"The capabilities of this Image.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this Image was created.","description_kind":"plain","computed":true},"created_by":{"type":"string","description":"The name of the User who created this Image.","description_kind":"plain","computed":true},"deprecated":{"type":"bool","description":"Whether or not this Image is deprecated. Will only be True for deprecated public Images.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A detailed description of this Image.","description_kind":"plain","computed":true},"expiry":{"type":"string","description":"Only Images created automatically (from a deleted Linode; type=automatic) will expire.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID assigned to this Image.","description_kind":"plain","required":true},"is_public":{"type":"bool","description":"True if the Image is public.","description_kind":"plain","computed":true},"label":{"type":"string","description":"A short description of the Image. Labels cannot contain special characters.","description_kind":"plain","computed":true},"size":{"type":"number","description":"The minimum size this Image needs to deploy. Size is in MB.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The current status of this Image.","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The customized tags for the image.","description_kind":"plain","computed":true},"total_size":{"type":"number","description":"The total size of the image in all available regions.","description_kind":"plain","computed":true},"type":{"type":"string","description":"How the Image was created. 'Manual' Images can be created at any time. 'Automatic' images are created automatically from a deleted Linode.","description_kind":"plain","computed":true},"vendor":{"type":"string","description":"The upstream distribution vendor. Nil for private Images.","description_kind":"plain","computed":true}},"block_types":{"replications":{"nesting_mode":"list","block":{"attributes":{"region":{"type":"string","description":"The region of an image replica.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of an image replica.","description_kind":"plain","computed":true}},"description":"A list of image replications region and corresponding status.","description_kind":"plain"}}},"description":"The returned list of Images.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_instance_backups":{"version":0,"block":{"attributes":{"automatic":{"type":["list",["object",{"available":"bool","configs":["list","string"],"created":"string","disks":["list",["object",{"filesystem":"string","label":"string","size":"number"}]],"finished":"string","id":"number","label":"string","status":"string","type":"string","updated":"string"}]],"description":"A list of backups or snapshots for a Linode.","description_kind":"plain","computed":true},"current":{"type":["list",["object",{"available":"bool","configs":["list","string"],"created":"string","disks":["list",["object",{"filesystem":"string","label":"string","size":"number"}]],"finished":"string","id":"number","label":"string","status":"string","type":"string","updated":"string"}]],"description":"The current Backup for a Linode.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the Backup","description_kind":"plain","computed":true},"in_progress":{"type":["list",["object",{"available":"bool","configs":["list","string"],"created":"string","disks":["list",["object",{"filesystem":"string","label":"string","size":"number"}]],"finished":"string","id":"number","label":"string","status":"string","type":"string","updated":"string"}]],"description":"The in-progress Backup for a Linode","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode to get backups for.","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_instance_networking":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"Unique identifier for this DataSource.","description_kind":"plain","computed":true},"ipv4":{"type":["list",["object",{"private":["list",["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string","vpc_nat_1_1":["object",{"address":"string","subnet_id":"number","vpc_id":"number"}]}]],"public":["list",["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string","vpc_nat_1_1":["object",{"address":"string","subnet_id":"number","vpc_id":"number"}]}]],"reserved":["list",["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string","vpc_nat_1_1":["object",{"address":"string","subnet_id":"number","vpc_id":"number"}]}]],"shared":["list",["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string","vpc_nat_1_1":["object",{"address":"string","subnet_id":"number","vpc_id":"number"}]}]],"vpc":["list",["object",{"active":"bool","address":"string","address_range":"string","config_id":"number","gateway":"string","interface_id":"number","linode_id":"number","nat_1_1":"string","prefix":"number","region":"string","subnet_id":"number","subnet_mask":"string","vpc_id":"number"}]]}]],"description":"Information about this Linode's IPv4 addresses.","description_kind":"plain","computed":true},"ipv6":{"type":["list",["object",{"global":["list",["object",{"prefix":"number","range":"string","region":"string","route_target":"string"}]],"link_local":["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string","vpc_nat_1_1":["object",{"address":"string","subnet_id":"number","vpc_id":"number"}]}],"slaac":["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string","vpc_nat_1_1":["object",{"address":"string","subnet_id":"number","vpc_id":"number"}]}]}]],"description":"Information about this Linode's IPv6 addresses.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode for network info.","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_instance_type":{"version":0,"block":{"attributes":{"addons":{"type":["list",["object",{"backups":["list",["object",{"price":["list",["object",{"hourly":"number","monthly":"number"}]],"region_prices":["list",["object",{"hourly":"number","id":"string","monthly":"number"}]]}]]}]],"description":"Information about the optional Backup service offered for Linodes.","description_kind":"plain","computed":true},"class":{"type":"string","description":"The class of the Linode Type. There are currently three classes of Linodes: nanode, standard, highmem, dedicated","description_kind":"plain","computed":true},"disk":{"type":"number","description":"The Disk size, in MB, of the Linode Type.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID assigned to this Instance type.","description_kind":"plain","required":true},"label":{"type":"string","description":"The Linode Type's label is for display purposes only.","description_kind":"plain","optional":true,"computed":true},"memory":{"type":"number","description":"Amount of RAM included in this Linode Type.","description_kind":"plain","computed":true},"network_out":{"type":"number","description":"The Mbits outbound bandwidth allocation.","description_kind":"plain","computed":true},"price":{"type":["list",["object",{"hourly":"number","monthly":"number"}]],"description":"Cost in US dollars, broken down into hourly and monthly charges.","description_kind":"plain","computed":true},"region_prices":{"type":["list",["object",{"hourly":"number","id":"string","monthly":"number"}]],"description":"A list of region-specific prices for this plan.","description_kind":"plain","computed":true},"transfer":{"type":"number","description":"The monthly outbound transfer amount, in MB.","description_kind":"plain","computed":true},"vcpus":{"type":"number","description":"The number of VCPU cores this Linode Type offers.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_instance_types":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"types":{"nesting_mode":"list","block":{"attributes":{"addons":{"type":["list",["object",{"backups":["list",["object",{"price":["list",["object",{"hourly":"number","monthly":"number"}]],"region_prices":["list",["object",{"hourly":"number","id":"string","monthly":"number"}]]}]]}]],"description":"Information about the optional Backup service offered for Linodes.","description_kind":"plain","computed":true},"class":{"type":"string","description":"The class of the Linode Type. There are currently three classes of Linodes: nanode, standard, highmem, dedicated","description_kind":"plain","computed":true},"disk":{"type":"number","description":"The Disk size, in MB, of the Linode Type.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID assigned to this Instance type.","description_kind":"plain","required":true},"label":{"type":"string","description":"The Linode Type's label is for display purposes only.","description_kind":"plain","optional":true,"computed":true},"memory":{"type":"number","description":"Amount of RAM included in this Linode Type.","description_kind":"plain","computed":true},"network_out":{"type":"number","description":"The Mbits outbound bandwidth allocation.","description_kind":"plain","computed":true},"price":{"type":["list",["object",{"hourly":"number","monthly":"number"}]],"description":"Cost in US dollars, broken down into hourly and monthly charges.","description_kind":"plain","computed":true},"region_prices":{"type":["list",["object",{"hourly":"number","id":"string","monthly":"number"}]],"description":"A list of region-specific prices for this plan.","description_kind":"plain","computed":true},"transfer":{"type":"number","description":"The monthly outbound transfer amount, in MB.","description_kind":"plain","computed":true},"vcpus":{"type":"number","description":"The number of VCPU cores this Linode Type offers.","description_kind":"plain","computed":true}},"description":"The returned list of instance types.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_instances":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instances":{"type":["list",["object",{"alerts":["list",["object",{"cpu":"number","io":"number","network_in":"number","network_out":"number","transfer_quota":"number"}]],"backups":["list",["object",{"available":"bool","enabled":"bool","schedule":["list",["object",{"day":"string","window":"string"}]]}]],"boot_config_label":"string","config":["list",["object",{"comments":"string","devices":["list",["object",{"sda":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]],"sdb":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]],"sdc":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]],"sdd":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]],"sde":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]],"sdf":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]],"sdg":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]],"sdh":["list",["object",{"disk_id":"number","disk_label":"string","volume_id":"number"}]]}]],"helpers":["list",["object",{"devtmpfs_automount":"bool","distro":"bool","modules_dep":"bool","network":"bool","updatedb_disabled":"bool"}]],"id":"number","interface":["list",["object",{"active":"bool","id":"number","ip_ranges":["list","string"],"ipam_address":"string","ipv4":["list",["object",{"nat_1_1":"string","vpc":"string"}]],"label":"string","primary":"bool","purpose":"string","subnet_id":"number","vpc_id":"number"}]],"kernel":"string","label":"string","memory_limit":"number","root_device":"string","run_level":"string","virt_mode":"string"}]],"disk":["list",["object",{"filesystem":"string","id":"number","label":"string","size":"number"}]],"disk_encryption":"string","group":"string","has_user_data":"bool","host_uuid":"string","id":"number","image":"string","ip_address":"string","ipv4":["set","string"],"ipv6":"string","label":"string","lke_cluster_id":"number","placement_group":["list",["object",{"id":"number","label":"string","placement_group_policy":"string","placement_group_type":"string"}]],"private_ip_address":"string","region":"string","specs":["list",["object",{"disk":"number","memory":"number","transfer":"number","vcpus":"number"}]],"status":"string","swap_size":"number","tags":["set","string"],"type":"string","watchdog_enabled":"bool"}]],"description":"The returned list of Instances.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"list","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["list","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_ipv6_range":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The unique ID for this DataSource","description_kind":"plain","computed":true},"is_bgp":{"type":"bool","description":"Whether this IPv6 range is shared.","description_kind":"plain","computed":true},"linodes":{"type":["set","number"],"description":"The IDs of Linodes to apply this firewall to.","description_kind":"plain","computed":true},"prefix":{"type":"number","description":"The prefix length of the address, denoting how many addresses can be assigned from this range.","description_kind":"plain","computed":true},"range":{"type":"string","description":"The IPv6 range to retrieve information about.","description_kind":"plain","required":true},"region":{"type":"string","description":"The region for this range of IPv6 addresses.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_ipv6_ranges":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"ranges":{"nesting_mode":"list","block":{"attributes":{"prefix":{"type":"number","description":"The prefix length of the address, denoting how many addresses can be assigned from this range.","description_kind":"plain","computed":true},"range":{"type":"string","description":"The IPv6 address of this range.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region for this range of IPv6 addresses.","description_kind":"plain","computed":true},"route_target":{"type":"string","description":"The IPv6 SLAAC address.","description_kind":"plain","computed":true}},"description":"The return list of IPv6 ranges.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_kernel":{"version":0,"block":{"attributes":{"architecture":{"type":"string","description":"The architecture of this Kernel.","description_kind":"plain","computed":true},"built":{"type":"string","description":"The date on which this Kernel was built.","description_kind":"plain","computed":true},"deprecated":{"type":"bool","description":"Whether or not this Kernel is deprecated.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID of this Kernel.","description_kind":"plain","required":true},"kvm":{"type":"bool","description":"If this Kernel is suitable for KVM Linodes.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The friendly name of this Kernel.","description_kind":"plain","computed":true},"pvops":{"type":"bool","description":"If this Kernel is suitable for paravirtualized operations.","description_kind":"plain","computed":true},"version":{"type":"string","description":"Linux Kernel version.","description_kind":"plain","computed":true},"xen":{"type":"bool","description":"If this Kernel is suitable for Xen Linodes.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_kernels":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"kernels":{"nesting_mode":"list","block":{"attributes":{"architecture":{"type":"string","description":"The architecture of this Kernel.","description_kind":"plain","computed":true},"built":{"type":"string","description":"The date on which this Kernel was built.","description_kind":"plain","computed":true},"deprecated":{"type":"bool","description":"Whether or not this Kernel is deprecated.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID of this Kernel.","description_kind":"plain","required":true},"kvm":{"type":"bool","description":"If this Kernel is suitable for KVM Linodes.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The friendly name of this Kernel.","description_kind":"plain","computed":true},"pvops":{"type":"bool","description":"If this Kernel is suitable for paravirtualized operations.","description_kind":"plain","computed":true},"version":{"type":"string","description":"Linux Kernel version.","description_kind":"plain","computed":true},"xen":{"type":"bool","description":"If this Kernel is suitable for Xen Linodes.","description_kind":"plain","computed":true}},"description":"The returned list of Kernels.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_lke_cluster":{"version":0,"block":{"attributes":{"api_endpoints":{"type":["list","string"],"description":"The API endpoints for the cluster.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this Kubernetes cluster was created.","description_kind":"plain","computed":true},"dashboard_url":{"type":"string","description":"The dashboard URL of the cluster.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID of this LKE Cluster.","description_kind":"plain","required":true},"k8s_version":{"type":"string","description":"The desired Kubernetes version for this Kubernetes cluster in the format of \u003cmajor\u003e.\u003cminor\u003e. The latest supported patch version will be deployed.","description_kind":"plain","computed":true},"kubeconfig":{"type":"string","description":"The Base64-encoded Kubeconfig for the cluster.","description_kind":"plain","computed":true,"sensitive":true},"label":{"type":"string","description":"The unique label for the cluster.","description_kind":"plain","computed":true},"region":{"type":"string","description":"This cluster's location.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the cluster.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Kubernetes cluster was updated.","description_kind":"plain","computed":true}},"block_types":{"control_plane":{"nesting_mode":"list","block":{"attributes":{"high_availability":{"type":"bool","description":"Defines whether High Availability is enabled for the Control Plane Components of the cluster.","description_kind":"plain","computed":true}},"block_types":{"acl":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"The default policy. A value of true means a default policy of DENY. A value of false means default policy of ALLOW.","description_kind":"plain","computed":true}},"block_types":{"addresses":{"nesting_mode":"list","block":{"attributes":{"ipv4":{"type":["set","string"],"description":"A set of individual ipv4 addresses or CIDRs allowed.","description_kind":"plain","computed":true},"ipv6":{"type":["set","string"],"description":"A set of individual ipv6 addresses or CIDRs allowed.","description_kind":"plain","computed":true}},"description":"A list of ip addresses allowed.","description_kind":"plain"}}},"description":"The ACL configuration for an LKE cluster's control plane.","description_kind":"plain"}}},"description":"Defines settings for the Kubernetes Control Plane.","description_kind":"plain"}},"pools":{"nesting_mode":"list","block":{"attributes":{"count":{"type":"number","description":"The number of nodes in the Node Pool.","description_kind":"plain","computed":true},"disk_encryption":{"type":"string","description":"The disk encryption policy for the nodes in this pool. NOTE: Disk encryption may not currently be available to all users.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the Node Pool.","description_kind":"plain","computed":true},"labels":{"type":["map","string"],"description":"Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects.","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"taints":{"type":["set",["object",{"effect":"string","key":"string","value":"string"}]],"description":"Kubernetes taints to add to node pool nodes. Taints help control how pods are scheduled onto nodes, specifically allowing them to repel certain pods.","description_kind":"plain","computed":true},"type":{"type":"string","description":"A Linode Type for all of the nodes in the Node Pool.","description_kind":"plain","computed":true}},"block_types":{"autoscaler":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Whether autoscaling is enabled for this Node Pool. Defaults to false.","description_kind":"plain","computed":true},"max":{"type":"number","description":"The maximum number of nodes to autoscale to. Defaults to the Node Pool’s count.","description_kind":"plain","computed":true},"min":{"type":"number","description":"The minimum number of nodes to autoscale to. Defaults to the Node Pool’s count.","description_kind":"plain","computed":true}},"description":"When specified, the number of nodes autoscales within the defined minimum and maximum values.","description_kind":"plain"}},"disks":{"nesting_mode":"list","block":{"attributes":{"size":{"type":"number","description":"The size of this custom disk partition in MB.","description_kind":"plain","computed":true},"type":{"type":"string","description":"This custom disk partition’s filesystem type.","description_kind":"plain","computed":true}},"description":"This Node Pool’s custom disk layout.","description_kind":"plain"}},"nodes":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"The ID of the node.","description_kind":"plain","computed":true},"instance_id":{"type":"number","description":"The ID of the underlying Linode instance.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the node.","description_kind":"plain","computed":true}},"description":"The nodes in the node pool.","description_kind":"plain"}}},"description":"All active Node Pools on the cluster.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_lke_clusters":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"lke_clusters":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"When this Kubernetes cluster was created.","description_kind":"plain","computed":true},"id":{"type":"number","description":"This Kubernetes cluster’s unique ID.","description_kind":"plain","computed":true},"k8s_version":{"type":"string","description":"The desired Kubernetes version for this Kubernetes cluster in the format of \u003cmajor\u003e.\u003cminor\u003e. The latest supported patch version will be deployed.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The unique label for the cluster.","description_kind":"plain","computed":true},"region":{"type":"string","description":"This cluster's location.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the cluster.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Kubernetes cluster was updated.","description_kind":"plain","computed":true}},"block_types":{"control_plane":{"nesting_mode":"single","block":{"attributes":{"high_availability":{"type":"bool","description":"Defines whether High Availability is enabled for the Control Plane Components of the cluster.","description_kind":"plain","computed":true}},"description":"Defines settings for the Kubernetes Control Plane.","description_kind":"plain"}}},"description":"The returned list of LKE clusters available on the account.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_lke_versions":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"Unique identification field for this list of LKE Versions.","description_kind":"plain","computed":true},"versions":{"type":["list",["object",{"id":"string"}]],"description":"The Kubernetes version numbers available for deployment to a Kubernetes cluster.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_networking_ip":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The IP address.","description_kind":"plain","required":true},"gateway":{"type":"string","description":"The default gateway for this address.","description_kind":"plain","computed":true},"id":{"type":"string","description":"A unique identifier for this datasource.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode this address currently belongs to.","description_kind":"plain","computed":true},"prefix":{"type":"number","description":"The number of bits set in the subnet mask.","description_kind":"plain","computed":true},"public":{"type":"bool","description":"Whether this is a public or private IP address.","description_kind":"plain","computed":true},"rdns":{"type":"string","description":"The reverse DNS assigned to this address. For public IPv4 addresses, this will be set to a default value provided by Linode if not explicitly set.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The Region this IP address resides in.","description_kind":"plain","computed":true},"subnet_mask":{"type":"string","description":"The mask that separates host bits from network bits for this address.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of address this is (ipv4, ipv6, ipv6/pool, ipv6/range).","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_nodebalancer":{"version":1,"block":{"attributes":{"client_conn_throttle":{"type":"number","description":"Throttle connections per second (0-20). Set to 0 (zero) to disable throttling.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this NodeBalancer was created.","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"This NodeBalancer's hostname, ending with .nodebalancer.linode.com","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID of the Linode NodeBalancer.","description_kind":"plain","required":true},"ipv4":{"type":"string","description":"The Public IPv4 Address of this NodeBalancer","description_kind":"plain","computed":true},"ipv6":{"type":"string","description":"The Public IPv6 Address of this NodeBalancer","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the Linode NodeBalancer.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region where this NodeBalancer will be deployed.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"transfer":{"type":["list",["object",{"in":"number","out":"number","total":"number"}]],"description":"Information about the amount of transfer this NodeBalancer has had so far this month.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this NodeBalancer was last updated.","description_kind":"plain","computed":true}},"block_types":{"firewalls":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"When this Firewall was created.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID assigned to this Firewall.","description_kind":"plain","computed":true},"inbound_policy":{"type":"string","description":"The default behavior for inbound traffic.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label for the Firewall. For display purposes only. If no label is provided, a default will be assigned.","description_kind":"plain","computed":true},"outbound_policy":{"type":"string","description":"The default behavior for outbound traffic.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the firewall.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this Firewall was last updated.","description_kind":"plain","computed":true}},"block_types":{"inbound":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP).","description_kind":"plain","computed":true},"ipv4":{"type":["set","string"],"description":"A list of IPv4 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"ipv6":{"type":["set","string"],"description":"A list of IPv6 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of this rule for display purposes only.","description_kind":"plain","computed":true},"ports":{"type":"string","description":"A string representation of ports and/or port ranges (i.e. \"443\" or \"80-90, 91\").","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The network protocol this rule controls. (TCP, UDP, ICMP)","description_kind":"plain","computed":true}},"description":"A set of firewall rules that specify what inbound network traffic is allowed.","description_kind":"plain"}},"outbound":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP).","description_kind":"plain","computed":true},"ipv4":{"type":["set","string"],"description":"A list of IPv4 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"ipv6":{"type":["set","string"],"description":"A list of IPv6 addresses or networks in IP/mask format.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of this rule for display purposes only.","description_kind":"plain","computed":true},"ports":{"type":"string","description":"A string representation of ports and/or port ranges (i.e. \"443\" or \"80-90, 91\").","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The network protocol this rule controls. (TCP, UDP, ICMP)","description_kind":"plain","computed":true}},"description":"A set of firewall rules that specify what outbound network traffic is allowed.","description_kind":"plain"}}},"description":"A list of Firewalls assigned to this NodeBalancer.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_nodebalancer_config":{"version":1,"block":{"attributes":{"algorithm":{"type":"string","description":"What algorithm this NodeBalancer should use for routing traffic to backends: roundrobin, leastconn, source","description_kind":"plain","computed":true},"check":{"type":"string","description":"The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. If none no check is performed. connection requires only a connection to the backend to succeed. http and http_body rely on the backend serving HTTP, and that the response returned matches what is expected.","description_kind":"plain","computed":true},"check_attempts":{"type":"number","description":"How many times to attempt a check before considering a backend to be down. (1-30)","description_kind":"plain","computed":true},"check_body":{"type":"string","description":"This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down","description_kind":"plain","computed":true},"check_interval":{"type":"number","description":"How often, in seconds, to check that backends are up and serving requests.","description_kind":"plain","computed":true},"check_passive":{"type":"bool","description":"If true, any response from this backend with a 5xx status code will be enough for it to be considered unhealthy and taken out of rotation.","description_kind":"plain","computed":true},"check_path":{"type":"string","description":"The URL path to check on each backend. If the backend does not respond to this request it is considered to be down.","description_kind":"plain","computed":true},"check_timeout":{"type":"number","description":"How long, in seconds, to wait for a check attempt before considering it failed. (1-30)","description_kind":"plain","computed":true},"cipher_suite":{"type":"string","description":"What ciphers to use for SSL connections served by this NodeBalancer. `legacy` is considered insecure and should only be used if necessary.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the NodeBalancer config.","description_kind":"plain","required":true},"node_status":{"type":["list",["object",{"down":"number","up":"number"}]],"description":"A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends.","description_kind":"plain","computed":true},"nodebalancer_id":{"type":"number","description":"The ID of the NodeBalancer to access.","description_kind":"plain","required":true},"port":{"type":"number","description":"The TCP port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443.","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The protocol this port is configured to serve. If this is set to https you must include an ssl_cert and an ssl_key.","description_kind":"plain","computed":true},"proxy_protocol":{"type":"string","description":"The version of ProxyProtocol to use for the underlying NodeBalancer. This requires protocol to be `tcp`. Valid values are `none`, `v1`, and `v2`.","description_kind":"plain","computed":true},"ssl_commonname":{"type":"string","description":"The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.","description_kind":"plain","computed":true},"ssl_fingerprint":{"type":"string","description":"The read-only fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.","description_kind":"plain","computed":true},"stickiness":{"type":"string","description":"Controls how session stickiness is handled on this port: 'none', 'table', 'http_cookie'","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_nodebalancer_configs":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"nodebalancer_id":{"type":"number","description":"The ID of the NodeBalancer to access.","description_kind":"plain","required":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"nodebalancer_configs":{"nesting_mode":"list","block":{"attributes":{"algorithm":{"type":"string","description":"What algorithm this NodeBalancer should use for routing traffic to backends: roundrobin, leastconn, source","description_kind":"plain","computed":true},"check":{"type":"string","description":"The type of check to perform against backends to ensure they are serving requests. This is used to determine if backends are up or down. If none no check is performed. connection requires only a connection to the backend to succeed. http and http_body rely on the backend serving HTTP, and that the response returned matches what is expected.","description_kind":"plain","computed":true},"check_attempts":{"type":"number","description":"How many times to attempt a check before considering a backend to be down. (1-30)","description_kind":"plain","computed":true},"check_body":{"type":"string","description":"This value must be present in the response body of the check in order for it to pass. If this value is not present in the response body of a check request, the backend is considered to be down","description_kind":"plain","computed":true},"check_interval":{"type":"number","description":"How often, in seconds, to check that backends are up and serving requests.","description_kind":"plain","computed":true},"check_passive":{"type":"bool","description":"If true, any response from this backend with a 5xx status code will be enough for it to be considered unhealthy and taken out of rotation.","description_kind":"plain","computed":true},"check_path":{"type":"string","description":"The URL path to check on each backend. If the backend does not respond to this request it is considered to be down.","description_kind":"plain","computed":true},"check_timeout":{"type":"number","description":"How long, in seconds, to wait for a check attempt before considering it failed. (1-30)","description_kind":"plain","computed":true},"cipher_suite":{"type":"string","description":"What ciphers to use for SSL connections served by this NodeBalancer. `legacy` is considered insecure and should only be used if necessary.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The ID of the NodeBalancer config.","description_kind":"plain","required":true},"node_status":{"type":["list",["object",{"down":"number","up":"number"}]],"description":"A structure containing information about the health of the backends for this port. This information is updated periodically as checks are performed against backends.","description_kind":"plain","computed":true},"nodebalancer_id":{"type":"number","description":"The ID of the NodeBalancer to access.","description_kind":"plain","required":true},"port":{"type":"number","description":"The TCP port this Config is for. These values must be unique across configs on a single NodeBalancer (you can't have two configs for port 80, for example). While some ports imply some protocols, no enforcement is done and you may configure your NodeBalancer however is useful to you. For example, while port 443 is generally used for HTTPS, you do not need SSL configured to have a NodeBalancer listening on port 443.","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The protocol this port is configured to serve. If this is set to https you must include an ssl_cert and an ssl_key.","description_kind":"plain","computed":true},"proxy_protocol":{"type":"string","description":"The version of ProxyProtocol to use for the underlying NodeBalancer. This requires protocol to be `tcp`. Valid values are `none`, `v1`, and `v2`.","description_kind":"plain","computed":true},"ssl_commonname":{"type":"string","description":"The read-only common name automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.","description_kind":"plain","computed":true},"ssl_fingerprint":{"type":"string","description":"The read-only fingerprint automatically derived from the SSL certificate assigned to this NodeBalancerConfig. Please refer to this field to verify that the appropriate certificate is assigned to your NodeBalancerConfig.","description_kind":"plain","computed":true},"stickiness":{"type":"string","description":"Controls how session stickiness is handled on this port: 'none', 'table', 'http_cookie'","description_kind":"plain","computed":true}},"description":"The returned list of NodeBalancer Configs.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_nodebalancer_node":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The private IP Address and port (IP:PORT) where this backend can be reached. This must be a private IP address.","description_kind":"plain","computed":true},"config_id":{"type":"number","description":"The ID of the NodeBalancerConfig to access.","description_kind":"plain","required":true},"id":{"type":"number","description":"The ID of the NodeBalancer node.","description_kind":"plain","required":true},"label":{"type":"string","description":"The label for this node. This is for display purposes only.","description_kind":"plain","computed":true},"mode":{"type":"string","description":"The mode this NodeBalancer should use when sending traffic to this backend. If set to `accept` this backend is accepting traffic. If set to `reject` this backend will not receive traffic. If set to `drain` this backend will not receive new traffic, but connections already pinned to it will continue to be routed to it. If set to `backup` this backend will only accept traffic if all other nodes are down.","description_kind":"plain","computed":true},"nodebalancer_id":{"type":"number","description":"The ID of the NodeBalancer to access.","description_kind":"plain","required":true},"status":{"type":"string","description":"The current status of this node, based on the configured checks of its NodeBalancer Config. (unknown, UP, DOWN)","description_kind":"plain","computed":true},"weight":{"type":"number","description":"Used when picking a backend to serve a request and is not pinned to a single backend yet. Nodes with a higher weight will receive more traffic. (1-255)","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_nodebalancers":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"nodebalancers":{"nesting_mode":"list","block":{"attributes":{"client_conn_throttle":{"type":"number","description":"Throttle connections per second (0-20). Set to 0 (zero) to disable throttling.","description_kind":"plain","computed":true},"created":{"type":"string","description":"When this NodeBalancer was created.","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"This NodeBalancer's hostname, ending with .nodebalancer.linode.com","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique ID of the Linode NodeBalancer.","description_kind":"plain","required":true},"ipv4":{"type":"string","description":"The Public IPv4 Address of this NodeBalancer","description_kind":"plain","computed":true},"ipv6":{"type":"string","description":"The Public IPv6 Address of this NodeBalancer","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the Linode NodeBalancer.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region where this NodeBalancer will be deployed.","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this object. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"transfer":{"type":["list",["object",{"in":"number","out":"number","total":"number"}]],"description":"Information about the amount of transfer this NodeBalancer has had so far this month.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"When this NodeBalancer was last updated.","description_kind":"plain","computed":true}},"description":"The returned list of NodeBalancers.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_object_storage_bucket":{"version":0,"block":{"attributes":{"cluster":{"type":"string","description":"The ID of the Object Storage Cluster this bucket is in.","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"created":{"type":"string","description":"When this bucket was created.","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"The hostname where this bucket can be accessed.This hostname can be accessed through a browser if the bucket is made public.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The id of this bucket.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The name of this bucket.","description_kind":"plain","required":true},"objects":{"type":"number","description":"The number of objects stored in this bucket.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The ID of the region this bucket is in.","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description":"The size of the bucket in bytes.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_object_storage_cluster":{"version":0,"block":{"attributes":{"domain":{"type":"string","description":"The base URL for this cluster.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID of this Cluster.","description_kind":"plain","required":true},"region":{"type":"string","description":"The region this cluster is located in.","description_kind":"plain","computed":true},"static_site_domain":{"type":"string","description":"The base URL for this cluster used when hosting static sites.","description_kind":"plain","computed":true},"status":{"type":"string","description":"This cluster's status.","description_kind":"plain","computed":true}},"description_kind":"plain","deprecated":true}},"linode_placement_group":{"version":0,"block":{"attributes":{"id":{"type":"number","description":"The ID of the placement group.","description_kind":"plain","required":true},"is_compliant":{"type":"bool","description":"Whether all Linodes in this group are currently compliant with the group's placement group type.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the placement group.","description_kind":"plain","computed":true},"placement_group_policy":{"type":"string","description":"Whether Linodes must be able to become compliant during assignment.","description_kind":"plain","computed":true},"placement_group_type":{"type":"string","description":"The placement group type for Linodes in a placement group","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region that the placement group is in.","description_kind":"plain","computed":true}},"block_types":{"members":{"nesting_mode":"set","block":{"attributes":{"is_compliant":{"type":"bool","description":"Whether this Linode is currently compliant with the group's placement group type.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode.","description_kind":"plain","computed":true}},"description":"A list of Linodes assigned to a placement group.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_placement_groups":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"placement_groups":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"number","description":"The ID of the placement group.","description_kind":"plain","required":true},"is_compliant":{"type":"bool","description":"Whether all Linodes in this group are currently compliant with the group's placement group type.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the placement group.","description_kind":"plain","computed":true},"placement_group_policy":{"type":"string","description":"Whether Linodes must be able to become compliant during assignment.","description_kind":"plain","computed":true},"placement_group_type":{"type":"string","description":"The placement group type for Linodes in a placement group","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region that the placement group is in.","description_kind":"plain","computed":true}},"block_types":{"members":{"nesting_mode":"set","block":{"attributes":{"is_compliant":{"type":"bool","description":"Whether this Linode is currently compliant with the group's placement group type.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The ID of the Linode.","description_kind":"plain","computed":true}},"description":"A list of Linodes assigned to a placement group.","description_kind":"plain"}}},"description":"The returned list of Placement Groups.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_profile":{"version":0,"block":{"attributes":{"authorized_keys":{"type":["list","string"],"description":"The list of SSH Keys authorized to use Lish for this user. This value is ignored if lish_auth_method is 'disabled'.","description_kind":"plain","computed":true},"email":{"type":"string","description":"The profile email address. This address will be used for communication with Linode as necessary.","description_kind":"plain","computed":true},"email_notifications":{"type":"bool","description":"If true, email notifications will be sent about account activity. If false, when false business-critical communications may still be sent through email.","description_kind":"plain","computed":true},"id":{"type":"string","description":"Unique identification field for this datasource.","description_kind":"plain","computed":true},"ip_whitelist_enabled":{"type":"bool","description":"If true, logins for the user will only be allowed from whitelisted IPs. This setting is currently deprecated, and cannot be enabled.","description_kind":"plain","computed":true},"lish_auth_method":{"type":"string","description":"The methods of authentication allowed when connecting via Lish. 'keys_only' is the most secure with the intent to use Lish, and 'disabled' is recommended for users that will not use Lish at all.","description_kind":"plain","computed":true},"referrals":{"type":["list",["object",{"code":"string","completed":"number","credit":"number","pending":"number","total":"number","url":"string"}]],"description":"Credit Card information associated with this Account.","description_kind":"plain","computed":true},"restricted":{"type":"bool","description":"If true, the user has restrictions on what can be accessed on the Account.","description_kind":"plain","computed":true},"timezone":{"type":"string","description":"The profile's preferred timezone. This is not used by the API, and is for the benefit of clients only. All times the API returns are in UTC.","description_kind":"plain","computed":true},"two_factor_auth":{"type":"bool","description":"If true, logins from untrusted computers will require Two Factor Authentication.","description_kind":"plain","computed":true},"username":{"type":"string","description":"The username for logging in to Linode services.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_region":{"version":0,"block":{"attributes":{"capabilities":{"type":["set","string"],"description":"A list of capabilities of this region.","description_kind":"plain","computed":true},"country":{"type":"string","description":"The country where this Region resides.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID of this Region.","description_kind":"plain","required":true},"label":{"type":"string","description":"Detailed location information for this Region, including city, state or region, and country.","description_kind":"plain","computed":true},"placement_group_limits":{"type":["list",["object",{"maximum_linodes_per_pg":"number","maximum_pgs_per_customer":"number"}]],"description":"Information about placement groups limits for this region.","description_kind":"plain","computed":true},"site_type":{"type":"string","description":"The type of this Region.","description_kind":"plain","computed":true},"status":{"type":"string","description":"This region’s current operational status.","description_kind":"plain","computed":true}},"block_types":{"resolvers":{"nesting_mode":"list","block":{"attributes":{"ipv4":{"type":"string","description":"The IPv4 addresses for this region’s DNS resolvers, separated by commas.","description_kind":"plain","computed":true},"ipv6":{"type":"string","description":"The IPv6 addresses for this region’s DNS resolvers, separated by commas.","description_kind":"plain","computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_regions":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"regions":{"nesting_mode":"list","block":{"attributes":{"capabilities":{"type":["set","string"],"description":"A list of capabilities of this region.","description_kind":"plain","computed":true},"country":{"type":"string","description":"The country where this Region resides.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The unique ID of this Region.","description_kind":"plain","required":true},"label":{"type":"string","description":"Detailed location information for this Region, including city, state or region, and country.","description_kind":"plain","computed":true},"placement_group_limits":{"type":["list",["object",{"maximum_linodes_per_pg":"number","maximum_pgs_per_customer":"number"}]],"description":"Information about placement groups limits for this region.","description_kind":"plain","computed":true},"site_type":{"type":"string","description":"The type of this Region.","description_kind":"plain","computed":true},"status":{"type":"string","description":"This region’s current operational status.","description_kind":"plain","computed":true}},"block_types":{"resolvers":{"nesting_mode":"list","block":{"attributes":{"ipv4":{"type":"string","description":"The IPv4 addresses for this region’s DNS resolvers, separated by commas.","description_kind":"plain","computed":true},"ipv6":{"type":"string","description":"The IPv6 addresses for this region’s DNS resolvers, separated by commas.","description_kind":"plain","computed":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"description_kind":"plain"}},"linode_sshkey":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The date this key was added.","description_kind":"plain","computed":true},"id":{"type":"string","description":"A unique identifier for this datasource.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The label of the Linode SSH Key.","description_kind":"plain","required":true},"ssh_key":{"type":"string","description":"The public SSH Key, which is used to authenticate to the root user of the Linodes you deploy.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_sshkeys":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"sshkeys":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"The date this key was added.","description_kind":"plain","computed":true},"id":{"type":"string","description":"A unique identifier for this datasource.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The label of the Linode SSH Key.","description_kind":"plain","required":true},"ssh_key":{"type":"string","description":"The public SSH Key, which is used to authenticate to the root user of the Linodes you deploy.","description_kind":"plain","computed":true}},"description":"The returned list of SSH Keys.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_stackscript":{"version":1,"block":{"attributes":{"created":{"type":"string","description":"The date this StackScript was created.","description_kind":"plain","computed":true},"deployments_active":{"type":"number","description":"Count of currently active, deployed Linodes created from this StackScript.","description_kind":"plain","computed":true},"deployments_total":{"type":"number","description":"The total number of times this StackScript has been deployed.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A description for the StackScript.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The StackScript's unique ID.","description_kind":"plain","required":true},"images":{"type":["set","string"],"description":"An array of Image IDs representing the Images that this StackScript is compatible for deploying with.","description_kind":"plain","computed":true},"is_public":{"type":"bool","description":"This determines whether other users can use your StackScript. Once a StackScript is made public, it cannot be made private.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The StackScript's label is for display purposes only.","description_kind":"plain","computed":true},"rev_note":{"type":"string","description":"This field allows you to add notes for the set of revisions made to this StackScript.","description_kind":"plain","computed":true},"script":{"type":"string","description":"The script to execute when provisioning a new Linode with this StackScript.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"The date this StackScript was updated.","description_kind":"plain","computed":true},"user_defined_fields":{"type":["list",["object",{"default":"string","example":"string","label":"string","many_of":"string","name":"string","one_of":"string"}]],"description":"This is a list of fields defined with a special syntax inside this StackScript that allow for supplying customized parameters during deployment.","description_kind":"plain","computed":true},"user_gravatar_id":{"type":"string","description":"The Gravatar ID for the User who created the StackScript.","description_kind":"plain","computed":true},"username":{"type":"string","description":"The User who created the StackScript.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_stackscripts":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"latest":{"type":"bool","description":"If true, only the latest StackScript will be returned.","description_kind":"plain","optional":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"stackscripts":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"The date this StackScript was created.","description_kind":"plain","computed":true},"deployments_active":{"type":"number","description":"Count of currently active, deployed Linodes created from this StackScript.","description_kind":"plain","computed":true},"deployments_total":{"type":"number","description":"The total number of times this StackScript has been deployed.","description_kind":"plain","computed":true},"description":{"type":"string","description":"A description for the StackScript.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The StackScript's unique ID.","description_kind":"plain","required":true},"images":{"type":["set","string"],"description":"An array of Image IDs representing the Images that this StackScript is compatible for deploying with.","description_kind":"plain","computed":true},"is_public":{"type":"bool","description":"This determines whether other users can use your StackScript. Once a StackScript is made public, it cannot be made private.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The StackScript's label is for display purposes only.","description_kind":"plain","computed":true},"rev_note":{"type":"string","description":"This field allows you to add notes for the set of revisions made to this StackScript.","description_kind":"plain","computed":true},"script":{"type":"string","description":"The script to execute when provisioning a new Linode with this StackScript.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"The date this StackScript was updated.","description_kind":"plain","computed":true},"user_defined_fields":{"type":["list",["object",{"default":"string","example":"string","label":"string","many_of":"string","name":"string","one_of":"string"}]],"description":"This is a list of fields defined with a special syntax inside this StackScript that allow for supplying customized parameters during deployment.","description_kind":"plain","computed":true},"user_gravatar_id":{"type":"string","description":"The Gravatar ID for the User who created the StackScript.","description_kind":"plain","computed":true},"username":{"type":"string","description":"The User who created the StackScript.","description_kind":"plain","computed":true}},"description":"The returned list of StackScripts.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_user":{"version":0,"block":{"attributes":{"database_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"domain_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"email":{"type":"string","description":"The email address for this User, for account management communications, and may be used for other communications as configured.","description_kind":"plain","computed":true},"firewall_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"global_grants":{"type":["list",["object",{"account_access":"string","add_databases":"bool","add_domains":"bool","add_firewalls":"bool","add_images":"bool","add_linodes":"bool","add_longview":"bool","add_nodebalancers":"bool","add_stackscripts":"bool","add_volumes":"bool","cancel_account":"bool","longview_subscription":"bool"}]],"description":"A structure containing the Account-level grants a User has.","description_kind":"plain","computed":true},"id":{"type":"string","description":"Unique identifier for this DataSource.","description_kind":"plain","computed":true},"image_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"linode_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"longview_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"nodebalancer_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"password_created":{"type":"string","description":"The date and time when this User’s current password was created.User passwords are first created during the Account sign-up process, and updated using the Reset Password webpage.null if this User has not created a password yet.","description_kind":"plain","computed":true},"restricted":{"type":"bool","description":"If true, this User must be granted access to perform actions or access entities on this Account.","description_kind":"plain","computed":true},"ssh_keys":{"type":["list","string"],"description":"A list of SSH Key labels added by this User. These are the keys that will be deployed if this User is included in the authorized_users field of a create Linode, rebuild Linode, or create Disk request.","description_kind":"plain","computed":true},"stackscript_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"tfa_enabled":{"type":"bool","description":"A boolean value indicating if the User has Two Factor Authentication (TFA) enabled.","description_kind":"plain","computed":true},"user_type":{"type":"string","description":"The type of this user.","description_kind":"plain","computed":true},"username":{"type":"string","description":"This User's username. This is used for logging in, and may also be displayed alongside actions the User performs (for example, in Events or public StackScripts).","description_kind":"plain","required":true},"verified_phone_number":{"type":"string","description":"The phone number verified for this User Profile with the Phone Number Verify command.null if this User Profile has no verified phone number.","description_kind":"plain","computed":true},"volume_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"linode_users":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"users":{"nesting_mode":"list","block":{"attributes":{"database_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"domain_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"email":{"type":"string","description":"The email address for this User, for account management communications, and may be used for other communications as configured.","description_kind":"plain","computed":true},"firewall_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"global_grants":{"type":["list",["object",{"account_access":"string","add_databases":"bool","add_domains":"bool","add_firewalls":"bool","add_images":"bool","add_linodes":"bool","add_longview":"bool","add_nodebalancers":"bool","add_stackscripts":"bool","add_volumes":"bool","cancel_account":"bool","longview_subscription":"bool"}]],"description":"A structure containing the Account-level grants a User has.","description_kind":"plain","computed":true},"id":{"type":"string","description":"Unique identifier for this DataSource.","description_kind":"plain","computed":true},"image_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"linode_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"longview_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"nodebalancer_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"password_created":{"type":"string","description":"The date and time when this User’s current password was created.User passwords are first created during the Account sign-up process, and updated using the Reset Password webpage.null if this User has not created a password yet.","description_kind":"plain","computed":true},"restricted":{"type":"bool","description":"If true, this User must be granted access to perform actions or access entities on this Account.","description_kind":"plain","computed":true},"ssh_keys":{"type":["list","string"],"description":"A list of SSH Key labels added by this User. These are the keys that will be deployed if this User is included in the authorized_users field of a create Linode, rebuild Linode, or create Disk request.","description_kind":"plain","computed":true},"stackscript_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true},"tfa_enabled":{"type":"bool","description":"A boolean value indicating if the User has Two Factor Authentication (TFA) enabled.","description_kind":"plain","computed":true},"user_type":{"type":"string","description":"The type of this user.","description_kind":"plain","computed":true},"username":{"type":"string","description":"This User's username. This is used for logging in, and may also be displayed alongside actions the User performs (for example, in Events or public StackScripts).","description_kind":"plain","required":true},"verified_phone_number":{"type":"string","description":"The phone number verified for this User Profile with the Phone Number Verify command.null if this User Profile has no verified phone number.","description_kind":"plain","computed":true},"volume_grant":{"type":["set",["object",{"id":"number","label":"string","permissions":"string"}]],"description":"A set containing all of the user's active grants.","description_kind":"plain","optional":true,"computed":true}},"description":"The returned list of Users.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_vlans":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"vlans":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"When this VLAN was created.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The unique label of this VLAN.","description_kind":"plain","computed":true},"linodes":{"type":["set","number"],"description":"The Linodes currently attached to this VLAN.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region this VLAN is located in.","description_kind":"plain","computed":true}},"description":"The returned list of VLANs.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_volume":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"Datetime string representing when the Volume was created.","description_kind":"plain","computed":true},"filesystem_path":{"type":"string","description":"The full filesystem path for the Volume based on the Volume's label. Path is /dev/disk/by-id/scsi-0LinodeVolume + Volume label.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique id of this Volume.","description_kind":"plain","required":true},"label":{"type":"string","description":"The Volume's label. For display purposes only.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"If a Volume is attached to a specific Linode, the ID of that Linode will be displayed here.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The datacenter where this Volume is located.","description_kind":"plain","computed":true},"size":{"type":"number","description":"The size of this Volume in GiB.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the Volume. Can be one of active | creating | resizing | contact_support","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this Volume. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"Datetime string representing when the Volume was last updated.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_volumes":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"order":{"type":"string","description":"The order in which results should be returned.","description_kind":"plain","optional":true},"order_by":{"type":"string","description":"The attribute to order the results by.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"volumes":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"Datetime string representing when the Volume was created.","description_kind":"plain","computed":true},"filesystem_path":{"type":"string","description":"The full filesystem path for the Volume based on the Volume's label. Path is /dev/disk/by-id/scsi-0LinodeVolume + Volume label.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The unique id of this Volume.","description_kind":"plain","required":true},"label":{"type":"string","description":"The Volume's label. For display purposes only.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"If a Volume is attached to a specific Linode, the ID of that Linode will be displayed here.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The datacenter where this Volume is located.","description_kind":"plain","computed":true},"size":{"type":"number","description":"The size of this Volume in GiB.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the Volume. Can be one of active | creating | resizing | contact_support","description_kind":"plain","computed":true},"tags":{"type":["set","string"],"description":"An array of tags applied to this Volume. Tags are for organizational purposes only.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"Datetime string representing when the Volume was last updated.","description_kind":"plain","computed":true}},"description":"The return list of Volumes.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_vpc":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The date and time when the VPC was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"The user-defined description of this VPC.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The id of the VPC.","description_kind":"plain","required":true},"label":{"type":"string","description":"The label of the VPC.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region of the VPC.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"The date and time when the VPC was updated.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_vpc_ips":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"vpc_id":{"type":"number","description":"The ID of the VPC that the list of IP addresses is associated with.","description_kind":"plain","optional":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"vpc_ips":{"nesting_mode":"list","block":{"attributes":{"active":{"type":"bool","description":"Returns true if the VPC interface is in use, meaning that the Linode was powered on using the config_id to which the interface belongs. Otherwise returns false","description_kind":"plain","computed":true},"address":{"type":"string","description":"An IPv4 address configured for this VPC interface. These follow the RFC 1918 private address format. Displayed as null if an address_range.","description_kind":"plain","computed":true},"address_range":{"type":"string","description":"A range of IPv4 addresses configured for this VPC interface. Displayed as null if a single address.","description_kind":"plain","computed":true},"config_id":{"type":"number","description":"The globally general entity identifier for the Linode configuration profile where the VPC is included.","description_kind":"plain","computed":true},"gateway":{"type":"string","description":"The default gateway for the VPC subnet that the IP or IP range belongs to.","description_kind":"plain","computed":true},"interface_id":{"type":"number","description":"The globally general API entity identifier for the Linode interface.","description_kind":"plain","computed":true},"linode_id":{"type":"number","description":"The identifier for the Linode the VPC interface currently belongs to.","description_kind":"plain","computed":true},"nat_1_1":{"type":"string","description":"The public IP address used for NAT 1:1 with the VPC. This is empty if NAT 1:1 isn't used.","description_kind":"plain","computed":true},"prefix":{"type":"number","description":"The number of bits set in the subnet_mask.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region of the VPC.","description_kind":"plain","computed":true},"subnet_id":{"type":"number","description":"The id of the VPC Subnet for this interface.","description_kind":"plain","computed":true},"subnet_mask":{"type":"string","description":"The mask that separates host bits from network bits for the address or address_range.","description_kind":"plain","computed":true},"vpc_id":{"type":"number","description":"The unique globally general API entity identifier for the VPC.","description_kind":"plain","computed":true}},"description":"The returned list of IP addresses that exist in Linode's system, either IPv4 or IPv6.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_vpc_subnet":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The date and time when the VPC Subnet was created.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The id of the VPC Subnet.","description_kind":"plain","required":true},"ipv4":{"type":"string","description":"The IPv4 range of this subnet in CIDR format.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the VPC Subnet.","description_kind":"plain","computed":true},"linodes":{"type":["list",["object",{"id":"number","interfaces":["list",["object",{"active":"bool","id":"number"}]]}]],"description_kind":"plain","computed":true},"updated":{"type":"string","description":"The date and time when the VPC Subnet was updated.","description_kind":"plain","computed":true},"vpc_id":{"type":"number","description":"The id of the parent VPC for this VPC Subnet","description_kind":"plain","required":true}},"description_kind":"plain"}},"linode_vpc_subnets":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true},"vpc_id":{"type":"number","description":"The id of the parent VPC for the list of VPC subnets","description_kind":"plain","required":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"vpc_subnets":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"The date and time when the VPC Subnet was created.","description_kind":"plain","computed":true},"id":{"type":"number","description":"The id of the VPC Subnet.","description_kind":"plain","computed":true},"ipv4":{"type":"string","description":"The IPv4 range of this subnet in CIDR format.","description_kind":"plain","computed":true},"label":{"type":"string","description":"The label of the VPC Subnet.","description_kind":"plain","computed":true},"linodes":{"type":["list",["object",{"id":"number","interfaces":["list",["object",{"active":"bool","id":"number"}]]}]],"description_kind":"plain","computed":true},"updated":{"type":"string","description":"The date and time when the VPC Subnet was updated.","description_kind":"plain","computed":true}},"description":"The returned list of subnets under a VPC.","description_kind":"plain"}}},"description_kind":"plain"}},"linode_vpcs":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"The data source's unique ID.","description_kind":"plain","computed":true}},"block_types":{"filter":{"nesting_mode":"set","block":{"attributes":{"match_by":{"type":"string","description":"The type of comparison to use for this filter.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the attribute to filter on.","description_kind":"plain","required":true},"values":{"type":["set","string"],"description":"The value(s) to be used in the filter.","description_kind":"plain","required":true}},"description_kind":"plain"}},"vpcs":{"nesting_mode":"list","block":{"attributes":{"created":{"type":"string","description":"The date and time when the VPC was created.","description_kind":"plain","computed":true},"description":{"type":"string","description":"The user-defined description of this VPC.","description_kind":"plain","computed":true},"id":{"type":"string","description":"The id of the VPC.","description_kind":"plain","required":true},"label":{"type":"string","description":"The label of the VPC.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region of the VPC.","description_kind":"plain","computed":true},"updated":{"type":"string","description":"The date and time when the VPC was updated.","description_kind":"plain","computed":true}},"description":"The returned list of VPCs.","description_kind":"plain"}}},"description_kind":"plain"}}}}}} diff --git a/examples-generated/image/v1alpha1/image.yaml b/examples-generated/image/v1alpha1/image.yaml index 1983b2c..07f5923 100644 --- a/examples-generated/image/v1alpha1/image.yaml +++ b/examples-generated/image/v1alpha1/image.yaml @@ -16,6 +16,9 @@ spec: linodeIdSelector: matchLabels: testing.upbound.io/example-name: foo + tags: + - image-tag + - test --- diff --git a/go.mod b/go.mod index 6414a23..edb8d6d 100644 --- a/go.mod +++ b/go.mod @@ -1,16 +1,18 @@ module github.com/linode/provider-linode -go 1.21 +go 1.22.0 + +toolchain go1.22.5 require ( dario.cat/mergo v1.0.0 github.com/crossplane/crossplane-runtime v1.16.0 github.com/crossplane/crossplane-tools v0.0.0-20240516011917-bfb5045f0903 github.com/crossplane/upjet v1.4.0 - github.com/go-resty/resty/v2 v2.13.1 + github.com/go-resty/resty/v2 v2.14.0 github.com/hashicorp/terraform-json v0.22.1 github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 - github.com/linode/terraform-provider-linode/v2 v2.25.0 + github.com/linode/terraform-provider-linode/v2 v2.28.0 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.18.0 gopkg.in/alecthomas/kingpin.v2 v2.2.6 @@ -28,25 +30,25 @@ require ( github.com/antchfx/htmlquery v1.2.4 // indirect github.com/antchfx/xpath v1.2.0 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect - github.com/aws/aws-sdk-go-v2 v1.30.3 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 // indirect + github.com/aws/aws-sdk-go-v2 v1.30.4 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 // indirect github.com/aws/aws-sdk-go-v2/config v1.27.23 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.23 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.9 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.4 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.15 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.17 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.15 // indirect - github.com/aws/aws-sdk-go-v2/service/s3 v1.58.2 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.61.0 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.22.1 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.1 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.30.1 // indirect - github.com/aws/smithy-go v1.20.3 // indirect + github.com/aws/smithy-go v1.20.4 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect @@ -79,9 +81,10 @@ require ( github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/hcl/v2 v2.21.0 // indirect github.com/hashicorp/logutils v1.0.0 // indirect - github.com/hashicorp/terraform-plugin-framework v1.10.0 // indirect + github.com/hashicorp/terraform-plugin-framework v1.11.0 // indirect + github.com/hashicorp/terraform-plugin-framework-nettypes v0.2.0 // indirect github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 // indirect - github.com/hashicorp/terraform-plugin-framework-timetypes v0.4.0 // indirect + github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0 // indirect github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 // indirect github.com/hashicorp/terraform-plugin-go v0.23.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect @@ -93,7 +96,7 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/linode/linodego v1.38.0 // indirect + github.com/linode/linodego v1.40.0 // indirect github.com/linode/linodego/k8s v1.25.2 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect @@ -122,20 +125,20 @@ require ( github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect github.com/xhit/go-str2duration/v2 v2.1.0 // indirect github.com/yuin/goldmark v1.4.13 // indirect - github.com/zclconf/go-cty v1.14.4 // indirect + github.com/zclconf/go-cty v1.15.0 // indirect github.com/zclconf/go-cty-yaml v1.0.3 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.26.0 // indirect - golang.org/x/crypto v0.25.0 // indirect + golang.org/x/crypto v0.27.0 // indirect golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect - golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.27.0 // indirect - golang.org/x/oauth2 v0.21.0 // indirect - golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.22.0 // indirect - golang.org/x/term v0.22.0 // indirect - golang.org/x/text v0.16.0 // indirect - golang.org/x/time v0.5.0 // indirect + golang.org/x/mod v0.19.0 // indirect + golang.org/x/net v0.29.0 // indirect + golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.25.0 // indirect + golang.org/x/term v0.24.0 // indirect + golang.org/x/text v0.18.0 // indirect + golang.org/x/time v0.6.0 // indirect golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/appengine v1.6.8 // indirect diff --git a/go.sum b/go.sum index 86671ef..7299784 100644 --- a/go.sum +++ b/go.sum @@ -22,10 +22,10 @@ github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJE github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= -github.com/aws/aws-sdk-go-v2 v1.30.3 h1:jUeBtG0Ih+ZIFH0F4UkmL9w3cSpaMv9tYYDbzILP8dY= -github.com/aws/aws-sdk-go-v2 v1.30.3/go.mod h1:nIQjQVp5sfpQcTc9mPSr1B0PaWK5ByX9MOoDadSN4lc= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 h1:tW1/Rkad38LA15X4UQtjXZXNKsCgkshC3EbmcUmghTg= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3/go.mod h1:UbnqO+zjqk3uIt9yCACHJ9IVNhyhOCnYk8yA19SAWrM= +github.com/aws/aws-sdk-go-v2 v1.30.4 h1:frhcagrVNrzmT95RJImMHgabt99vkXGslubDaDagTk8= +github.com/aws/aws-sdk-go-v2 v1.30.4/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 h1:70PVAiL15/aBMh5LThwgXdSQorVr91L127ttckI9QQU= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4/go.mod h1:/MQxMqci8tlqDH+pjmoLu1i0tbWCUP1hhyMRuFxpQCw= github.com/aws/aws-sdk-go-v2/config v1.27.23 h1:Cr/gJEa9NAS7CDAjbnB7tHYb3aLZI2gVggfmSAasDac= github.com/aws/aws-sdk-go-v2/config v1.27.23/go.mod h1:WMMYHqLCFu5LH05mFOF5tsq1PGEMfKbu083VKqLCd0o= github.com/aws/aws-sdk-go-v2/credentials v1.17.23 h1:G1CfmLVoO2TdQ8z9dW+JBc/r8+MqyPQhXCafNZcXVZo= @@ -34,32 +34,32 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.9 h1:Aznqksmd6Rfv2HQN9cpqIV/ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.9/go.mod h1:WQr3MY7AxGNxaqAtsDWn+fBxmd4XvLkzeqQ8P1VM0/w= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.4 h1:6eKRM6fgeXG4krRO9XKz755vuRhT5UyB9M1W6vjA3JU= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.4/go.mod h1:h0TjcRi+nTob6fksqubKOe+Hra8uqfgmN+vuw4xRwWE= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 h1:SoNJ4RlFEQEbtDcCEt+QG56MY4fm4W8rYirAmq+/DdU= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15/go.mod h1:U9ke74k1n2bf+RIgoX1SXFed1HLs51OgUSs+Ph0KJP8= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 h1:C6WHdGnTDIYETAm5iErQUiVNsclNx9qbJVPIt03B6bI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15/go.mod h1:ZQLZqhcu+JhSrA9/NXRm8SkDvsycE+JkV3WGY41e+IM= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 h1:TNyt/+X43KJ9IJJMjKfa3bNTiZbUP7DeCxfbTROESwY= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16/go.mod h1:2DwJF39FlNAUiX5pAc0UNeiz16lK2t7IaFcm0LFHEgc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 h1:jYfy8UPmd+6kJW5YhY0L1/KftReOGxI/4NtVSTh9O/I= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16/go.mod h1:7ZfEPZxkW42Afq4uQB8H2E2e6ebh6mXTueEpYzjCzcs= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.15 h1:Z5r7SycxmSllHYmaAZPpmN8GviDrSGhMS6bldqtXZPw= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.15/go.mod h1:CetW7bDE00QoGEmPUoZuRog07SGVAUVW6LFpNP0YfIg= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 h1:dT3MqvGhSoaIhRseqw2I0yH81l7wiR2vjs57O51EAm8= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3/go.mod h1:GlAeCkHwugxdHaueRr4nhPuY+WW+gR8UjlcqzPr1SPI= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.17 h1:YPYe6ZmvUfDDDELqEKtAd6bo8zxhkm+XEFEzQisqUIE= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.17/go.mod h1:oBtcnYua/CgzCWYN7NZ5j7PotFDaFSUjCYVTtfyn7vw= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 h1:HGErhhrxZlQ044RiM+WdoZxp0p+EGM62y3L6pwA4olE= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17/go.mod h1:RkZEx4l0EHYDJpWppMJ3nD9wZJAa8/0lq9aVC+r2UII= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.15 h1:246A4lSTXWJw/rmlQI+TT2OcqeDMKBdyjEQrafMaQdA= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.15/go.mod h1:haVfg3761/WF7YPuJOER2MP0k4UAXyHaLclKXB6usDg= -github.com/aws/aws-sdk-go-v2/service/s3 v1.58.2 h1:sZXIzO38GZOU+O0C+INqbH7C2yALwfMWpd64tONS/NE= -github.com/aws/aws-sdk-go-v2/service/s3 v1.58.2/go.mod h1:Lcxzg5rojyVPU/0eFwLtcyTaek/6Mtic5B1gJo7e/zE= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 h1:mimdLQkIX1zr8GIPY1ZtALdBQGxcASiBd2MOp8m/dMc= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16/go.mod h1:YHk6owoSwrIsok+cAH9PENCOGoH5PU2EllX4vLtSrsY= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 h1:KypMCbLPPHEmf9DgMGw51jMj77VfGPAN2Kv4cfhlfgI= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4/go.mod h1:Vz1JQXliGcQktFTN/LN6uGppAIRoLBR2bMvIMP0gOjc= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 h1:GckUnpm4EJOAio1c8o25a+b3lVfwVzC9gnSBqiiNmZM= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18/go.mod h1:Br6+bxfG33Dk3ynmkhsW2Z/t9D4+lRqdLDNCKi85w0U= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 h1:tJ5RnkHCiSH0jyd6gROjlJtNwov0eGYNz8s8nFcR0jQ= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18/go.mod h1:++NHzT+nAF7ZPrHPsA+ENvsXkOO8wEu+C6RXltAG4/c= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 h1:jg16PhLPUiHIj8zYIW6bqzeQSuHVEiWnGA0Brz5Xv2I= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16/go.mod h1:Uyk1zE1VVdsHSU7096h/rwnXDzOzYQVl+FNPhPw7ShY= +github.com/aws/aws-sdk-go-v2/service/s3 v1.61.0 h1:Wb544Wh+xfSXqJ/j3R4aX9wrKUoZsJNmilBYZb3mKQ4= +github.com/aws/aws-sdk-go-v2/service/s3 v1.61.0/go.mod h1:BSPI0EfnYUuNHPS0uqIo5VrRwzie+Fp+YhQOUs16sKI= github.com/aws/aws-sdk-go-v2/service/sso v1.22.1 h1:p1GahKIjyMDZtiKoIn0/jAj/TkMzfzndDv5+zi2Mhgc= github.com/aws/aws-sdk-go-v2/service/sso v1.22.1/go.mod h1:/vWdhoIoYA5hYoPZ6fm7Sv4d8701PiG5VKe8/pPJL60= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.1 h1:lCEv9f8f+zJ8kcFeAjRZsekLd/x5SAm96Cva+VbUdo8= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.1/go.mod h1:xyFHA4zGxgYkdD73VeezHt3vSKEG9EmFnGwoKlP00u4= github.com/aws/aws-sdk-go-v2/service/sts v1.30.1 h1:+woJ607dllHJQtsnJLi52ycuqHMwlW+Wqm2Ppsfp4nQ= github.com/aws/aws-sdk-go-v2/service/sts v1.30.1/go.mod h1:jiNR3JqT15Dm+QWq2SRgh0x0bCNSRP2L25+CqPNpJlQ= -github.com/aws/smithy-go v1.20.3 h1:ryHwveWzPV5BIof6fyDvor6V3iUL7nTfiTKXHiW05nE= -github.com/aws/smithy-go v1.20.3/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= +github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4= +github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= @@ -105,8 +105,8 @@ github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2Kv github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= -github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= -github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= +github.com/go-resty/resty/v2 v2.14.0 h1:/rhkzsAqGQkozwfKS5aFAbb6TyKd3zyFRWcdRXLPCAU= +github.com/go-resty/resty/v2 v2.14.0/go.mod h1:IW6mekUOsElt9C7oWr0XRt9BNSD6D5rr9mhk6NjmNHg= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= @@ -158,12 +158,14 @@ github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+l github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDmTk8A= github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI= +github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU= +github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/hc-install v0.7.0 h1:Uu9edVqjKQxxuD28mR5TikkKDd/p55S8vzPC1659aBk= -github.com/hashicorp/hc-install v0.7.0/go.mod h1:ELmmzZlGnEcqoUMKUuykHaPCIR1sYLYX+KSggWSKZuA= +github.com/hashicorp/hc-install v0.8.0 h1:LdpZeXkZYMQhoKPCecJHlKvUkQFixN/nvyR1CdfOLjI= +github.com/hashicorp/hc-install v0.8.0/go.mod h1:+MwJYjDfCruSD/udvBmRB22Nlkwwkwf5sAB6uTIhSaU= github.com/hashicorp/hcl/v2 v2.9.1/go.mod h1:FwWsfWEjyV/CMj8s/gqAuiviY72rJ1/oayI9WftqcKg= github.com/hashicorp/hcl/v2 v2.21.0 h1:lve4q/o/2rqwYOgUg3y3V2YPyD1/zkCLGjIV74Jit14= github.com/hashicorp/hcl/v2 v2.21.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= @@ -173,12 +175,14 @@ github.com/hashicorp/terraform-exec v0.21.0 h1:uNkLAe95ey5Uux6KJdua6+cv8asgILFVW github.com/hashicorp/terraform-exec v0.21.0/go.mod h1:1PPeMYou+KDUSSeRE9szMZ/oHf4fYUmB923Wzbq1ICg= github.com/hashicorp/terraform-json v0.22.1 h1:xft84GZR0QzjPVWs4lRUwvTcPnegqlyS7orfb5Ltvec= github.com/hashicorp/terraform-json v0.22.1/go.mod h1:JbWSQCLFSXFFhg42T7l9iJwdGXBYV8fmmD6o/ML4p3A= -github.com/hashicorp/terraform-plugin-framework v1.10.0 h1:xXhICE2Fns1RYZxEQebwkB2+kXouLC932Li9qelozrc= -github.com/hashicorp/terraform-plugin-framework v1.10.0/go.mod h1:qBXLDn69kM97NNVi/MQ9qgd1uWWsVftGSnygYG1tImM= +github.com/hashicorp/terraform-plugin-framework v1.11.0 h1:M7+9zBArexHFXDx/pKTxjE6n/2UCXY6b8FIq9ZYhwfE= +github.com/hashicorp/terraform-plugin-framework v1.11.0/go.mod h1:qBXLDn69kM97NNVi/MQ9qgd1uWWsVftGSnygYG1tImM= +github.com/hashicorp/terraform-plugin-framework-nettypes v0.2.0 h1:Zap24rkky7SvNGGNYHMKFhAriP6+6riI21BMYOYgLRE= +github.com/hashicorp/terraform-plugin-framework-nettypes v0.2.0/go.mod h1:CYPq+I5bWsmI8021VJY85hAyOeiEEQpdGW+NapdQn7A= github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 h1:gm5b1kHgFFhaKFhm4h2TgvMUlNzFAtUqlcOWnWPm+9E= github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1/go.mod h1:MsjL1sQ9L7wGwzJ5RjcI6FzEMdyoBnw+XK8ZnOvQOLY= -github.com/hashicorp/terraform-plugin-framework-timetypes v0.4.0 h1:XLI93Oqw2/KTzYjgCXrUnm8LBkGAiHC/mDQg5g5Vob4= -github.com/hashicorp/terraform-plugin-framework-timetypes v0.4.0/go.mod h1:mGuieb3bqKFYwEYB4lCMt302Z3siyv4PFYk/41wAUps= +github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0 h1:v3DapR8gsp3EM8fKMh6up9cJUFQ2iRaFsYLP8UJnCco= +github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0/go.mod h1:c3PnGE9pHBDfdEVG9t1S1C9ia5LW+gkFR0CygXlM8ak= github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 h1:bxZfGo9DIUoLLtHMElsu+zwqI4IsMZQBRRy4iLzZJ8E= github.com/hashicorp/terraform-plugin-framework-validators v0.13.0/go.mod h1:wGeI02gEhj9nPANU62F2jCaHjXulejm/X+af4PdZaNo= github.com/hashicorp/terraform-plugin-go v0.23.0 h1:AALVuU1gD1kPb48aPQUjug9Ir/125t+AAurhqphJ2Co= @@ -189,8 +193,8 @@ github.com/hashicorp/terraform-plugin-mux v0.16.0 h1:RCzXHGDYwUwwqfYYWJKBFaS3fQs github.com/hashicorp/terraform-plugin-mux v0.16.0/go.mod h1:PF79mAsPc8CpusXPfEVa4X8PtkB+ngWoiUClMrNZlYo= github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 h1:kJiWGx2kiQVo97Y5IOGR4EMcZ8DtMswHhUuFibsCQQE= github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0/go.mod h1:sl/UoabMc37HA6ICVMmGO+/0wofkVIRxf+BMb/dnoIg= -github.com/hashicorp/terraform-plugin-testing v1.9.0 h1:xOsQRqqlHKXpFq6etTxih3ubdK3HVDtfE1IY7Rpd37o= -github.com/hashicorp/terraform-plugin-testing v1.9.0/go.mod h1:fhhVx/8+XNJZTD5o3b4stfZ6+q7z9+lIWigIYdT6/44= +github.com/hashicorp/terraform-plugin-testing v1.10.0 h1:2+tmRNhvnfE4Bs8rB6v58S/VpqzGC6RCh9Y8ujdn+aw= +github.com/hashicorp/terraform-plugin-testing v1.10.0/go.mod h1:iWRW3+loP33WMch2P/TEyCxxct/ZEcCGMquSLSCVsrc= github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI= github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM= github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ= @@ -223,12 +227,12 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/linode/linodego v1.38.0 h1:wP3oW9OhGc6vhze8NPf2knbwH4TzSbrjzuCd9okjbTY= -github.com/linode/linodego v1.38.0/go.mod h1:L7GXKFD3PoN2xSEtFc04wIXP5WK65O10jYQx0PQISWQ= +github.com/linode/linodego v1.40.0 h1:7ESY0PwK94hoggoCtIroT1Xk6b1flrFBNZ6KwqbTqlI= +github.com/linode/linodego v1.40.0/go.mod h1:NsUw4l8QrLdIofRg1NYFBbW5ZERnmbZykVBszPZLORM= github.com/linode/linodego/k8s v1.25.2 h1:PY6S0sAD3xANVvM9WY38bz9GqMTjIbytC8IJJ9Cv23o= github.com/linode/linodego/k8s v1.25.2/go.mod h1:DC1XCSRZRGsmaa/ggpDPSDUmOM6aK1bhSIP6+f9Cwhc= -github.com/linode/terraform-provider-linode/v2 v2.25.0 h1:lU2cach2l8Y5Qx5sgWSLGbLYE61ggQwZhqb6IcGaj+8= -github.com/linode/terraform-provider-linode/v2 v2.25.0/go.mod h1:Qad/PjPD5OpNu2UeoM0RExZueRzf96d9/hDsYvuytkg= +github.com/linode/terraform-provider-linode/v2 v2.28.0 h1:vXrq7+NJ5Uj/AVVsQ61AOQN/bP1HBmMKSlAiZyyI0Eo= +github.com/linode/terraform-provider-linode/v2 v2.28.0/go.mod h1:f+hNrMj+7+ZYQGwlP3CNQj5+45N5ucoL0njX+bKtF6c= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= @@ -333,8 +337,8 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= github.com/zclconf/go-cty v1.8.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= github.com/zclconf/go-cty v1.8.1/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= -github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8= -github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +github.com/zclconf/go-cty v1.15.0 h1:tTCRWxsexYUmtt/wVxgDClUe+uQusuI443uL6e+5sXQ= +github.com/zclconf/go-cty v1.15.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= @@ -351,10 +355,12 @@ golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= +golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= +golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o= golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -362,8 +368,11 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= +golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= @@ -377,12 +386,14 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= -golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= -golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= +golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= +golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= +golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -390,8 +401,11 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -413,18 +427,23 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= -golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= +golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= +golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -433,12 +452,14 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= +golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= +golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -447,6 +468,7 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/internal/controller/firewall/firewall/zz_controller.go b/internal/controller/firewall/firewall/zz_controller.go index 62fd7b9..46e10f6 100755 --- a/internal/controller/firewall/firewall/zz_controller.go +++ b/internal/controller/firewall/firewall/zz_controller.go @@ -37,12 +37,12 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Firewall_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler), tjcontroller.WithStatusUpdates(false)) opts := []managed.ReconcilerOption{ managed.WithExternalConnecter( - tjcontroller.NewTerraformPluginSDKAsyncConnector(mgr.GetClient(), o.OperationTrackerStore, o.SetupFn, o.Provider.Resources["linode_firewall"], - tjcontroller.WithTerraformPluginSDKAsyncLogger(o.Logger), - tjcontroller.WithTerraformPluginSDKAsyncConnectorEventHandler(eventHandler), - tjcontroller.WithTerraformPluginSDKAsyncCallbackProvider(ac), - tjcontroller.WithTerraformPluginSDKAsyncMetricRecorder(metrics.NewMetricRecorder(v1alpha1.Firewall_GroupVersionKind, mgr, o.PollInterval)), - tjcontroller.WithTerraformPluginSDKAsyncManagementPolicies(o.Features.Enabled(features.EnableBetaManagementPolicies)))), + tjcontroller.NewTerraformPluginFrameworkAsyncConnector(mgr.GetClient(), o.OperationTrackerStore, o.SetupFn, o.Provider.Resources["linode_firewall"], + tjcontroller.WithTerraformPluginFrameworkAsyncLogger(o.Logger), + tjcontroller.WithTerraformPluginFrameworkAsyncConnectorEventHandler(eventHandler), + tjcontroller.WithTerraformPluginFrameworkAsyncCallbackProvider(ac), + tjcontroller.WithTerraformPluginFrameworkAsyncMetricRecorder(metrics.NewMetricRecorder(v1alpha1.Firewall_GroupVersionKind, mgr, o.PollInterval)), + tjcontroller.WithTerraformPluginFrameworkAsyncManagementPolicies(o.Features.Enabled(features.EnableBetaManagementPolicies)))), managed.WithLogger(o.Logger.WithValues("controller", name)), managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), managed.WithFinalizer(tjcontroller.NewOperationTrackerFinalizer(o.OperationTrackerStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), diff --git a/package/crds/firewall.linode.upbound.io_firewalls.yaml b/package/crds/firewall.linode.upbound.io_firewalls.yaml index d48f3db..0b30e22 100644 --- a/package/crds/firewall.linode.upbound.io_firewalls.yaml +++ b/package/crds/firewall.linode.upbound.io_firewalls.yaml @@ -86,7 +86,11 @@ spec: action: description: |- Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP). Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. - Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + type: string + description: + description: Used to describe this rule. For display purposes + only. type: string ipv4: description: |- @@ -231,7 +235,11 @@ spec: action: description: |- Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP). Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. - Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + type: string + description: + description: Used to describe this rule. For display purposes + only. type: string ipv4: description: |- @@ -272,7 +280,7 @@ spec: tags: description: |- A list of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only. - An array of tags applied to this object. Tags are for organizational purposes only. + An array of tags applied to the firewall. Tags are for organizational purposes only. items: type: string type: array @@ -304,7 +312,11 @@ spec: action: description: |- Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP). Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. - Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + type: string + description: + description: Used to describe this rule. For display purposes + only. type: string ipv4: description: |- @@ -449,7 +461,11 @@ spec: action: description: |- Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP). Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. - Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + type: string + description: + description: Used to describe this rule. For display purposes + only. type: string ipv4: description: |- @@ -490,7 +506,7 @@ spec: tags: description: |- A list of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only. - An array of tags applied to this object. Tags are for organizational purposes only. + An array of tags applied to the firewall. Tags are for organizational purposes only. items: type: string type: array @@ -723,7 +739,11 @@ spec: action: description: |- Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP). Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. - Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + type: string + description: + description: Used to describe this rule. For display purposes + only. type: string ipv4: description: |- @@ -790,7 +810,11 @@ spec: action: description: |- Controls whether traffic is accepted or dropped by this rule (ACCEPT, DROP). Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. - Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall’s inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + Controls whether traffic is accepted or dropped by this rule. Overrides the Firewall's inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. + type: string + description: + description: Used to describe this rule. For display purposes + only. type: string ipv4: description: |- @@ -836,7 +860,7 @@ spec: tags: description: |- A list of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only. - An array of tags applied to this object. Tags are for organizational purposes only. + An array of tags applied to the firewall. Tags are for organizational purposes only. items: type: string type: array diff --git a/package/crds/image.linode.upbound.io_images.yaml b/package/crds/image.linode.upbound.io_images.yaml index 3981457..17c316b 100644 --- a/package/crds/image.linode.upbound.io_images.yaml +++ b/package/crds/image.linode.upbound.io_images.yaml @@ -258,6 +258,25 @@ spec: The region of the image. See all regions here. The region to upload to. type: string + replicaRegions: + description: |- + A list of regions that customer wants to replicate this image in. At least one valid region is required and only core regions allowed. Existing images in the regions not passed will be removed. Note: Image replication may not be available to all users. See Replicate an Image here for more details. + A list of regions that customer wants to replicate this image in. At least one available region is required and only core regions allowed. Existing images in the regions not passed will be removed. + items: + type: string + type: array + tags: + description: |- + A list of customized tags. + The customized tags for the image. + items: + type: string + type: array + waitForReplications: + description: |- + Whether to wait for all image replications become available. Default to false. + Whether to wait for all image replications become `available`. + type: boolean type: object initProvider: description: |- @@ -458,6 +477,25 @@ spec: The region of the image. See all regions here. The region to upload to. type: string + replicaRegions: + description: |- + A list of regions that customer wants to replicate this image in. At least one valid region is required and only core regions allowed. Existing images in the regions not passed will be removed. Note: Image replication may not be available to all users. See Replicate an Image here for more details. + A list of regions that customer wants to replicate this image in. At least one available region is required and only core regions allowed. Existing images in the regions not passed will be removed. + items: + type: string + type: array + tags: + description: |- + A list of customized tags. + The customized tags for the image. + items: + type: string + type: array + waitForReplications: + description: |- + Whether to wait for all image replications become available. Default to false. + Whether to wait for all image replications become `available`. + type: boolean type: object managementPolicies: default: @@ -709,14 +747,49 @@ spec: The region of the image. See all regions here. The region to upload to. type: string + replicaRegions: + description: |- + A list of regions that customer wants to replicate this image in. At least one valid region is required and only core regions allowed. Existing images in the regions not passed will be removed. Note: Image replication may not be available to all users. See Replicate an Image here for more details. + A list of regions that customer wants to replicate this image in. At least one available region is required and only core regions allowed. Existing images in the regions not passed will be removed. + items: + type: string + type: array + replications: + description: |- + A list of image replications region and corresponding status. + A list of image replications region and corresponding status. + items: + properties: + region: + description: The region of the image. See all regions here. + type: string + status: + description: The status of an image replica. + type: string + type: object + type: array size: description: |- The minimum size this Image needs to deploy. Size is in MB. The minimum size this Image needs to deploy. Size is in MB. type: number status: - description: The current status of this Image. + description: |- + The status of an image replica. + The current status of this Image. type: string + tags: + description: |- + A list of customized tags. + The customized tags for the image. + items: + type: string + type: array + totalSize: + description: |- + The total size of the image in all available regions. + The total size of the image in all available regions. + type: number type: description: |- How the Image was created. 'Manual' Images can be created at any time. 'Automatic' images are created automatically from a deleted Linode. @@ -727,6 +800,11 @@ spec: The upstream distribution vendor. Nil for private Images. The upstream distribution vendor. Nil for private Images. type: string + waitForReplications: + description: |- + Whether to wait for all image replications become available. Default to false. + Whether to wait for all image replications become `available`. + type: boolean type: object conditions: description: Conditions of the resource. diff --git a/package/crds/instance.linode.upbound.io_disks.yaml b/package/crds/instance.linode.upbound.io_disks.yaml index b91fbfe..32bd8ab 100644 --- a/package/crds/instance.linode.upbound.io_disks.yaml +++ b/package/crds/instance.linode.upbound.io_disks.yaml @@ -739,6 +739,11 @@ spec: When this disk was created. When this disk was created. type: string + diskEncryption: + description: |- + The disk encryption policy for this disk's parent instance. (enabled, disabled) + The disk encryption policy for this disk's parent Linode. NOTE: Disk encryption may not currently be available to all users. + type: string filesystem: description: |- The filesystem of this disk. (raw, swap, ext3, ext4, initrd) diff --git a/package/crds/instance.linode.upbound.io_instances.yaml b/package/crds/instance.linode.upbound.io_instances.yaml index 48057dd..9ec2fe9 100644 --- a/package/crds/instance.linode.upbound.io_instances.yaml +++ b/package/crds/instance.linode.upbound.io_instances.yaml @@ -551,6 +551,11 @@ spec: type: number type: object type: array + diskEncryption: + description: |- + The disk encryption policy for this instance. (enabled, disabled; default enabled in supported regions) + The disk encryption policy for this Instance. NOTE: Disk encryption may not currently be available to all users. + type: string firewallId: description: |- The ID of the Firewall to attach to the instance upon creation. Changing @@ -1312,6 +1317,11 @@ spec: type: number type: object type: array + diskEncryption: + description: |- + The disk encryption policy for this instance. (enabled, disabled; default enabled in supported regions) + The disk encryption policy for this Instance. NOTE: Disk encryption may not currently be available to all users. + type: string firewallId: description: |- The ID of the Firewall to attach to the instance upon creation. Changing @@ -2267,6 +2277,11 @@ spec: type: number type: object type: array + diskEncryption: + description: |- + The disk encryption policy for this instance. (enabled, disabled; default enabled in supported regions) + The disk encryption policy for this Instance. NOTE: Disk encryption may not currently be available to all users. + type: string firewallId: description: |- The ID of the Firewall to attach to the instance upon creation. Changing @@ -2390,6 +2405,11 @@ spec: The Linode's label is for display purposes only. If no label is provided for a Linode, a default will be assigned. The Linode's label is for display purposes only. If no label is provided for a Linode, a default will be assigned type: string + lkeClusterId: + description: |- + If applicable, the ID of the LKE cluster this instance is a part of. + If applicable, the ID of the LKE cluster this Instance is a node of. + type: number metadata: description: Various fields related to the Linode Metadata service. items: diff --git a/package/crds/lke.linode.upbound.io_clusters.yaml b/package/crds/lke.linode.upbound.io_clusters.yaml index 8acdc28..500b8a0 100644 --- a/package/crds/lke.linode.upbound.io_clusters.yaml +++ b/package/crds/lke.linode.upbound.io_clusters.yaml @@ -164,6 +164,14 @@ spec: The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum. The number of nodes in the Node Pool. type: number + tags: + description: |- + An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only. + A set of tags applied to this node pool. + items: + type: string + type: array + x-kubernetes-list-type: set type: description: |- A Linode Type for all of the nodes in the Node Pool. See all node types here. @@ -289,6 +297,14 @@ spec: The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum. The number of nodes in the Node Pool. type: number + tags: + description: |- + An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only. + A set of tags applied to this node pool. + items: + type: string + type: array + x-kubernetes-list-type: set type: description: |- A Linode Type for all of the nodes in the Node Pool. See all node types here. @@ -605,6 +621,11 @@ spec: The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum. The number of nodes in the Node Pool. type: number + diskEncryption: + description: |- + The disk encryption policy for nodes in this pool. + The disk encryption policy for the nodes in this pool. NOTE: Disk encryption may not currently be available to all users. + type: string id: description: |- The ID of the cluster. @@ -625,6 +646,14 @@ spec: type: string type: object type: array + tags: + description: |- + An array of tags applied to the Kubernetes cluster. Tags are case-insensitive and are for organizational purposes only. + A set of tags applied to this node pool. + items: + type: string + type: array + x-kubernetes-list-type: set type: description: |- A Linode Type for all of the nodes in the Node Pool. See all node types here. diff --git a/package/crds/lke.linode.upbound.io_nodepools.yaml b/package/crds/lke.linode.upbound.io_nodepools.yaml index 847b0dc..8d588a3 100644 --- a/package/crds/lke.linode.upbound.io_nodepools.yaml +++ b/package/crds/lke.linode.upbound.io_nodepools.yaml @@ -163,6 +163,14 @@ spec: type: string type: object type: object + labels: + additionalProperties: + type: string + description: |- + A map attribute containing key-value pairs to be added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. To learn more, review Add Labels and Taints to your LKE Node Pools. + Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. + type: object + x-kubernetes-map-type: granular nodeCount: description: |- The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum. @@ -176,6 +184,29 @@ spec: type: string type: array x-kubernetes-list-type: set + taint: + description: Kubernetes taints to add to node pool nodes. Taints + help control how pods are scheduled onto nodes, specifically + allowing them to repel certain pods. + items: + properties: + effect: + description: |- + The Kubernetes taint effect. Accepted values are NoSchedule, PreferNoSchedule, and NoExecute. For the descriptions of these values, see Kubernetes Taints and Tolerations. + The Kubernetes taint effect. + type: string + key: + description: |- + The Kubernetes taint key. + The Kubernetes taint key. + type: string + value: + description: |- + The Kubernetes taint value. + The Kubernetes taint value. + type: string + type: object + type: array type: description: |- A Linode Type for all nodes in the Node Pool. See all node types here. @@ -285,6 +316,14 @@ spec: type: string type: object type: object + labels: + additionalProperties: + type: string + description: |- + A map attribute containing key-value pairs to be added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. To learn more, review Add Labels and Taints to your LKE Node Pools. + Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. + type: object + x-kubernetes-map-type: granular nodeCount: description: |- The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum. @@ -298,6 +337,29 @@ spec: type: string type: array x-kubernetes-list-type: set + taint: + description: Kubernetes taints to add to node pool nodes. Taints + help control how pods are scheduled onto nodes, specifically + allowing them to repel certain pods. + items: + properties: + effect: + description: |- + The Kubernetes taint effect. Accepted values are NoSchedule, PreferNoSchedule, and NoExecute. For the descriptions of these values, see Kubernetes Taints and Tolerations. + The Kubernetes taint effect. + type: string + key: + description: |- + The Kubernetes taint key. + The Kubernetes taint key. + type: string + value: + description: |- + The Kubernetes taint value. + The Kubernetes taint value. + type: string + type: object + type: array type: description: |- A Linode Type for all nodes in the Node Pool. See all node types here. @@ -497,9 +559,22 @@ spec: ID of the LKE Cluster where to create the current Node Pool. The ID of the cluster to associate this node pool with. type: number + diskEncryption: + description: |- + The disk encryption policy for nodes in this pool. + The disk encryption policy for nodes in this pool. NOTE: Disk encryption may not currently be available to all users. + type: string id: description: The ID of the Node Pool within LKE Cluster. type: string + labels: + additionalProperties: + type: string + description: |- + A map attribute containing key-value pairs to be added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. To learn more, review Add Labels and Taints to your LKE Node Pools. + Key-value pairs added as labels to nodes in the node pool. Labels help classify your nodes and to easily select subsets of objects. + type: object + x-kubernetes-map-type: granular nodeCount: description: |- The number of nodes in the Node Pool. If undefined with an autoscaler the initial node count will equal the autoscaler minimum. @@ -528,6 +603,29 @@ spec: type: string type: array x-kubernetes-list-type: set + taint: + description: Kubernetes taints to add to node pool nodes. Taints + help control how pods are scheduled onto nodes, specifically + allowing them to repel certain pods. + items: + properties: + effect: + description: |- + The Kubernetes taint effect. Accepted values are NoSchedule, PreferNoSchedule, and NoExecute. For the descriptions of these values, see Kubernetes Taints and Tolerations. + The Kubernetes taint effect. + type: string + key: + description: |- + The Kubernetes taint key. + The Kubernetes taint key. + type: string + value: + description: |- + The Kubernetes taint value. + The Kubernetes taint value. + type: string + type: object + type: array type: description: |- A Linode Type for all nodes in the Node Pool. See all node types here. diff --git a/package/crds/nodebalancer.linode.upbound.io_nodebalancers.yaml b/package/crds/nodebalancer.linode.upbound.io_nodebalancers.yaml index d2c0915..e8104f8 100644 --- a/package/crds/nodebalancer.linode.upbound.io_nodebalancers.yaml +++ b/package/crds/nodebalancer.linode.upbound.io_nodebalancers.yaml @@ -350,6 +350,8 @@ spec: inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. type: string + description: + type: string ipv4: description: The Public IPv4 Address of this NodeBalancer items: @@ -389,6 +391,8 @@ spec: inbound_policy if this is an inbound rule, or the outbound_policy if this is an outbound rule. type: string + description: + type: string ipv4: description: The Public IPv4 Address of this NodeBalancer items: From 9ff980399a79c35f0b3d6755261a4832b917fc16 Mon Sep 17 00:00:00 2001 From: Sam Cheng Date: Wed, 25 Sep 2024 13:41:18 -0400 Subject: [PATCH 2/6] 2.29.0 --- Makefile | 2 +- go.mod | 38 ++++++++++++++-------------- go.sum | 76 ++++++++++++++++++++++++++++---------------------------- 3 files changed, 58 insertions(+), 58 deletions(-) diff --git a/Makefile b/Makefile index 8552651..e33eb39 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ PROJECT_REPO := github.com/linode/$(PROJECT_NAME) export TERRAFORM_VERSION := 1.5.5 export TERRAFORM_PROVIDER_SOURCE := linode/linode -export TERRAFORM_PROVIDER_VERSION := 2.28.0 +export TERRAFORM_PROVIDER_VERSION := 2.29.0 export TERRAFORM_PROVIDER_DOWNLOAD_NAME := terraform-provider-linode export TERRAFORM_NATIVE_PROVIDER_BINARY := terraform-provider-linode_v$(TERRAFORM_PROVIDER_VERSION) export TERRAFORM_PROVIDER_REPO := https://github.com/linode/terraform-provider-linode diff --git a/go.mod b/go.mod index edb8d6d..b0661bd 100644 --- a/go.mod +++ b/go.mod @@ -12,7 +12,7 @@ require ( github.com/go-resty/resty/v2 v2.14.0 github.com/hashicorp/terraform-json v0.22.1 github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 - github.com/linode/terraform-provider-linode/v2 v2.28.0 + github.com/linode/terraform-provider-linode/v2 v2.29.0 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.18.0 gopkg.in/alecthomas/kingpin.v2 v2.2.6 @@ -30,28 +30,28 @@ require ( github.com/antchfx/htmlquery v1.2.4 // indirect github.com/antchfx/xpath v1.2.0 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect - github.com/aws/aws-sdk-go-v2 v1.30.4 // indirect + github.com/aws/aws-sdk-go-v2 v1.30.5 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 // indirect github.com/aws/aws-sdk-go-v2/config v1.27.23 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.23 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.9 // indirect github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.4 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.17 // indirect github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 // indirect - github.com/aws/aws-sdk-go-v2/service/s3 v1.61.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.19 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.17 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.62.0 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.22.1 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.1 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.30.1 // indirect - github.com/aws/smithy-go v1.20.4 // indirect + github.com/aws/smithy-go v1.21.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/dave/jennifer v1.7.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect @@ -76,17 +76,17 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/go-cty v1.4.1-0.20200723130312-85980079f637 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect - github.com/hashicorp/go-plugin v1.6.0 // indirect + github.com/hashicorp/go-plugin v1.6.1 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/hcl/v2 v2.21.0 // indirect github.com/hashicorp/logutils v1.0.0 // indirect - github.com/hashicorp/terraform-plugin-framework v1.11.0 // indirect + github.com/hashicorp/terraform-plugin-framework v1.12.0 // indirect github.com/hashicorp/terraform-plugin-framework-nettypes v0.2.0 // indirect github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 // indirect github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0 // indirect github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 // indirect - github.com/hashicorp/terraform-plugin-go v0.23.0 // indirect + github.com/hashicorp/terraform-plugin-go v0.24.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect github.com/hashicorp/terraform-registry-address v0.2.3 // indirect github.com/hashicorp/terraform-svchost v0.1.1 // indirect @@ -96,7 +96,7 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/linode/linodego v1.40.0 // indirect + github.com/linode/linodego v1.41.0 // indirect github.com/linode/linodego/k8s v1.25.2 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect @@ -133,7 +133,7 @@ require ( golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect golang.org/x/mod v0.19.0 // indirect golang.org/x/net v0.29.0 // indirect - golang.org/x/oauth2 v0.22.0 // indirect + golang.org/x/oauth2 v0.23.0 // indirect golang.org/x/sync v0.8.0 // indirect golang.org/x/sys v0.25.0 // indirect golang.org/x/term v0.24.0 // indirect @@ -142,9 +142,9 @@ require ( golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect - google.golang.org/grpc v1.63.2 // indirect - google.golang.org/protobuf v1.34.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect + google.golang.org/grpc v1.66.2 // indirect + google.golang.org/protobuf v1.34.2 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.66.6 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/go.sum b/go.sum index 7299784..4ace83f 100644 --- a/go.sum +++ b/go.sum @@ -22,8 +22,8 @@ github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJE github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= -github.com/aws/aws-sdk-go-v2 v1.30.4 h1:frhcagrVNrzmT95RJImMHgabt99vkXGslubDaDagTk8= -github.com/aws/aws-sdk-go-v2 v1.30.4/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0= +github.com/aws/aws-sdk-go-v2 v1.30.5 h1:mWSRTwQAb0aLE17dSzztCVJWI9+cRMgqebndjwDyK0g= +github.com/aws/aws-sdk-go-v2 v1.30.5/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 h1:70PVAiL15/aBMh5LThwgXdSQorVr91L127ttckI9QQU= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4/go.mod h1:/MQxMqci8tlqDH+pjmoLu1i0tbWCUP1hhyMRuFxpQCw= github.com/aws/aws-sdk-go-v2/config v1.27.23 h1:Cr/gJEa9NAS7CDAjbnB7tHYb3aLZI2gVggfmSAasDac= @@ -34,40 +34,40 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.9 h1:Aznqksmd6Rfv2HQN9cpqIV/ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.9/go.mod h1:WQr3MY7AxGNxaqAtsDWn+fBxmd4XvLkzeqQ8P1VM0/w= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.4 h1:6eKRM6fgeXG4krRO9XKz755vuRhT5UyB9M1W6vjA3JU= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.4/go.mod h1:h0TjcRi+nTob6fksqubKOe+Hra8uqfgmN+vuw4xRwWE= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 h1:TNyt/+X43KJ9IJJMjKfa3bNTiZbUP7DeCxfbTROESwY= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16/go.mod h1:2DwJF39FlNAUiX5pAc0UNeiz16lK2t7IaFcm0LFHEgc= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 h1:jYfy8UPmd+6kJW5YhY0L1/KftReOGxI/4NtVSTh9O/I= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16/go.mod h1:7ZfEPZxkW42Afq4uQB8H2E2e6ebh6mXTueEpYzjCzcs= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 h1:pI7Bzt0BJtYA0N/JEC6B8fJ4RBrEMi1LBrkMdFYNSnQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17/go.mod h1:Dh5zzJYMtxfIjYW+/evjQ8uj2OyR/ve2KROHGHlSFqE= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 h1:Mqr/V5gvrhA2gvgnF42Zh5iMiQNcOYthFYwCyrnuWlc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17/go.mod h1:aLJpZlCmjE+V+KtN1q1uyZkfnUWpQGpbsn89XPKyzfU= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 h1:mimdLQkIX1zr8GIPY1ZtALdBQGxcASiBd2MOp8m/dMc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16/go.mod h1:YHk6owoSwrIsok+cAH9PENCOGoH5PU2EllX4vLtSrsY= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.17 h1:Roo69qTpfu8OlJ2Tb7pAYVuF0CpuUMB0IYWwYP/4DZM= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.17/go.mod h1:NcWPxQzGM1USQggaTVwz6VpqMZPX1CvDJLDh6jnOCa4= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 h1:KypMCbLPPHEmf9DgMGw51jMj77VfGPAN2Kv4cfhlfgI= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4/go.mod h1:Vz1JQXliGcQktFTN/LN6uGppAIRoLBR2bMvIMP0gOjc= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 h1:GckUnpm4EJOAio1c8o25a+b3lVfwVzC9gnSBqiiNmZM= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18/go.mod h1:Br6+bxfG33Dk3ynmkhsW2Z/t9D4+lRqdLDNCKi85w0U= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 h1:tJ5RnkHCiSH0jyd6gROjlJtNwov0eGYNz8s8nFcR0jQ= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18/go.mod h1:++NHzT+nAF7ZPrHPsA+ENvsXkOO8wEu+C6RXltAG4/c= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 h1:jg16PhLPUiHIj8zYIW6bqzeQSuHVEiWnGA0Brz5Xv2I= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16/go.mod h1:Uyk1zE1VVdsHSU7096h/rwnXDzOzYQVl+FNPhPw7ShY= -github.com/aws/aws-sdk-go-v2/service/s3 v1.61.0 h1:Wb544Wh+xfSXqJ/j3R4aX9wrKUoZsJNmilBYZb3mKQ4= -github.com/aws/aws-sdk-go-v2/service/s3 v1.61.0/go.mod h1:BSPI0EfnYUuNHPS0uqIo5VrRwzie+Fp+YhQOUs16sKI= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.19 h1:FLMkfEiRjhgeDTCjjLoc3URo/TBkgeQbocA78lfkzSI= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.19/go.mod h1:Vx+GucNSsdhaxs3aZIKfSUjKVGsxN25nX2SRcdhuw08= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 h1:rfprUlsdzgl7ZL2KlXiUAoJnI/VxfHCvDFr2QDFj6u4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19/go.mod h1:SCWkEdRq8/7EK60NcvvQ6NXKuTcchAD4ROAsC37VEZE= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.17 h1:u+EfGmksnJc/x5tq3A+OD7LrMbSSR/5TrKLvkdy/fhY= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.17/go.mod h1:VaMx6302JHax2vHJWgRo+5n9zvbacs3bLU/23DNQrTY= +github.com/aws/aws-sdk-go-v2/service/s3 v1.62.0 h1:rd/aA3iDq1q7YsL5sc4dEwChutH7OZF9Ihfst6pXQzI= +github.com/aws/aws-sdk-go-v2/service/s3 v1.62.0/go.mod h1:5FmD/Dqq57gP+XwaUnd5WFPipAuzrf0HmupX27Gvjvc= github.com/aws/aws-sdk-go-v2/service/sso v1.22.1 h1:p1GahKIjyMDZtiKoIn0/jAj/TkMzfzndDv5+zi2Mhgc= github.com/aws/aws-sdk-go-v2/service/sso v1.22.1/go.mod h1:/vWdhoIoYA5hYoPZ6fm7Sv4d8701PiG5VKe8/pPJL60= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.1 h1:lCEv9f8f+zJ8kcFeAjRZsekLd/x5SAm96Cva+VbUdo8= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.1/go.mod h1:xyFHA4zGxgYkdD73VeezHt3vSKEG9EmFnGwoKlP00u4= github.com/aws/aws-sdk-go-v2/service/sts v1.30.1 h1:+woJ607dllHJQtsnJLi52ycuqHMwlW+Wqm2Ppsfp4nQ= github.com/aws/aws-sdk-go-v2/service/sts v1.30.1/go.mod h1:jiNR3JqT15Dm+QWq2SRgh0x0bCNSRP2L25+CqPNpJlQ= -github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4= -github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/smithy-go v1.21.0 h1:H7L8dtDRk0P1Qm6y0ji7MCYMQObJ5R9CRpyPhRUkLYA= +github.com/aws/smithy-go v1.21.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/bufbuild/protocompile v0.6.0 h1:Uu7WiSQ6Yj9DbkdnOe7U4mNKp58y9WDMKDn28/ZlunY= github.com/bufbuild/protocompile v0.6.0/go.mod h1:YNP35qEYoYGme7QMtz5SBCoN4kL4g12jTtjuzRNdjpE= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= @@ -156,8 +156,8 @@ github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB1 github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDmTk8A= -github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI= +github.com/hashicorp/go-plugin v1.6.1 h1:P7MR2UP6gNKGPp+y7EZw2kOiq4IR9WiqLvp0XOsVdwI= +github.com/hashicorp/go-plugin v1.6.1/go.mod h1:XPHFku2tFo3o3QKFgSYo+cghcUhw1NA1hZyMK0PWAw0= github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU= github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= @@ -175,8 +175,8 @@ github.com/hashicorp/terraform-exec v0.21.0 h1:uNkLAe95ey5Uux6KJdua6+cv8asgILFVW github.com/hashicorp/terraform-exec v0.21.0/go.mod h1:1PPeMYou+KDUSSeRE9szMZ/oHf4fYUmB923Wzbq1ICg= github.com/hashicorp/terraform-json v0.22.1 h1:xft84GZR0QzjPVWs4lRUwvTcPnegqlyS7orfb5Ltvec= github.com/hashicorp/terraform-json v0.22.1/go.mod h1:JbWSQCLFSXFFhg42T7l9iJwdGXBYV8fmmD6o/ML4p3A= -github.com/hashicorp/terraform-plugin-framework v1.11.0 h1:M7+9zBArexHFXDx/pKTxjE6n/2UCXY6b8FIq9ZYhwfE= -github.com/hashicorp/terraform-plugin-framework v1.11.0/go.mod h1:qBXLDn69kM97NNVi/MQ9qgd1uWWsVftGSnygYG1tImM= +github.com/hashicorp/terraform-plugin-framework v1.12.0 h1:7HKaueHPaikX5/7cbC1r9d1m12iYHY+FlNZEGxQ42CQ= +github.com/hashicorp/terraform-plugin-framework v1.12.0/go.mod h1:N/IOQ2uYjW60Jp39Cp3mw7I/OpC/GfZ0385R0YibmkE= github.com/hashicorp/terraform-plugin-framework-nettypes v0.2.0 h1:Zap24rkky7SvNGGNYHMKFhAriP6+6riI21BMYOYgLRE= github.com/hashicorp/terraform-plugin-framework-nettypes v0.2.0/go.mod h1:CYPq+I5bWsmI8021VJY85hAyOeiEEQpdGW+NapdQn7A= github.com/hashicorp/terraform-plugin-framework-timeouts v0.4.1 h1:gm5b1kHgFFhaKFhm4h2TgvMUlNzFAtUqlcOWnWPm+9E= @@ -185,8 +185,8 @@ github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0 h1:v3DapR8gsp3E github.com/hashicorp/terraform-plugin-framework-timetypes v0.5.0/go.mod h1:c3PnGE9pHBDfdEVG9t1S1C9ia5LW+gkFR0CygXlM8ak= github.com/hashicorp/terraform-plugin-framework-validators v0.13.0 h1:bxZfGo9DIUoLLtHMElsu+zwqI4IsMZQBRRy4iLzZJ8E= github.com/hashicorp/terraform-plugin-framework-validators v0.13.0/go.mod h1:wGeI02gEhj9nPANU62F2jCaHjXulejm/X+af4PdZaNo= -github.com/hashicorp/terraform-plugin-go v0.23.0 h1:AALVuU1gD1kPb48aPQUjug9Ir/125t+AAurhqphJ2Co= -github.com/hashicorp/terraform-plugin-go v0.23.0/go.mod h1:1E3Cr9h2vMlahWMbsSEcNrOCxovCZhOOIXjFHbjc/lQ= +github.com/hashicorp/terraform-plugin-go v0.24.0 h1:2WpHhginCdVhFIrWHxDEg6RBn3YaWzR2o6qUeIEat2U= +github.com/hashicorp/terraform-plugin-go v0.24.0/go.mod h1:tUQ53lAsOyYSckFGEefGC5C8BAaO0ENqzFd3bQeuYQg= github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0= github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow= github.com/hashicorp/terraform-plugin-mux v0.16.0 h1:RCzXHGDYwUwwqfYYWJKBFaS3fQsWn/ZECEiW7p2023I= @@ -227,12 +227,12 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/linode/linodego v1.40.0 h1:7ESY0PwK94hoggoCtIroT1Xk6b1flrFBNZ6KwqbTqlI= -github.com/linode/linodego v1.40.0/go.mod h1:NsUw4l8QrLdIofRg1NYFBbW5ZERnmbZykVBszPZLORM= +github.com/linode/linodego v1.41.0 h1:GcP7JIBr9iLRJ9FwAtb9/WCT1DuPJS/xUApapfdjtiY= +github.com/linode/linodego v1.41.0/go.mod h1:Ow4/XZ0yvWBzt3iAHwchvhSx30AyLintsSMvvQ2/SJY= github.com/linode/linodego/k8s v1.25.2 h1:PY6S0sAD3xANVvM9WY38bz9GqMTjIbytC8IJJ9Cv23o= github.com/linode/linodego/k8s v1.25.2/go.mod h1:DC1XCSRZRGsmaa/ggpDPSDUmOM6aK1bhSIP6+f9Cwhc= -github.com/linode/terraform-provider-linode/v2 v2.28.0 h1:vXrq7+NJ5Uj/AVVsQ61AOQN/bP1HBmMKSlAiZyyI0Eo= -github.com/linode/terraform-provider-linode/v2 v2.28.0/go.mod h1:f+hNrMj+7+ZYQGwlP3CNQj5+45N5ucoL0njX+bKtF6c= +github.com/linode/terraform-provider-linode/v2 v2.29.0 h1:qyozIdUb4CL++ZbjzPUERRcT+CMGnOEFWX2GZTmxSwQ= +github.com/linode/terraform-provider-linode/v2 v2.29.0/go.mod h1:i962BDTi2XwVv7kdJx6K77ANvAqoK4PIZReUvp7WMfc= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= @@ -392,8 +392,8 @@ golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= -golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= -golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= +golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -481,14 +481,14 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de h1:cZGRis4/ot9uVm639a+rHCUaG0JJHEsdyzSQTMX+suY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 h1:1GBuWVLM/KMVUv1t1En5Gs+gFZCNd360GGb4sSxtrhU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= +google.golang.org/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo= +google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From ed9045ec46857ecb7ab48e9c2474c198ff8a1915 Mon Sep 17 00:00:00 2001 From: Sam Cheng Date: Thu, 26 Sep 2024 12:42:05 -0400 Subject: [PATCH 3/6] update upjet version --- go.mod | 4 +--- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/go.mod b/go.mod index b0661bd..271db1a 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( dario.cat/mergo v1.0.0 github.com/crossplane/crossplane-runtime v1.16.0 github.com/crossplane/crossplane-tools v0.0.0-20240516011917-bfb5045f0903 - github.com/crossplane/upjet v1.4.0 + github.com/crossplane/upjet v1.4.1-0.20240911184956-3afbb7796d46 github.com/go-resty/resty/v2 v2.14.0 github.com/hashicorp/terraform-json v0.22.1 github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 @@ -159,5 +159,3 @@ require ( sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) - -replace github.com/crossplane/upjet => github.com/tchinmai7/upjet v0.0.0-20240725221335-67bd255fdb28 diff --git a/go.sum b/go.sum index 4ace83f..a79e938 100644 --- a/go.sum +++ b/go.sum @@ -76,6 +76,8 @@ github.com/crossplane/crossplane-runtime v1.16.0 h1:lz+l0wEB3qowdTmN7t0PZkfuNSvf github.com/crossplane/crossplane-runtime v1.16.0/go.mod h1:Pz2tdGVMF6KDGzHZOkvKro0nKc8EzK0sb/nSA7pH4Dc= github.com/crossplane/crossplane-tools v0.0.0-20240516011917-bfb5045f0903 h1:bL8QbWkmzkdK7swURaaKEFiYS8+ib4fYU74eyRpCrYg= github.com/crossplane/crossplane-tools v0.0.0-20240516011917-bfb5045f0903/go.mod h1:cN0Y7PFGQMM8mcagXVCbeQoKtipmFWQTPZYyziCPBUI= +github.com/crossplane/upjet v1.4.1-0.20240911184956-3afbb7796d46 h1:2IH1YPTBrNmBj0Z1OCjEBTrQCuRaLutZbWLaswFeCFQ= +github.com/crossplane/upjet v1.4.1-0.20240911184956-3afbb7796d46/go.mod h1:wkdZf/Cvhr6PI30VdHIOjg4dX39Z5uijqnLWFk5PbGM= github.com/dave/jennifer v1.7.0 h1:uRbSBH9UTS64yXbh4FrMHfgfY762RD+C7bUPKODpSJE= github.com/dave/jennifer v1.7.0/go.mod h1:nXbxhEmQfOZhWml3D1cDK5M1FLnMSozpbFN/m3RmGZc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -314,8 +316,6 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tchinmai7/upjet v0.0.0-20240725221335-67bd255fdb28 h1:BM/ZcFrf0mZVDtfZHv1dPTu2AO4H10xYaX42Fkx62YY= -github.com/tchinmai7/upjet v0.0.0-20240725221335-67bd255fdb28/go.mod h1:wkdZf/Cvhr6PI30VdHIOjg4dX39Z5uijqnLWFk5PbGM= github.com/tmccombs/hcl2json v0.3.3 h1:+DLNYqpWE0CsOQiEZu+OZm5ZBImake3wtITYxQ8uLFQ= github.com/tmccombs/hcl2json v0.3.3/go.mod h1:Y2chtz2x9bAeRTvSibVRVgbLJhLJXKlUeIvjeVdnm4w= github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= From cd8d5ec6f29c3126c5d9118e6a4c855e2e37c830 Mon Sep 17 00:00:00 2001 From: Sam Cheng Date: Thu, 26 Sep 2024 12:51:17 -0400 Subject: [PATCH 4/6] bump golangci-lint version --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e33eb39..3894cfd 100644 --- a/Makefile +++ b/Makefile @@ -47,7 +47,7 @@ export GOPRIVATE = github.com/upbound/* GO_REQUIRED_VERSION ?= 1.21 # GOLANGCILINT_VERSION is inherited from build submodule by default. # Uncomment below if you need to override the version. -# GOLANGCILINT_VERSION ?= 1.54.0 +GOLANGCILINT_VERSION ?= 1.61.0 GO_STATIC_PACKAGES = $(GO_PROJECT)/cmd/provider $(GO_PROJECT)/cmd/generator GO_LDFLAGS += -X $(GO_PROJECT)/internal/version.Version=$(VERSION) From 9fb77889906e92f55420f9fda18e23b0db65e752 Mon Sep 17 00:00:00 2001 From: Sam Cheng Date: Thu, 26 Sep 2024 14:15:53 -0400 Subject: [PATCH 5/6] bump golangci lint version in ci workflow --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9b2a5af..d694426 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ on: env: # Common versions GO_VERSION: '1.22' - GOLANGCI_VERSION: 'v1.54.2' + GOLANGCI_VERSION: 'v1.61.0' DOCKER_BUILDX_VERSION: 'v0.8.2' # Common users. We can't run a step 'if secrets.XXX != ""' but we can run a From a8509e8a140c4254746644afa6beb9f486b37d82 Mon Sep 17 00:00:00 2001 From: Sam Cheng Date: Thu, 26 Sep 2024 16:33:53 -0400 Subject: [PATCH 6/6] try increasing timeout --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d694426..43f40c1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -78,6 +78,7 @@ jobs: uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3 with: version: ${{ env.GOLANGCI_VERSION }} + args: --timeout 3m check-diff: runs-on: ubuntu-22.04