From 0e6db1084a84d5c87d55b4bffca91fedbcbf4082 Mon Sep 17 00:00:00 2001 From: Evan Johnson Date: Tue, 25 Jul 2023 10:09:24 -0400 Subject: [PATCH] Update Linode Terraform version to 2.5.2 --- Makefile | 4 +- .../v1alpha1/zz_generated.deepcopy.go | 394 +------------ .../database/v1alpha1/zz_generated.managed.go | 76 --- .../v1alpha1/zz_generated.managedlist.go | 9 - .../v1alpha1/zz_generated_terraformed.go | 74 --- apis/database/v1alpha1/zz_mongodb_types.go | 264 --------- apis/database/v1alpha1/zz_mysql_types.go | 16 +- apis/database/v1alpha1/zz_postgresql_types.go | 4 +- apis/image/v1alpha1/zz_generated.deepcopy.go | 21 + apis/image/v1alpha1/zz_image_types.go | 10 + .../v1alpha1/zz_generated.deepcopy.go | 59 ++ apis/instance/v1alpha1/zz_instance_types.go | 23 + apis/instance/v1alpha1/zz_ip_types.go | 4 +- apis/objectstorage/v1alpha1/zz_key_types.go | 4 +- .../v1alpha1/zz_generated.deepcopy.go | 37 -- .../v1alpha1/zz_stackscript_types.go | 33 +- apis/token/v1alpha1/zz_token_types.go | 4 +- config/databasemongodb/config.go | 11 - config/provider-metadata.yaml | 80 +-- config/provider.go | 2 - config/schema.json | 2 +- .../database/accesscontrols.yaml | 2 +- examples-generated/database/mongodb.yaml | 17 - examples-generated/database/mysql.yaml | 2 +- .../database/mongodb/zz_controller.go | 51 -- internal/controller/zz_setup.go | 2 - .../database.linode.upbound.io_mongodbs.yaml | 536 ------------------ .../database.linode.upbound.io_mysqls.yaml | 8 +- ...atabase.linode.upbound.io_postgresqls.yaml | 4 +- .../crds/image.linode.upbound.io_images.yaml | 11 + .../instance.linode.upbound.io_instances.yaml | 27 + .../crds/instance.linode.upbound.io_ips.yaml | 6 +- .../objectstorage.linode.upbound.io_keys.yaml | 4 +- ...script.linode.upbound.io_stackscripts.yaml | 40 +- .../crds/token.linode.upbound.io_tokens.yaml | 4 +- 35 files changed, 199 insertions(+), 1646 deletions(-) delete mode 100755 apis/database/v1alpha1/zz_mongodb_types.go delete mode 100644 config/databasemongodb/config.go delete mode 100644 examples-generated/database/mongodb.yaml delete mode 100755 internal/controller/database/mongodb/zz_controller.go delete mode 100644 package/crds/database.linode.upbound.io_mongodbs.yaml diff --git a/Makefile b/Makefile index f39f149..05082db 100644 --- a/Makefile +++ b/Makefile @@ -6,9 +6,9 @@ PROJECT_REPO := github.com/linode/$(PROJECT_NAME) export TERRAFORM_VERSION := 1.3.3 export TERRAFORM_PROVIDER_SOURCE := linode/linode -export TERRAFORM_PROVIDER_VERSION := 2.0.0 +export TERRAFORM_PROVIDER_VERSION := 2.5.2 export TERRAFORM_PROVIDER_DOWNLOAD_NAME := terraform-provider-linode -export TERRAFORM_NATIVE_PROVIDER_BINARY := terraform-provider-linode_v2.0.0 +export TERRAFORM_NATIVE_PROVIDER_BINARY := terraform-provider-linode_v$(TERRAFORM_PROVIDER_VERSION) export TERRAFORM_PROVIDER_REPO := https://github.com/linode/terraform-provider-linode export TERRAFORM_DOCS_PATH := website/docs/r diff --git a/apis/database/v1alpha1/zz_generated.deepcopy.go b/apis/database/v1alpha1/zz_generated.deepcopy.go index a0de787..222e3b0 100644 --- a/apis/database/v1alpha1/zz_generated.deepcopy.go +++ b/apis/database/v1alpha1/zz_generated.deepcopy.go @@ -183,316 +183,6 @@ func (in *AccessControlsStatus) DeepCopy() *AccessControlsStatus { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MongoDB) DeepCopyInto(out *MongoDB) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MongoDB. -func (in *MongoDB) DeepCopy() *MongoDB { - if in == nil { - return nil - } - out := new(MongoDB) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *MongoDB) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MongoDBList) DeepCopyInto(out *MongoDBList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]MongoDB, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MongoDBList. -func (in *MongoDBList) DeepCopy() *MongoDBList { - if in == nil { - return nil - } - out := new(MongoDBList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *MongoDBList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MongoDBObservation) DeepCopyInto(out *MongoDBObservation) { - *out = *in - if in.AllowList != nil { - in, out := &in.AllowList, &out.AllowList - *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.ClusterSize != nil { - in, out := &in.ClusterSize, &out.ClusterSize - *out = new(float64) - **out = **in - } - if in.CompressionType != nil { - in, out := &in.CompressionType, &out.CompressionType - *out = new(string) - **out = **in - } - if in.Created != nil { - in, out := &in.Created, &out.Created - *out = new(string) - **out = **in - } - if in.Encrypted != nil { - in, out := &in.Encrypted, &out.Encrypted - *out = new(bool) - **out = **in - } - if in.Engine != nil { - in, out := &in.Engine, &out.Engine - *out = new(string) - **out = **in - } - if in.EngineID != nil { - in, out := &in.EngineID, &out.EngineID - *out = new(string) - **out = **in - } - if in.HostPrimary != nil { - in, out := &in.HostPrimary, &out.HostPrimary - *out = new(string) - **out = **in - } - if in.HostSecondary != nil { - in, out := &in.HostSecondary, &out.HostSecondary - *out = new(string) - **out = **in - } - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.Label != nil { - in, out := &in.Label, &out.Label - *out = new(string) - **out = **in - } - if in.Peers != nil { - in, out := &in.Peers, &out.Peers - *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.Port != nil { - in, out := &in.Port, &out.Port - *out = new(float64) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.ReplicaSet != nil { - in, out := &in.ReplicaSet, &out.ReplicaSet - *out = new(string) - **out = **in - } - if in.SSLConnection != nil { - in, out := &in.SSLConnection, &out.SSLConnection - *out = new(bool) - **out = **in - } - if in.Status != nil { - in, out := &in.Status, &out.Status - *out = new(string) - **out = **in - } - if in.StorageEngine != nil { - in, out := &in.StorageEngine, &out.StorageEngine - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } - if in.Updated != nil { - in, out := &in.Updated, &out.Updated - *out = new(string) - **out = **in - } - if in.Updates != nil { - in, out := &in.Updates, &out.Updates - *out = make([]UpdatesObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Version != nil { - in, out := &in.Version, &out.Version - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MongoDBObservation. -func (in *MongoDBObservation) DeepCopy() *MongoDBObservation { - if in == nil { - return nil - } - out := new(MongoDBObservation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MongoDBParameters) DeepCopyInto(out *MongoDBParameters) { - *out = *in - if in.AllowList != nil { - in, out := &in.AllowList, &out.AllowList - *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.ClusterSize != nil { - in, out := &in.ClusterSize, &out.ClusterSize - *out = new(float64) - **out = **in - } - if in.CompressionType != nil { - in, out := &in.CompressionType, &out.CompressionType - *out = new(string) - **out = **in - } - if in.Encrypted != nil { - in, out := &in.Encrypted, &out.Encrypted - *out = new(bool) - **out = **in - } - if in.EngineID != nil { - in, out := &in.EngineID, &out.EngineID - *out = new(string) - **out = **in - } - if in.Label != nil { - in, out := &in.Label, &out.Label - *out = new(string) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.SSLConnection != nil { - in, out := &in.SSLConnection, &out.SSLConnection - *out = new(bool) - **out = **in - } - if in.StorageEngine != nil { - in, out := &in.StorageEngine, &out.StorageEngine - *out = new(string) - **out = **in - } - if in.Type != nil { - in, out := &in.Type, &out.Type - *out = new(string) - **out = **in - } - if in.Updates != nil { - in, out := &in.Updates, &out.Updates - *out = make([]UpdatesParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MongoDBParameters. -func (in *MongoDBParameters) DeepCopy() *MongoDBParameters { - if in == nil { - return nil - } - out := new(MongoDBParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MongoDBSpec) DeepCopyInto(out *MongoDBSpec) { - *out = *in - in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) - in.ForProvider.DeepCopyInto(&out.ForProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MongoDBSpec. -func (in *MongoDBSpec) DeepCopy() *MongoDBSpec { - if in == nil { - return nil - } - out := new(MongoDBSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MongoDBStatus) DeepCopyInto(out *MongoDBStatus) { - *out = *in - in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) - in.AtProvider.DeepCopyInto(&out.AtProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MongoDBStatus. -func (in *MongoDBStatus) DeepCopy() *MongoDBStatus { - if in == nil { - return nil - } - out := new(MongoDBStatus) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MySQL) DeepCopyInto(out *MySQL) { *out = *in @@ -643,7 +333,7 @@ func (in *MySQLObservation) DeepCopyInto(out *MySQLObservation) { } if in.Updates != nil { in, out := &in.Updates, &out.Updates - *out = make([]MySQLUpdatesObservation, len(*in)) + *out = make([]UpdatesObservation, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -721,7 +411,7 @@ func (in *MySQLParameters) DeepCopyInto(out *MySQLParameters) { } if in.Updates != nil { in, out := &in.Updates, &out.Updates - *out = make([]MySQLUpdatesParameters, len(*in)) + *out = make([]UpdatesParameters, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -772,86 +462,6 @@ func (in *MySQLStatus) DeepCopy() *MySQLStatus { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MySQLUpdatesObservation) DeepCopyInto(out *MySQLUpdatesObservation) { - *out = *in - if in.DayOfWeek != nil { - in, out := &in.DayOfWeek, &out.DayOfWeek - *out = new(string) - **out = **in - } - if in.Duration != nil { - in, out := &in.Duration, &out.Duration - *out = new(float64) - **out = **in - } - if in.Frequency != nil { - in, out := &in.Frequency, &out.Frequency - *out = new(string) - **out = **in - } - if in.HourOfDay != nil { - in, out := &in.HourOfDay, &out.HourOfDay - *out = new(float64) - **out = **in - } - if in.WeekOfMonth != nil { - in, out := &in.WeekOfMonth, &out.WeekOfMonth - *out = new(float64) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MySQLUpdatesObservation. -func (in *MySQLUpdatesObservation) DeepCopy() *MySQLUpdatesObservation { - if in == nil { - return nil - } - out := new(MySQLUpdatesObservation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MySQLUpdatesParameters) DeepCopyInto(out *MySQLUpdatesParameters) { - *out = *in - if in.DayOfWeek != nil { - in, out := &in.DayOfWeek, &out.DayOfWeek - *out = new(string) - **out = **in - } - if in.Duration != nil { - in, out := &in.Duration, &out.Duration - *out = new(float64) - **out = **in - } - if in.Frequency != nil { - in, out := &in.Frequency, &out.Frequency - *out = new(string) - **out = **in - } - if in.HourOfDay != nil { - in, out := &in.HourOfDay, &out.HourOfDay - *out = new(float64) - **out = **in - } - if in.WeekOfMonth != nil { - in, out := &in.WeekOfMonth, &out.WeekOfMonth - *out = new(float64) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MySQLUpdatesParameters. -func (in *MySQLUpdatesParameters) DeepCopy() *MySQLUpdatesParameters { - if in == nil { - return nil - } - out := new(MySQLUpdatesParameters) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PostgreSQL) DeepCopyInto(out *PostgreSQL) { *out = *in diff --git a/apis/database/v1alpha1/zz_generated.managed.go b/apis/database/v1alpha1/zz_generated.managed.go index 3a078d1..039b75c 100644 --- a/apis/database/v1alpha1/zz_generated.managed.go +++ b/apis/database/v1alpha1/zz_generated.managed.go @@ -83,82 +83,6 @@ func (mg *AccessControls) SetWriteConnectionSecretToReference(r *xpv1.SecretRefe mg.Spec.WriteConnectionSecretToReference = r } -// GetCondition of this MongoDB. -func (mg *MongoDB) GetCondition(ct xpv1.ConditionType) xpv1.Condition { - return mg.Status.GetCondition(ct) -} - -// GetDeletionPolicy of this MongoDB. -func (mg *MongoDB) GetDeletionPolicy() xpv1.DeletionPolicy { - return mg.Spec.DeletionPolicy -} - -// GetManagementPolicy of this MongoDB. -func (mg *MongoDB) GetManagementPolicy() xpv1.ManagementPolicy { - return mg.Spec.ManagementPolicy -} - -// GetProviderConfigReference of this MongoDB. -func (mg *MongoDB) GetProviderConfigReference() *xpv1.Reference { - return mg.Spec.ProviderConfigReference -} - -/* -GetProviderReference of this MongoDB. -Deprecated: Use GetProviderConfigReference. -*/ -func (mg *MongoDB) GetProviderReference() *xpv1.Reference { - return mg.Spec.ProviderReference -} - -// GetPublishConnectionDetailsTo of this MongoDB. -func (mg *MongoDB) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { - return mg.Spec.PublishConnectionDetailsTo -} - -// GetWriteConnectionSecretToReference of this MongoDB. -func (mg *MongoDB) GetWriteConnectionSecretToReference() *xpv1.SecretReference { - return mg.Spec.WriteConnectionSecretToReference -} - -// SetConditions of this MongoDB. -func (mg *MongoDB) SetConditions(c ...xpv1.Condition) { - mg.Status.SetConditions(c...) -} - -// SetDeletionPolicy of this MongoDB. -func (mg *MongoDB) SetDeletionPolicy(r xpv1.DeletionPolicy) { - mg.Spec.DeletionPolicy = r -} - -// SetManagementPolicy of this MongoDB. -func (mg *MongoDB) SetManagementPolicy(r xpv1.ManagementPolicy) { - mg.Spec.ManagementPolicy = r -} - -// SetProviderConfigReference of this MongoDB. -func (mg *MongoDB) SetProviderConfigReference(r *xpv1.Reference) { - mg.Spec.ProviderConfigReference = r -} - -/* -SetProviderReference of this MongoDB. -Deprecated: Use SetProviderConfigReference. -*/ -func (mg *MongoDB) SetProviderReference(r *xpv1.Reference) { - mg.Spec.ProviderReference = r -} - -// SetPublishConnectionDetailsTo of this MongoDB. -func (mg *MongoDB) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { - mg.Spec.PublishConnectionDetailsTo = r -} - -// SetWriteConnectionSecretToReference of this MongoDB. -func (mg *MongoDB) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { - mg.Spec.WriteConnectionSecretToReference = r -} - // GetCondition of this MySQL. func (mg *MySQL) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) diff --git a/apis/database/v1alpha1/zz_generated.managedlist.go b/apis/database/v1alpha1/zz_generated.managedlist.go index d20e978..3329b8a 100644 --- a/apis/database/v1alpha1/zz_generated.managedlist.go +++ b/apis/database/v1alpha1/zz_generated.managedlist.go @@ -16,15 +16,6 @@ func (l *AccessControlsList) GetItems() []resource.Managed { return items } -// GetItems of this MongoDBList. -func (l *MongoDBList) GetItems() []resource.Managed { - items := make([]resource.Managed, len(l.Items)) - for i := range l.Items { - items[i] = &l.Items[i] - } - return items -} - // GetItems of this MySQLList. func (l *MySQLList) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) diff --git a/apis/database/v1alpha1/zz_generated_terraformed.go b/apis/database/v1alpha1/zz_generated_terraformed.go index 3160a90..34e0a2c 100755 --- a/apis/database/v1alpha1/zz_generated_terraformed.go +++ b/apis/database/v1alpha1/zz_generated_terraformed.go @@ -87,80 +87,6 @@ func (tr *AccessControls) GetTerraformSchemaVersion() int { return 0 } -// GetTerraformResourceType returns Terraform resource type for this MongoDB -func (mg *MongoDB) GetTerraformResourceType() string { - return "linode_database_mongodb" -} - -// GetConnectionDetailsMapping for this MongoDB -func (tr *MongoDB) GetConnectionDetailsMapping() map[string]string { - return map[string]string{"ca_cert": "status.atProvider.caCert", "root_password": "status.atProvider.rootPassword", "root_username": "status.atProvider.rootUsername"} -} - -// GetObservation of this MongoDB -func (tr *MongoDB) GetObservation() (map[string]any, error) { - o, err := json.TFParser.Marshal(tr.Status.AtProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(o, &base) -} - -// SetObservation for this MongoDB -func (tr *MongoDB) SetObservation(obs map[string]any) error { - p, err := json.TFParser.Marshal(obs) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) -} - -// GetID returns ID of underlying Terraform resource of this MongoDB -func (tr *MongoDB) GetID() string { - if tr.Status.AtProvider.ID == nil { - return "" - } - return *tr.Status.AtProvider.ID -} - -// GetParameters of this MongoDB -func (tr *MongoDB) GetParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.ForProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// SetParameters for this MongoDB -func (tr *MongoDB) SetParameters(params map[string]any) error { - p, err := json.TFParser.Marshal(params) - if err != nil { - return err - } - return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) -} - -// LateInitialize this MongoDB using its observed tfState. -// returns True if there are any spec changes for the resource. -func (tr *MongoDB) LateInitialize(attrs []byte) (bool, error) { - params := &MongoDBParameters{} - if err := json.TFParser.Unmarshal(attrs, params); err != nil { - return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") - } - opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)} - - li := resource.NewGenericLateInitializer(opts...) - return li.LateInitialize(&tr.Spec.ForProvider, params) -} - -// GetTerraformSchemaVersion returns the associated Terraform schema version -func (tr *MongoDB) GetTerraformSchemaVersion() int { - return 0 -} - // GetTerraformResourceType returns Terraform resource type for this MySQL func (mg *MySQL) GetTerraformResourceType() string { return "linode_database_mysql" diff --git a/apis/database/v1alpha1/zz_mongodb_types.go b/apis/database/v1alpha1/zz_mongodb_types.go deleted file mode 100755 index 040c116..0000000 --- a/apis/database/v1alpha1/zz_mongodb_types.go +++ /dev/null @@ -1,264 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - - v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" -) - -type MongoDBObservation struct { - - // 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. Use linode_database_access_controls to manage your allow list separately. - // 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. - AllowList []*string `json:"allowList,omitempty" tf:"allow_list,omitempty"` - - // The number of Linode Instance nodes deployed to the Managed Database. (default 1) - // The number of Linode Instance nodes deployed to the Managed Database. Defaults to 1. - ClusterSize *float64 `json:"clusterSize,omitempty" tf:"cluster_size,omitempty"` - - // The type of data compression for this Database. (none, snappy, zlib; default none) - // The type of data compression for this Database. - CompressionType *string `json:"compressionType,omitempty" tf:"compression_type,omitempty"` - - // When this Managed Database was created. - // When this Managed Database was created. - Created *string `json:"created,omitempty" tf:"created,omitempty"` - - // Whether the Managed Databases is encrypted. (default false) - // Whether the Managed Databases is encrypted. - Encrypted *bool `json:"encrypted,omitempty" tf:"encrypted,omitempty"` - - // The Managed Database engine. (e.g. mongodb) - // The Managed Database engine. - Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - - // The Managed Database engine in engine/version format. (e.g. mongo/4.4.10) - // The Managed Database engine in engine/version format. (e.g. mongodb/4.4.10) - EngineID *string `json:"engineId,omitempty" tf:"engine_id,omitempty"` - - // The primary host for the Managed Database. - // The primary host for the Managed Database. - HostPrimary *string `json:"hostPrimary,omitempty" tf:"host_primary,omitempty"` - - // The secondary/private network host for the Managed Database. - // The secondary host for the Managed Database. - HostSecondary *string `json:"hostSecondary,omitempty" tf:"host_secondary,omitempty"` - - // The ID of the Managed Database. - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // A unique, user-defined string referring to the Managed Database. - // A unique, user-defined string referring to the Managed Database. - Label *string `json:"label,omitempty" tf:"label,omitempty"` - - // A set of peer addresses for this Database. - // A set of peer addresses for this Database. - Peers []*string `json:"peers,omitempty" tf:"peers,omitempty"` - - // The access port for this Managed Database. - // The access port for this Managed Database. - Port *float64 `json:"port,omitempty" tf:"port,omitempty"` - - // The region to use for the Managed Database. - // The region to use for the Managed Database. - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Label for configuring a MongoDB replica set. Choose the same label on multiple Databases to include them in the same replica set. - // Label for configuring a MongoDB replica set. Choose the same label on multiple Databases to include them in the same replica set. - ReplicaSet *string `json:"replicaSet,omitempty" tf:"replica_set,omitempty"` - - // Whether to require SSL credentials to establish a connection to the Managed Database. (default false) - // Whether to require SSL credentials to establish a connection to the Managed Database. - SSLConnection *bool `json:"sslConnection,omitempty" tf:"ssl_connection,omitempty"` - - // The operating status of the Managed Database. - // The operating status of the Managed Database. - Status *string `json:"status,omitempty" tf:"status,omitempty"` - - // The type of storage engine for this Database. (mmapv1, wiredtiger; default wiredtiger) - // The type of storage engine for this Database. - StorageEngine *string `json:"storageEngine,omitempty" tf:"storage_engine,omitempty"` - - // The Linode Instance type used for the nodes of the Managed Database instance. - // The Linode Instance type used by the Managed Database for its nodes. - Type *string `json:"type,omitempty" tf:"type,omitempty"` - - // When this Managed Database was last updated. - // When this Managed Database was last updated. - Updated *string `json:"updated,omitempty" tf:"updated,omitempty"` - - // Configuration settings for automated patch update maintenance for the Managed Database. - Updates []UpdatesObservation `json:"updates,omitempty" tf:"updates,omitempty"` - - // The Managed Database engine version. (e.g. v8.0.26) - // The Managed Database engine version. - Version *string `json:"version,omitempty" tf:"version,omitempty"` -} - -type MongoDBParameters struct { - - // 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. Use linode_database_access_controls to manage your allow list separately. - // 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. - // +kubebuilder:validation:Optional - AllowList []*string `json:"allowList,omitempty" tf:"allow_list,omitempty"` - - // The number of Linode Instance nodes deployed to the Managed Database. (default 1) - // The number of Linode Instance nodes deployed to the Managed Database. Defaults to 1. - // +kubebuilder:validation:Optional - ClusterSize *float64 `json:"clusterSize,omitempty" tf:"cluster_size,omitempty"` - - // The type of data compression for this Database. (none, snappy, zlib; default none) - // The type of data compression for this Database. - // +kubebuilder:validation:Optional - CompressionType *string `json:"compressionType,omitempty" tf:"compression_type,omitempty"` - - // Whether the Managed Databases is encrypted. (default false) - // Whether the Managed Databases is encrypted. - // +kubebuilder:validation:Optional - Encrypted *bool `json:"encrypted,omitempty" tf:"encrypted,omitempty"` - - // The Managed Database engine in engine/version format. (e.g. mongo/4.4.10) - // The Managed Database engine in engine/version format. (e.g. mongodb/4.4.10) - // +kubebuilder:validation:Optional - EngineID *string `json:"engineId,omitempty" tf:"engine_id,omitempty"` - - // A unique, user-defined string referring to the Managed Database. - // A unique, user-defined string referring to the Managed Database. - // +kubebuilder:validation:Optional - Label *string `json:"label,omitempty" tf:"label,omitempty"` - - // The region to use for the Managed Database. - // The region to use for the Managed Database. - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Whether to require SSL credentials to establish a connection to the Managed Database. (default false) - // Whether to require SSL credentials to establish a connection to the Managed Database. - // +kubebuilder:validation:Optional - SSLConnection *bool `json:"sslConnection,omitempty" tf:"ssl_connection,omitempty"` - - // The type of storage engine for this Database. (mmapv1, wiredtiger; default wiredtiger) - // The type of storage engine for this Database. - // +kubebuilder:validation:Optional - StorageEngine *string `json:"storageEngine,omitempty" tf:"storage_engine,omitempty"` - - // The Linode Instance type used for the nodes of the Managed Database instance. - // The Linode Instance type used by the Managed Database for its nodes. - // +kubebuilder:validation:Optional - Type *string `json:"type,omitempty" tf:"type,omitempty"` - - // Configuration settings for automated patch update maintenance for the Managed Database. - // +kubebuilder:validation:Optional - Updates []UpdatesParameters `json:"updates,omitempty" tf:"updates,omitempty"` -} - -type UpdatesObservation struct { - - // The day to perform maintenance. (monday, tuesday, ...) - // The day to perform maintenance. - DayOfWeek *string `json:"dayOfWeek,omitempty" tf:"day_of_week,omitempty"` - - // The maximum maintenance window time in hours. (1..3) - // The maximum maintenance window time in hours. - Duration *float64 `json:"duration,omitempty" tf:"duration,omitempty"` - - // Whether maintenance occurs on a weekly or monthly basis. (weekly, monthly) - // Whether maintenance occurs on a weekly or monthly basis. - Frequency *string `json:"frequency,omitempty" tf:"frequency,omitempty"` - - // The hour to begin maintenance based in UTC time. (0..23) - // The hour to begin maintenance based in UTC time. - HourOfDay *float64 `json:"hourOfDay,omitempty" tf:"hour_of_day,omitempty"` - - // The week of the month to perform monthly frequency updates. Required for monthly frequency updates. (1..4) - // The week of the month to perform monthly frequency updates. Required for monthly frequency updates. - WeekOfMonth *float64 `json:"weekOfMonth,omitempty" tf:"week_of_month,omitempty"` -} - -type UpdatesParameters struct { - - // The day to perform maintenance. (monday, tuesday, ...) - // The day to perform maintenance. - // +kubebuilder:validation:Required - DayOfWeek *string `json:"dayOfWeek" tf:"day_of_week,omitempty"` - - // The maximum maintenance window time in hours. (1..3) - // The maximum maintenance window time in hours. - // +kubebuilder:validation:Required - Duration *float64 `json:"duration" tf:"duration,omitempty"` - - // Whether maintenance occurs on a weekly or monthly basis. (weekly, monthly) - // Whether maintenance occurs on a weekly or monthly basis. - // +kubebuilder:validation:Required - Frequency *string `json:"frequency" tf:"frequency,omitempty"` - - // The hour to begin maintenance based in UTC time. (0..23) - // The hour to begin maintenance based in UTC time. - // +kubebuilder:validation:Required - HourOfDay *float64 `json:"hourOfDay" tf:"hour_of_day,omitempty"` - - // The week of the month to perform monthly frequency updates. Required for monthly frequency updates. (1..4) - // The week of the month to perform monthly frequency updates. Required for monthly frequency updates. - // +kubebuilder:validation:Optional - WeekOfMonth *float64 `json:"weekOfMonth,omitempty" tf:"week_of_month,omitempty"` -} - -// MongoDBSpec defines the desired state of MongoDB -type MongoDBSpec struct { - v1.ResourceSpec `json:",inline"` - ForProvider MongoDBParameters `json:"forProvider"` -} - -// MongoDBStatus defines the observed state of MongoDB. -type MongoDBStatus struct { - v1.ResourceStatus `json:",inline"` - AtProvider MongoDBObservation `json:"atProvider,omitempty"` -} - -// +kubebuilder:object:root=true - -// MongoDB is the Schema for the MongoDBs API. Manages a Linode MongoDB Database. -// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" -// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" -// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" -// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" -// +kubebuilder:subresource:status -// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,linode} -type MongoDB struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.engineId)",message="engineId is a required parameter" - // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.label)",message="label is a required parameter" - // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region)",message="region is a required parameter" - // +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.type)",message="type is a required parameter" - Spec MongoDBSpec `json:"spec"` - Status MongoDBStatus `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true - -// MongoDBList contains a list of MongoDBs -type MongoDBList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []MongoDB `json:"items"` -} - -// Repository type metadata. -var ( - MongoDB_Kind = "MongoDB" - MongoDB_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: MongoDB_Kind}.String() - MongoDB_KindAPIVersion = MongoDB_Kind + "." + CRDGroupVersion.String() - MongoDB_GroupVersionKind = CRDGroupVersion.WithKind(MongoDB_Kind) -) - -func init() { - SchemeBuilder.Register(&MongoDB{}, &MongoDBList{}) -} diff --git a/apis/database/v1alpha1/zz_mysql_types.go b/apis/database/v1alpha1/zz_mysql_types.go index fa0c6e9..27e1ce7 100755 --- a/apis/database/v1alpha1/zz_mysql_types.go +++ b/apis/database/v1alpha1/zz_mysql_types.go @@ -35,8 +35,8 @@ type MySQLObservation struct { // The Managed Database engine. Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` - // The Managed Database engine in engine/version format. (e.g. mysql/8.0.26) - // The Managed Database engine in engine/version format. (e.g. mysql/8.0.26) + // The Managed Database engine in engine/version format. (e.g. mysql/8.0.30) + // The Managed Database engine in engine/version format. (e.g. mysql/8.0.30) EngineID *string `json:"engineId,omitempty" tf:"engine_id,omitempty"` // The primary host for the Managed Database. @@ -79,7 +79,7 @@ type MySQLObservation struct { Updated *string `json:"updated,omitempty" tf:"updated,omitempty"` // Configuration settings for automated patch update maintenance for the Managed Database. - Updates []MySQLUpdatesObservation `json:"updates,omitempty" tf:"updates,omitempty"` + Updates []UpdatesObservation `json:"updates,omitempty" tf:"updates,omitempty"` // The Managed Database engine version. (e.g. v8.0.26) // The Managed Database engine version. @@ -103,8 +103,8 @@ type MySQLParameters struct { // +kubebuilder:validation:Optional Encrypted *bool `json:"encrypted,omitempty" tf:"encrypted,omitempty"` - // The Managed Database engine in engine/version format. (e.g. mysql/8.0.26) - // The Managed Database engine in engine/version format. (e.g. mysql/8.0.26) + // The Managed Database engine in engine/version format. (e.g. mysql/8.0.30) + // The Managed Database engine in engine/version format. (e.g. mysql/8.0.30) // +kubebuilder:validation:Optional EngineID *string `json:"engineId,omitempty" tf:"engine_id,omitempty"` @@ -135,10 +135,10 @@ type MySQLParameters struct { // Configuration settings for automated patch update maintenance for the Managed Database. // +kubebuilder:validation:Optional - Updates []MySQLUpdatesParameters `json:"updates,omitempty" tf:"updates,omitempty"` + Updates []UpdatesParameters `json:"updates,omitempty" tf:"updates,omitempty"` } -type MySQLUpdatesObservation struct { +type UpdatesObservation struct { // The day to perform maintenance. (monday, tuesday, ...) // The day to perform maintenance. @@ -161,7 +161,7 @@ type MySQLUpdatesObservation struct { WeekOfMonth *float64 `json:"weekOfMonth,omitempty" tf:"week_of_month,omitempty"` } -type MySQLUpdatesParameters struct { +type UpdatesParameters struct { // The day to perform maintenance. (monday, tuesday, ...) // The day to perform maintenance. diff --git a/apis/database/v1alpha1/zz_postgresql_types.go b/apis/database/v1alpha1/zz_postgresql_types.go index 22c031a..1fe3df7 100755 --- a/apis/database/v1alpha1/zz_postgresql_types.go +++ b/apis/database/v1alpha1/zz_postgresql_types.go @@ -36,7 +36,7 @@ type PostgreSQLObservation struct { Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` // The Managed Database engine in engine/version format. (e.g. postgresql/13.2) - // The Managed Database engine in engine/version format. (e.g. mongodb/4.4.10) + // The Managed Database engine in engine/version format. (e.g. mysql/8.0.30) EngineID *string `json:"engineId,omitempty" tf:"engine_id,omitempty"` // The primary host for the Managed Database. @@ -111,7 +111,7 @@ type PostgreSQLParameters struct { Encrypted *bool `json:"encrypted,omitempty" tf:"encrypted,omitempty"` // The Managed Database engine in engine/version format. (e.g. postgresql/13.2) - // The Managed Database engine in engine/version format. (e.g. mongodb/4.4.10) + // The Managed Database engine in engine/version format. (e.g. mysql/8.0.30) // +kubebuilder:validation:Optional EngineID *string `json:"engineId,omitempty" tf:"engine_id,omitempty"` diff --git a/apis/image/v1alpha1/zz_generated.deepcopy.go b/apis/image/v1alpha1/zz_generated.deepcopy.go index d79ff00..b523b3b 100644 --- a/apis/image/v1alpha1/zz_generated.deepcopy.go +++ b/apis/image/v1alpha1/zz_generated.deepcopy.go @@ -76,6 +76,22 @@ func (in *ImageList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ImageObservation) DeepCopyInto(out *ImageObservation) { *out = *in + if in.Capabilities != nil { + in, out := &in.Capabilities, &out.Capabilities + *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.CloudInit != nil { + in, out := &in.CloudInit, &out.CloudInit + *out = new(bool) + **out = **in + } if in.Created != nil { in, out := &in.Created, &out.Created *out = new(string) @@ -176,6 +192,11 @@ func (in *ImageObservation) DeepCopy() *ImageObservation { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ImageParameters) DeepCopyInto(out *ImageParameters) { *out = *in + if in.CloudInit != nil { + in, out := &in.CloudInit, &out.CloudInit + *out = new(bool) + **out = **in + } if in.Description != nil { in, out := &in.Description, &out.Description *out = new(string) diff --git a/apis/image/v1alpha1/zz_image_types.go b/apis/image/v1alpha1/zz_image_types.go index a4e9288..d26f5d2 100755 --- a/apis/image/v1alpha1/zz_image_types.go +++ b/apis/image/v1alpha1/zz_image_types.go @@ -15,6 +15,12 @@ import ( type ImageObservation struct { + // The capabilities of this Image. + Capabilities []*string `json:"capabilities,omitempty" tf:"capabilities,omitempty"` + + // Whether this image supports cloud-init. + CloudInit *bool `json:"cloudInit,omitempty" tf:"cloud_init,omitempty"` + // When this Image was created. // When this Image was created. Created *string `json:"created,omitempty" tf:"created,omitempty"` @@ -84,6 +90,10 @@ type ImageObservation struct { type ImageParameters struct { + // Whether this image supports cloud-init. + // +kubebuilder:validation:Optional + CloudInit *bool `json:"cloudInit,omitempty" tf:"cloud_init,omitempty"` + // A detailed description of this Image. // A detailed description of this Image. // +kubebuilder:validation:Optional diff --git a/apis/instance/v1alpha1/zz_generated.deepcopy.go b/apis/instance/v1alpha1/zz_generated.deepcopy.go index e2031a4..c27fc0f 100644 --- a/apis/instance/v1alpha1/zz_generated.deepcopy.go +++ b/apis/instance/v1alpha1/zz_generated.deepcopy.go @@ -2378,6 +2378,11 @@ func (in *InstanceObservation) DeepCopyInto(out *InstanceObservation) { *out = new(string) **out = **in } + if in.HasUserData != nil { + in, out := &in.HasUserData, &out.HasUserData + *out = new(bool) + **out = **in + } if in.HostUUID != nil { in, out := &in.HostUUID, &out.HostUUID *out = new(string) @@ -2426,6 +2431,13 @@ func (in *InstanceObservation) DeepCopyInto(out *InstanceObservation) { *out = new(string) **out = **in } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *out = make([]MetadataObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.PrivateIP != nil { in, out := &in.PrivateIP, &out.PrivateIP *out = new(bool) @@ -2600,6 +2612,13 @@ func (in *InstanceParameters) DeepCopyInto(out *InstanceParameters) { *out = new(string) **out = **in } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *out = make([]MetadataParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.PrivateIP != nil { in, out := &in.PrivateIP, &out.PrivateIP *out = new(bool) @@ -2783,6 +2802,46 @@ func (in *InterfaceParameters) DeepCopy() *InterfaceParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MetadataObservation) DeepCopyInto(out *MetadataObservation) { + *out = *in + if in.UserData != nil { + in, out := &in.UserData, &out.UserData + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetadataObservation. +func (in *MetadataObservation) DeepCopy() *MetadataObservation { + if in == nil { + return nil + } + out := new(MetadataObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MetadataParameters) DeepCopyInto(out *MetadataParameters) { + *out = *in + if in.UserData != nil { + in, out := &in.UserData, &out.UserData + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetadataParameters. +func (in *MetadataParameters) DeepCopy() *MetadataParameters { + if in == nil { + return nil + } + out := new(MetadataParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ScheduleObservation) DeepCopyInto(out *ScheduleObservation) { *out = *in diff --git a/apis/instance/v1alpha1/zz_instance_types.go b/apis/instance/v1alpha1/zz_instance_types.go index eb7773b..0a084ff 100755 --- a/apis/instance/v1alpha1/zz_instance_types.go +++ b/apis/instance/v1alpha1/zz_instance_types.go @@ -447,6 +447,9 @@ type InstanceObservation struct { // The display group of the Linode instance. Group *string `json:"group,omitempty" tf:"group,omitempty"` + // Whether or not this Instance was created with user-data. + HasUserData *bool `json:"hasUserData,omitempty" tf:"has_user_data,omitempty"` + // (Computed) The ID of the disk in the Linode API. // The Linode’s host machine, as a UUID. HostUUID *string `json:"hostUuid,omitempty" tf:"host_uuid,omitempty"` @@ -477,6 +480,9 @@ 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"` + // Various fields related to the Linode Metadata service. + Metadata []MetadataObservation `json:"metadata,omitempty" tf:"metadata,omitempty"` + // 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. It can be enabled on an existing Linode but it can't be disabled. // 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. PrivateIP *bool `json:"privateIp,omitempty" tf:"private_ip,omitempty"` @@ -588,6 +594,10 @@ type InstanceParameters struct { // +kubebuilder:validation:Optional Label *string `json:"label,omitempty" tf:"label,omitempty"` + // Various fields related to the Linode Metadata service. + // +kubebuilder:validation:Optional + Metadata []MetadataParameters `json:"metadata,omitempty" tf:"metadata,omitempty"` + // 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. It can be enabled on an existing Linode but it can't be disabled. // 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. // +kubebuilder:validation:Optional @@ -686,6 +696,19 @@ type InterfaceParameters struct { Purpose *string `json:"purpose,omitempty" tf:"purpose,omitempty"` } +type MetadataObservation struct { + + // 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. + UserData *string `json:"userData,omitempty" tf:"user_data,omitempty"` +} + +type MetadataParameters struct { + + // 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. + // +kubebuilder:validation:Optional + UserData *string `json:"userData,omitempty" tf:"user_data,omitempty"` +} + type ScheduleObservation struct { // The day of the week that your Linode's weekly Backup is taken. If not set manually, a day will be chosen for you. Backups are taken every day, but backups taken on this day are preferred when selecting backups to retain for a longer period. If not set manually, then when backups are initially enabled, this may come back as "Scheduling" until the day is automatically selected. diff --git a/apis/instance/v1alpha1/zz_ip_types.go b/apis/instance/v1alpha1/zz_ip_types.go index 51f8618..9bfe624 100755 --- a/apis/instance/v1alpha1/zz_ip_types.go +++ b/apis/instance/v1alpha1/zz_ip_types.go @@ -20,7 +20,7 @@ type IPObservation struct { Address *string `json:"address,omitempty" tf:"address,omitempty"` // If true, the instance will be rebooted to update network interfaces. - // If true, the instance will be rebooted to update network interfaces. + // If true, the instance will be rebooted to update network interfaces. This functionality is not affected by the `skip_implicit_reboots` provider argument. ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` // The default gateway for this address @@ -61,7 +61,7 @@ type IPObservation struct { type IPParameters struct { // If true, the instance will be rebooted to update network interfaces. - // If true, the instance will be rebooted to update network interfaces. + // If true, the instance will be rebooted to update network interfaces. This functionality is not affected by the `skip_implicit_reboots` provider argument. // +kubebuilder:validation:Optional ApplyImmediately *bool `json:"applyImmediately,omitempty" tf:"apply_immediately,omitempty"` diff --git a/apis/objectstorage/v1alpha1/zz_key_types.go b/apis/objectstorage/v1alpha1/zz_key_types.go index c2e3570..39cbbec 100755 --- a/apis/objectstorage/v1alpha1/zz_key_types.go +++ b/apis/objectstorage/v1alpha1/zz_key_types.go @@ -24,7 +24,7 @@ type BucketAccessObservation struct { Cluster *string `json:"cluster,omitempty" tf:"cluster,omitempty"` // This Limited Access Key’s permissions for the selected bucket. Changing (read_write, read_only) - // This Limited Access Key’s permissions for the selected bucket. + // This Limited Access Key's permissions for the selected bucket. Permissions *string `json:"permissions,omitempty" tf:"permissions,omitempty"` } @@ -41,7 +41,7 @@ type BucketAccessParameters struct { Cluster *string `json:"cluster" tf:"cluster,omitempty"` // This Limited Access Key’s permissions for the selected bucket. Changing (read_write, read_only) - // This Limited Access Key’s permissions for the selected bucket. + // This Limited Access Key's permissions for the selected bucket. // +kubebuilder:validation:Required Permissions *string `json:"permissions" tf:"permissions,omitempty"` } diff --git a/apis/stackscript/v1alpha1/zz_generated.deepcopy.go b/apis/stackscript/v1alpha1/zz_generated.deepcopy.go index 1598c5c..357490e 100644 --- a/apis/stackscript/v1alpha1/zz_generated.deepcopy.go +++ b/apis/stackscript/v1alpha1/zz_generated.deepcopy.go @@ -204,13 +204,6 @@ func (in *StackscriptParameters) DeepCopyInto(out *StackscriptParameters) { *out = new(string) **out = **in } - if in.UserDefinedFields != nil { - in, out := &in.UserDefinedFields, &out.UserDefinedFields - *out = make([]UserDefinedFieldsParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StackscriptParameters. @@ -305,36 +298,6 @@ func (in *UserDefinedFieldsObservation) DeepCopy() *UserDefinedFieldsObservation // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *UserDefinedFieldsParameters) DeepCopyInto(out *UserDefinedFieldsParameters) { *out = *in - if in.Default != nil { - in, out := &in.Default, &out.Default - *out = new(string) - **out = **in - } - if in.Example != nil { - in, out := &in.Example, &out.Example - *out = new(string) - **out = **in - } - if in.Label != nil { - in, out := &in.Label, &out.Label - *out = new(string) - **out = **in - } - if in.ManyOf != nil { - in, out := &in.ManyOf, &out.ManyOf - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.OneOf != nil { - in, out := &in.OneOf, &out.OneOf - *out = new(string) - **out = **in - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserDefinedFieldsParameters. diff --git a/apis/stackscript/v1alpha1/zz_stackscript_types.go b/apis/stackscript/v1alpha1/zz_stackscript_types.go index 1589227..0356612 100755 --- a/apis/stackscript/v1alpha1/zz_stackscript_types.go +++ b/apis/stackscript/v1alpha1/zz_stackscript_types.go @@ -33,7 +33,7 @@ type StackscriptObservation struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` - // An array of Image IDs representing the Images that this StackScript is compatible for deploying with. any/all indicates that all available image distributions, including private images, are accepted. Currently private image IDs are not supported. + // A set of Image IDs representing the Images that this StackScript is compatible for deploying with. any/all indicates that all available image distributions, including private images, are accepted. Currently private image IDs are not supported. // An array of Image IDs representing the Images that this StackScript is compatible for deploying with. Images []*string `json:"images,omitempty" tf:"images,omitempty"` @@ -77,7 +77,7 @@ type StackscriptParameters struct { // +kubebuilder:validation:Optional Description *string `json:"description,omitempty" tf:"description,omitempty"` - // An array of Image IDs representing the Images that this StackScript is compatible for deploying with. any/all indicates that all available image distributions, including private images, are accepted. Currently private image IDs are not supported. + // A set of Image IDs representing the Images that this StackScript is compatible for deploying with. any/all indicates that all available image distributions, including private images, are accepted. Currently private image IDs are not supported. // An array of Image IDs representing the Images that this StackScript is compatible for deploying with. // +kubebuilder:validation:Optional Images []*string `json:"images,omitempty" tf:"images,omitempty"` @@ -101,11 +101,6 @@ type StackscriptParameters struct { // The script to execute when provisioning a new Linode with this StackScript. // +kubebuilder:validation:Optional Script *string `json:"script,omitempty" tf:"script,omitempty"` - - // This is a list of fields defined with a special syntax inside this StackScript that allow for supplying customized parameters during deployment. - // This is a list of fields defined with a special syntax inside this StackScript that allow for supplying customized parameters during deployment. - // +kubebuilder:validation:Optional - UserDefinedFields []UserDefinedFieldsParameters `json:"userDefinedFields,omitempty" tf:"user_defined_fields,omitempty"` } type UserDefinedFieldsObservation struct { @@ -130,30 +125,6 @@ type UserDefinedFieldsObservation struct { } type UserDefinedFieldsParameters struct { - - // The default value. If not specified, this value will be used. - // +kubebuilder:validation:Optional - Default *string `json:"default,omitempty" tf:"default"` - - // An example value for the field. - // +kubebuilder:validation:Optional - Example *string `json:"example,omitempty" tf:"example"` - - // The StackScript's label is for display purposes only. - // +kubebuilder:validation:Optional - Label *string `json:"label,omitempty" tf:"label"` - - // A list of acceptable values for the field in any quantity, combination or order. - // +kubebuilder:validation:Optional - ManyOf *string `json:"manyOf,omitempty" tf:"many_of"` - - // The name of the field. - // +kubebuilder:validation:Optional - Name *string `json:"name,omitempty" tf:"name"` - - // A list of acceptable single values for the field. - // +kubebuilder:validation:Optional - OneOf *string `json:"oneOf,omitempty" tf:"one_of"` } // StackscriptSpec defines the desired state of Stackscript diff --git a/apis/token/v1alpha1/zz_token_types.go b/apis/token/v1alpha1/zz_token_types.go index f1147d2..0b3ef40 100755 --- a/apis/token/v1alpha1/zz_token_types.go +++ b/apis/token/v1alpha1/zz_token_types.go @@ -20,7 +20,7 @@ type TokenObservation struct { Created *string `json:"created,omitempty" tf:"created,omitempty"` // 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. - // 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:05Z07:00 + // 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 Expiry *string `json:"expiry,omitempty" tf:"expiry,omitempty"` ID *string `json:"id,omitempty" tf:"id,omitempty"` @@ -37,7 +37,7 @@ type TokenObservation struct { type TokenParameters struct { // 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. - // 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:05Z07:00 + // 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 // +kubebuilder:validation:Optional Expiry *string `json:"expiry,omitempty" tf:"expiry,omitempty"` diff --git a/config/databasemongodb/config.go b/config/databasemongodb/config.go deleted file mode 100644 index 11f1019..0000000 --- a/config/databasemongodb/config.go +++ /dev/null @@ -1,11 +0,0 @@ -package databasemongodb - -import "github.com/upbound/upjet/pkg/config" - -// Configure configures individual resources by adding custom ResourceConfigurators. -func Configure(p *config.Provider) { - p.AddResourceConfigurator("linode_database_mongodb", func(r *config.Resource) { - r.UseAsync = true - r.Kind = "MongoDB" - }) -} diff --git a/config/provider-metadata.yaml b/config/provider-metadata.yaml index 4bbd93b..c11febd 100644 --- a/config/provider-metadata.yaml +++ b/config/provider-metadata.yaml @@ -39,7 +39,7 @@ resources: dependencies: linode_database_mysql.my-db: |- { - "engine_id": "mysql/8.0.26", + "engine_id": "mysql/8.0.30", "label": "mydatabase", "region": "us-southeast", "type": "g6-nanode-1" @@ -56,76 +56,6 @@ resources: database_id: '- (Required) The unique ID of the target database.' database_type: '- (Required) The unique type of the target database. (mysql, mongodb, postgresql)' importStatements: [] - linode_database_mongodb: - subCategory: "" - description: Manages a Linode MongoDB Database. - name: linode_database_mongodb - title: linode_database_mongodb - examples: - - name: foobar - manifest: |- - { - "engine_id": "mongodb/4.4.10", - "label": "mydatabase", - "region": "us-southeast", - "type": "g6-nanode-1" - } - - name: foobar - manifest: |- - { - "allow_list": [ - "0.0.0.0/0" - ], - "cluster_size": 3, - "compression_type": "zlib", - "encrypted": true, - "engine_id": "mongodb/4.4.10", - "label": "mydatabase", - "region": "us-southeast", - "ssl_connection": true, - "storage_engine": "wiredtiger", - "type": "g6-nanode-1", - "updates": [ - { - "day_of_week": "saturday", - "duration": 1, - "frequency": "monthly", - "hour_of_day": 22, - "week_of_month": 2 - } - ] - } - argumentDocs: - allow_list: '- (Optional) 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. Use linode_database_access_controls to manage your allow list separately.' - ca_cert: '- The base64-encoded SSL CA certificate for the Managed Database instance.' - cluster_size: '- (Optional) The number of Linode Instance nodes deployed to the Managed Database. (default 1)' - compression_type: '- (Optional) The type of data compression for this Database. (none, snappy, zlib; default none)' - created: '- When this Managed Database was created.' - encrypted: '- (Optional) Whether the Managed Databases is encrypted. (default false)' - engine: '- The Managed Database engine. (e.g. mongodb)' - engine_id: '- (Required) The Managed Database engine in engine/version format. (e.g. mongo/4.4.10)' - host_primary: '- The primary host for the Managed Database.' - host_secondary: '- The secondary/private network host for the Managed Database.' - id: '- The ID of the Managed Database.' - label: '- (Required) A unique, user-defined string referring to the Managed Database.' - peers: '- A set of peer addresses for this Database.' - port: '- The access port for this Managed Database.' - region: '- (Required) The region to use for the Managed Database.' - replica_set: '- Label for configuring a MongoDB replica set. Choose the same label on multiple Databases to include them in the same replica set.' - root_password: '- The randomly-generated root password for the Managed Database instance.' - root_username: '- The root username for the Managed Database instance.' - ssl_connection: '- (Optional) Whether to require SSL credentials to establish a connection to the Managed Database. (default false)' - status: '- The operating status of the Managed Database.' - storage_engine: '- (Optional) The type of storage engine for this Database. (mmapv1, wiredtiger; default wiredtiger)' - type: '- (Required) The Linode Instance type used for the nodes of the Managed Database instance.' - updated: '- When this Managed Database was last updated.' - updates.day_of_week: '- (Required) The day to perform maintenance. (monday, tuesday, ...)' - updates.duration: '- (Required) The maximum maintenance window time in hours. (1..3)' - updates.frequency: '- (Required) Whether maintenance occurs on a weekly or monthly basis. (weekly, monthly)' - updates.hour_of_day: '- (Required) The hour to begin maintenance based in UTC time. (0..23)' - updates.week_of_month: '- (Optional) The week of the month to perform monthly frequency updates. Required for monthly frequency updates. (1..4)' - version: '- The Managed Database engine version. (e.g. v8.0.26)' - importStatements: [] linode_database_mysql: subCategory: "" description: Manages a Linode MySQL Database. @@ -135,7 +65,7 @@ resources: - name: foobar manifest: |- { - "engine_id": "mysql/8.0.26", + "engine_id": "mysql/8.0.30", "label": "mydatabase", "region": "us-southeast", "type": "g6-nanode-1" @@ -148,7 +78,7 @@ resources: ], "cluster_size": 3, "encrypted": true, - "engine_id": "mysql/8.0.26", + "engine_id": "mysql/8.0.30", "label": "mydatabase", "region": "us-southeast", "replication_type": "asynch", @@ -172,7 +102,7 @@ resources: created: '- When this Managed Database was created.' encrypted: '- (Optional) Whether the Managed Databases is encrypted. (default false)' engine: '- The Managed Database engine. (e.g. mysql)' - engine_id: '- (Required) The Managed Database engine in engine/version format. (e.g. mysql/8.0.26)' + engine_id: '- (Required) The Managed Database engine in engine/version format. (e.g. mysql/8.0.30)' host_primary: '- The primary host for the Managed Database.' host_secondary: '- The secondary/private network host for the Managed Database.' id: '- The ID of the Managed Database.' @@ -1473,7 +1403,7 @@ resources: deployments_total: '- The total number of times this StackScript has been deployed.' description: '- (Required) A description for the StackScript.' example: '- An example value for the field.' - images: '- (Required) An array of Image IDs representing the Images that this StackScript is compatible for deploying with. any/all indicates that all available image distributions, including private images, are accepted. Currently private image IDs are not supported.' + images: '- (Required) A set of Image IDs representing the Images that this StackScript is compatible for deploying with. any/all indicates that all available image distributions, including private images, are accepted. Currently private image IDs are not supported.' is_public: '- (Optional) This determines whether other users can use your StackScript. Once a StackScript is made public, it cannot be made private. Changing' label: '- (Required) The StackScript''s label is for display purposes only.' many_of: '- A list of acceptable values for the field in any quantity, combination or order.' diff --git a/config/provider.go b/config/provider.go index eb6dfbe..5f4f511 100644 --- a/config/provider.go +++ b/config/provider.go @@ -13,7 +13,6 @@ import ( ujconfig "github.com/upbound/upjet/pkg/config" "github.com/linode/provider-linode/config/databaseaccesscontrols" - "github.com/linode/provider-linode/config/databasemongodb" "github.com/linode/provider-linode/config/databasemysql" "github.com/linode/provider-linode/config/databasepostgresql" "github.com/linode/provider-linode/config/domain" @@ -63,7 +62,6 @@ func GetProvider() *ujconfig.Provider { for _, configure := range []func(provider *ujconfig.Provider){ // add custom config functions databaseaccesscontrols.Configure, - databasemongodb.Configure, databasemysql.Configure, databasepostgresql.Configure, domain.Configure, diff --git a/config/schema.json b/config/schema.json index 336afb3..f5ac0dc 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_kind":"plain","optional":true},"config_profile":{"type":"string","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},"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_kind":"plain","optional":true,"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_mongodb":{"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},"compression_type":{"type":"string","description":"The type of data compression for this Database.","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. mongodb/4.4.10)","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},"peers":{"type":["set","string"],"description":"A set of peer addresses for this 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","required":true},"replica_set":{"type":"string","description":"Label for configuring a MongoDB replica set. Choose the same label on multiple Databases to include them in the same replica set.","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","optional":true},"status":{"type":"string","description":"The operating status of the Managed Database.","description_kind":"plain","computed":true},"storage_engine":{"type":"string","description":"The type of storage engine for this Database.","description_kind":"plain","optional":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_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.26)","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. mongodb/4.4.10)","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},"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":{"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},"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}},"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 IP addresses, 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 IP addresses, 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},"firewall_id":{"type":"number","description":"The ID of the Firewall to access.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"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":{"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_kind":"plain","optional":true,"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_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},"group":{"type":"string","description":"The display group of the Linode instance.","description_kind":"plain","optional":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},"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 initialially 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},"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},"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":{"ipam_address":{"type":"string","description":"The IPAM Address of this interface.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The unique label of this interface.","description_kind":"plain","optional":true},"purpose":{"type":"string","description":"The purpose of this interface.","description_kind":"plain","optional":true}},"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"}},"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"}},"interface":{"nesting_mode":"list","block":{"attributes":{"ipam_address":{"type":"string","description":"The IPAM Address of this interface.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The unique label of this interface.","description_kind":"plain","optional":true},"purpose":{"type":"string","description":"The purpose of this interface.","description_kind":"plain","optional":true}},"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"}},"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":{"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"},"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":{"ipam_address":{"type":"string","description":"This Network Interface’s private IP address in Classless Inter-Domain Routing (CIDR) notation.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The name of this interface.","description_kind":"plain","optional":true},"purpose":{"type":"string","description":"The type of interface.","description_kind":"plain","required":true}},"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_kind":"plain","optional":true,"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 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 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}},"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.","description_kind":"plain","optional":true},"gateway":{"type":"string","description":"The default gateway for this address","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"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},"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}},"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_kind":"plain","optional":true,"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_kind":"plain","optional":true,"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}},"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},"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}},"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}},"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","required":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_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},"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":"string","description_kind":"plain","optional":true,"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","required":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},"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_kind":"plain","optional":true,"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},"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},"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},"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)","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","required":true},"cors_enabled":{"type":"bool","description":"If true, the bucket will be created with CORS enabled for all origins.","description_kind":"plain","optional":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},"secret_key":{"type":"string","description":"The S3 secret key to use for this resource. (Required for lifecycle_rule and versioning)","description_kind":"plain","optional":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_kind":"plain","optional":true,"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},"secret_key":{"type":"string","description":"This keypair's secret key.","description_kind":"plain","computed":true,"sensitive":true}},"block_types":{"bucket_access":{"nesting_mode":"list","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 a bucket to which the key is granting access is hosted.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"This Limited Access Key’s permissions for the selected bucket.","description_kind":"plain","required":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 S3 access key with access to the target bucket.","description_kind":"plain","required":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","required":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},"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},"secret_key":{"type":"string","description":"The S3 secret key with access to the target bucket.","description_kind":"plain","required":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_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_kind":"plain","optional":true,"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}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","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_kind":"plain","optional":true,"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":0,"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_kind":"plain","optional":true,"computed":true},"images":{"type":["list","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},"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},"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","optional":true,"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:05Z07:00","description_kind":"plain","optional":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://www.linode.com/docs/api#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},"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_kind":"plain","optional":true,"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}},"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"}}},"description_kind":"plain"}}},"data_source_schemas":{"linode_account":{"version":0,"block":{"attributes":{"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},"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},"first_name":{"type":"string","description":"The first name of the person associated with this Account.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"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_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":"TTrue 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_kind":"plain","optional":true,"computed":true},"logins":{"type":["list",["object",{"datetime":"string","id":"number","ip":"string","restricted":"bool","status":"string","username":"string"}]],"description":"The returned list of account logins.","description_kind":"plain","computed":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_account_settings":{"version":0,"block":{"attributes":{"backups_enabled":{"type":"bool","description":"Account-wide backups default.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"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_database_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 Database.","description_kind":"plain","required":true},"database_type":{"type":"string","description":"The type of the Managed 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_engines":{"version":0,"block":{"attributes":{"engines":{"type":["list",["object",{"engine":"string","id":"string","version":"string"}]],"description":"The returned list of engines.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"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":{"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_mongodb":{"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},"compression_type":{"type":"string","description":"The type of data compression for this Database.","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 MongoDB database.","description_kind":"plain","required":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. mongodb/4.4.10)","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":"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","computed":true},"peers":{"type":["set","string"],"description":"A set of peer addresses for this 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},"replica_set":{"type":"string","description":"Label for configuring a MongoDB replica set. Choose the same label on multiple Databases to include them in the same replica set.","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},"storage_engine":{"type":"string","description":"The type of storage engine for this 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":{"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.","description_kind":"plain","required":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.26)","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":"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","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 MongoDB database.","description_kind":"plain","required":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":"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","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":{"databases":{"type":["list",["object",{"allow_list":["list","string"],"cluster_size":"number","created":"string","encrypted":"bool","engine":"string","host_primary":"string","host_secondary":"string","id":"number","instance_uri":"string","label":"string","region":"string","replication_type":"string","ssl_connection":"bool","status":"string","type":"string","updated":"string","version":"string"}]],"description":"The returned list of databases.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"latest":{"type":"bool","description":"If true, only the latest created database 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_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 Linode's system; there cannot be two Domain records 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 authoritative. 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","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":"string","description":"The unique ID assigned to this domain","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 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 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 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_kind":"plain","optional":true,"computed":true},"zone_file":{"type":["list","string"],"description":"Lines of the zone file for the last rendered zone for this domain.","description_kind":"plain","optional":true}},"description_kind":"plain"}},"linode_firewall":{"version":0,"block":{"attributes":{"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 to apply this firewall to.","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}},"description_kind":"plain"}},"linode_image":{"version":0,"block":{"attributes":{"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_kind":"plain","optional":true,"computed":true},"images":{"type":["list",["object",{"created":"string","created_by":"string","deprecated":"bool","description":"string","expiry":"string","id":"string","is_public":"bool","label":"string","size":"number","status":"string","type":"string","vendor":"string"}]],"description":"The returned list of Images.","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":"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_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":"string","description_kind":"plain","optional":true,"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_kind":"plain","optional":true,"computed":true},"ipv4":{"type":["list",["object",{"private":["list",["object",{"address":"string","gateway":"string","prefix":"number","rdns":"string","region":"string","subnet_mask":"string","type":"string"}]],"public":["list",["object",{"address":"string","gateway":"string","prefix":"number","rdns":"string","region":"string","subnet_mask":"string","type":"string"}]],"reserved":["list",["object",{"address":"string","gateway":"string","prefix":"number","rdns":"string","region":"string","subnet_mask":"string","type":"string"}]],"shared":["list",["object",{"address":"string","gateway":"string","prefix":"number","rdns":"string","region":"string","subnet_mask":"string","type":"string"}]]}]],"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":["list",["object",{"address":"string","gateway":"string","prefix":"number","rdns":"string","region":"string","subnet_mask":"string","type":"string"}]],"slaac":["list",["object",{"address":"string","gateway":"string","prefix":"number","rdns":"string","region":"string","subnet_mask":"string","type":"string"}]]}]],"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"}]]}]]}]],"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},"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_kind":"plain","optional":true,"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},"types":{"type":["list",["object",{"addons":["list",["object",{"backups":["list",["object",{"price":["list",["object",{"hourly":"number","monthly":"number"}]]}]]}]],"class":"string","disk":"number","id":"string","label":"string","memory":"number","network_out":"number","price":["list",["object",{"hourly":"number","monthly":"number"}]],"transfer":"number","vcpus":"number"}]],"description":"The returned list of Types.","description_kind":"plain","computed":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_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"}]],"interface":["list",["object",{"ipam_address":"string","label":"string","purpose":"string"}]],"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","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_kind":"plain","optional":true,"computed":true},"is_bgp":{"type":"bool","description":"Whether this IPv6 range is shared.","description_kind":"plain","computed":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":{"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_kernel":{"version":0,"block":{"attributes":{"architecture":{"type":"string","description":"The architecture of this Kernel.","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_lke_cluster":{"version":0,"block":{"attributes":{"api_endpoints":{"type":["list","string"],"description":"The API endpoints for the cluster.","description_kind":"plain","computed":true},"control_plane":{"type":["list",["object",{"high_availability":"bool"}]],"description":"Defines settings for the Kubernetes Control Plane.","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},"pools":{"type":["list",["object",{"autoscaler":["list",["object",{"max":"number","min":"number"}]],"count":"number","id":"number","nodes":["list",["object",{"id":"string","instance_id":"number","status":"string"}]],"type":"string"}]],"description":"A node pool in 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}},"description_kind":"plain"}},"linode_lke_versions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"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_kind":"plain","optional":true,"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}},"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_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_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","required":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},"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","optional":true,"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","optional":true,"computed":true},"static_site_domain":{"type":"string","description":"The base URL for this cluster used when hosting static sites.","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"This cluster's status.","description_kind":"plain","optional":true,"computed":true}},"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_kind":"plain","optional":true,"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":["list","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","optional":true,"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},"resolvers":{"type":["list",["object",{"ipv4":"string","ipv6":"string"}]],"description_kind":"plain","computed":true},"status":{"type":"string","description":"This region’s current operational status.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"linode_regions":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"regions":{"type":["list",["object",{"capabilities":["list","string"],"country":"string","id":"string","label":"string","resolvers":["list",["object",{"ipv4":"string","ipv6":"string"}]],"status":"string"}]],"description":"The returned list of regions.","description_kind":"plain","computed":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_sshkey":{"version":0,"block":{"attributes":{"created":{"type":"string","description":"The date this key was added.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"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","computed":true}},"description_kind":"plain"}},"linode_stackscript":{"version":0,"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":"number","description":"The unique ID of this Stackscript.","description_kind":"plain","required":true},"images":{"type":["list","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","optional":true,"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_kind":"plain","optional":true,"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},"stackscripts":{"type":["list",["object",{"created":"string","deployments_active":"number","deployments_total":"number","description":"string","id":"number","images":["list","string"],"is_public":"bool","label":"string","rev_note":"string","script":"string","updated":"string","user_defined_fields":["list",["object",{"default":"string","example":"string","label":"string","many_of":"string","name":"string","one_of":"string"}]],"user_gravatar_id":"string","username":"string"}]],"description":"The returned list of StackScripts.","description_kind":"plain","computed":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_user":{"version":0,"block":{"attributes":{"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},"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_kind":"plain","optional":true,"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},"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}},"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"}},"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_vlans":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"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},"vlans":{"type":["list",["object",{"created":"string","label":"string","linodes":["list","number"],"region":"string"}]],"description":"The returned list of VLANs.","description_kind":"plain","computed":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_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"}}}}}} +{"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_kind":"plain","optional":true},"config_profile":{"type":"string","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},"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_kind":"plain","optional":true,"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},"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":{"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},"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}},"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 IP addresses, 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 IP addresses, 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},"firewall_id":{"type":"number","description":"The ID of the Firewall to access.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"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},"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_kind":"plain","optional":true,"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_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},"group":{"type":"string","description":"The display group of the Linode instance.","description_kind":"plain","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},"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 initialially 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},"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},"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":{"ipam_address":{"type":"string","description":"The IPAM Address of this interface.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The unique label of this interface.","description_kind":"plain","optional":true},"purpose":{"type":"string","description":"The purpose of this interface.","description_kind":"plain","optional":true}},"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"}},"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"}},"interface":{"nesting_mode":"list","block":{"attributes":{"ipam_address":{"type":"string","description":"The IPAM Address of this interface.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The unique label of this interface.","description_kind":"plain","optional":true},"purpose":{"type":"string","description":"The purpose of this interface.","description_kind":"plain","optional":true}},"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"}},"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":{"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"},"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":{"ipam_address":{"type":"string","description":"This Network Interface’s private IP address in Classless Inter-Domain Routing (CIDR) notation.","description_kind":"plain","optional":true},"label":{"type":"string","description":"The name of this interface.","description_kind":"plain","optional":true},"purpose":{"type":"string","description":"The type of interface.","description_kind":"plain","required":true}},"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_kind":"plain","optional":true,"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 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 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}},"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},"gateway":{"type":"string","description":"The default gateway for this address","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"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},"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}},"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_kind":"plain","optional":true,"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_kind":"plain","optional":true,"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}},"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},"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}},"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}},"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","required":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_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},"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":"string","description_kind":"plain","optional":true,"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","required":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},"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_kind":"plain","optional":true,"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},"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},"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},"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)","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","required":true},"cors_enabled":{"type":"bool","description":"If true, the bucket will be created with CORS enabled for all origins.","description_kind":"plain","optional":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},"secret_key":{"type":"string","description":"The S3 secret key to use for this resource. (Required for lifecycle_rule and versioning)","description_kind":"plain","optional":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":"number","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},"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 a bucket to which the key is granting access is hosted.","description_kind":"plain","required":true},"permissions":{"type":"string","description":"This Limited Access Key's permissions for the selected bucket.","description_kind":"plain","required":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 S3 access key with access to the target bucket.","description_kind":"plain","required":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","required":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},"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},"secret_key":{"type":"string","description":"The S3 secret key with access to the target bucket.","description_kind":"plain","required":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_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_kind":"plain","optional":true,"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}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","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":"number","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":0,"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},"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://www.linode.com/docs/api#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},"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_kind":"plain","optional":true,"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}},"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"}}},"description_kind":"plain"}}},"data_source_schemas":{"linode_account":{"version":0,"block":{"attributes":{"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},"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},"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_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_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_firewall":{"version":0,"block":{"attributes":{"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 to apply this firewall to.","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}},"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"}]],"public":["list",["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string"}]],"reserved":["list",["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string"}]],"shared":["list",["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string"}]]}]],"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"}],"slaac":["object",{"address":"string","gateway":"string","linode_id":"number","prefix":"number","public":"bool","rdns":"string","region":"string","subnet_mask":"string","type":"string"}]}]],"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"}]]}]]}]],"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},"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"}]]}]]}]],"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},"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"}]],"interface":["list",["object",{"ipam_address":"string","label":"string","purpose":"string"}]],"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_kernel":{"version":0,"block":{"attributes":{"architecture":{"type":"string","description":"The architecture of this Kernel.","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_lke_cluster":{"version":0,"block":{"attributes":{"api_endpoints":{"type":["list","string"],"description":"The API endpoints for the cluster.","description_kind":"plain","computed":true},"control_plane":{"type":["list",["object",{"high_availability":"bool"}]],"description":"Defines settings for the Kubernetes Control Plane.","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},"pools":{"type":["list",["object",{"autoscaler":["list",["object",{"max":"number","min":"number"}]],"count":"number","id":"number","nodes":["list",["object",{"id":"string","instance_id":"number","status":"string"}]],"type":"string"}]],"description":"A node pool in 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}},"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}},"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_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_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","required":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},"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"}},"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},"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","computed":true},"label":{"type":"string","description":"Detailed location information for this Region, including city, state or region, and country.","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_stackscript":{"version":0,"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},"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},"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"}}}}}} diff --git a/examples-generated/database/accesscontrols.yaml b/examples-generated/database/accesscontrols.yaml index d7edace..04468cd 100644 --- a/examples-generated/database/accesscontrols.yaml +++ b/examples-generated/database/accesscontrols.yaml @@ -25,7 +25,7 @@ metadata: name: my-db spec: forProvider: - engineId: mysql/8.0.26 + engineId: mysql/8.0.30 label: mydatabase region: us-southeast type: g6-nanode-1 diff --git a/examples-generated/database/mongodb.yaml b/examples-generated/database/mongodb.yaml deleted file mode 100644 index f0f95a3..0000000 --- a/examples-generated/database/mongodb.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: database.linode.upbound.io/v1alpha1 -kind: MongoDB -metadata: - annotations: - meta.upbound.io/example-id: database/v1alpha1/mongodb - labels: - testing.upbound.io/example-name: foobar - name: foobar -spec: - forProvider: - engineId: mongodb/4.4.10 - label: mydatabase - region: us-southeast - type: g6-nanode-1 - ---- - diff --git a/examples-generated/database/mysql.yaml b/examples-generated/database/mysql.yaml index faf9619..20cab64 100644 --- a/examples-generated/database/mysql.yaml +++ b/examples-generated/database/mysql.yaml @@ -8,7 +8,7 @@ metadata: name: foobar spec: forProvider: - engineId: mysql/8.0.26 + engineId: mysql/8.0.30 label: mydatabase region: us-southeast type: g6-nanode-1 diff --git a/internal/controller/database/mongodb/zz_controller.go b/internal/controller/database/mongodb/zz_controller.go deleted file mode 100755 index 4cfa7dd..0000000 --- a/internal/controller/database/mongodb/zz_controller.go +++ /dev/null @@ -1,51 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package mongodb - -import ( - "time" - - "github.com/crossplane/crossplane-runtime/pkg/connection" - "github.com/crossplane/crossplane-runtime/pkg/event" - "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" - "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" - xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" - tjcontroller "github.com/upbound/upjet/pkg/controller" - "github.com/upbound/upjet/pkg/terraform" - ctrl "sigs.k8s.io/controller-runtime" - - v1alpha1 "github.com/linode/provider-linode/apis/database/v1alpha1" -) - -// Setup adds a controller that reconciles MongoDB managed resources. -func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.MongoDB_GroupVersionKind.String()) - var initializers managed.InitializerChain - cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} - if o.SecretStoreConfigGVK != nil { - cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK)) - } - opts := []managed.ReconcilerOption{ - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["linode_database_mongodb"], tjcontroller.WithLogger(o.Logger), - tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.MongoDB_GroupVersionKind))), - )), - managed.WithLogger(o.Logger.WithValues("controller", name)), - managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), - managed.WithFinalizer(terraform.NewWorkspaceFinalizer(o.WorkspaceStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), - managed.WithTimeout(3 * time.Minute), - managed.WithInitializers(initializers), - managed.WithConnectionPublishers(cps...), - managed.WithPollInterval(o.PollInterval), - } - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.MongoDB_GroupVersionKind), opts...) - - return ctrl.NewControllerManagedBy(mgr). - Named(name). - WithOptions(o.ForControllerRuntime()). - For(&v1alpha1.MongoDB{}). - Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) -} diff --git a/internal/controller/zz_setup.go b/internal/controller/zz_setup.go index f96e66d..3d74eb2 100755 --- a/internal/controller/zz_setup.go +++ b/internal/controller/zz_setup.go @@ -10,7 +10,6 @@ import ( "github.com/upbound/upjet/pkg/controller" accesscontrols "github.com/linode/provider-linode/internal/controller/database/accesscontrols" - mongodb "github.com/linode/provider-linode/internal/controller/database/mongodb" mysql "github.com/linode/provider-linode/internal/controller/database/mysql" postgresql "github.com/linode/provider-linode/internal/controller/database/postgresql" domain "github.com/linode/provider-linode/internal/controller/domain/domain" @@ -45,7 +44,6 @@ import ( func Setup(mgr ctrl.Manager, o controller.Options) error { for _, setup := range []func(ctrl.Manager, controller.Options) error{ accesscontrols.Setup, - mongodb.Setup, mysql.Setup, postgresql.Setup, domain.Setup, diff --git a/package/crds/database.linode.upbound.io_mongodbs.yaml b/package/crds/database.linode.upbound.io_mongodbs.yaml deleted file mode 100644 index 3d4bc68..0000000 --- a/package/crds/database.linode.upbound.io_mongodbs.yaml +++ /dev/null @@ -1,536 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.11.3 - creationTimestamp: null - name: mongodbs.database.linode.upbound.io -spec: - group: database.linode.upbound.io - names: - categories: - - crossplane - - managed - - linode - kind: MongoDB - listKind: MongoDBList - plural: mongodbs - singular: mongodb - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=='Ready')].status - name: READY - type: string - - jsonPath: .status.conditions[?(@.type=='Synced')].status - name: SYNCED - type: string - - jsonPath: .metadata.annotations.crossplane\.io/external-name - name: EXTERNAL-NAME - type: string - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - description: MongoDB is the Schema for the MongoDBs API. Manages a Linode - MongoDB Database. - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: MongoDBSpec defines the desired state of MongoDB - properties: - deletionPolicy: - default: Delete - description: 'DeletionPolicy specifies what will happen to the underlying - external when this managed resource is deleted - either "Delete" - or "Orphan" the external resource. This field is planned to be deprecated - in favor of the ManagementPolicy field in a future release. Currently, - both could be set independently and non-default values would be - honored if the feature flag is enabled. See the design doc for more - information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - Orphan - - Delete - type: string - forProvider: - properties: - allowList: - 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. Use linode_database_access_controls to manage your - allow list separately. 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. - items: - type: string - type: array - clusterSize: - description: The number of Linode Instance nodes deployed to the - Managed Database. (default 1) The number of Linode Instance - nodes deployed to the Managed Database. Defaults to 1. - type: number - compressionType: - description: The type of data compression for this Database. (none, - snappy, zlib; default none) The type of data compression for - this Database. - type: string - encrypted: - description: Whether the Managed Databases is encrypted. (default - false) Whether the Managed Databases is encrypted. - type: boolean - engineId: - description: The Managed Database engine in engine/version format. - (e.g. mongo/4.4.10) The Managed Database engine in engine/version - format. (e.g. mongodb/4.4.10) - type: string - label: - description: A unique, user-defined string referring to the Managed - Database. A unique, user-defined string referring to the Managed - Database. - type: string - region: - description: The region to use for the Managed Database. The region - to use for the Managed Database. - type: string - sslConnection: - description: Whether to require SSL credentials to establish a - connection to the Managed Database. (default false) Whether - to require SSL credentials to establish a connection to the - Managed Database. - type: boolean - storageEngine: - description: The type of storage engine for this Database. (mmapv1, - wiredtiger; default wiredtiger) The type of storage engine for - this Database. - type: string - type: - description: The Linode Instance type used for the nodes of the Managed - Database instance. The Linode Instance type used by the Managed - Database for its nodes. - type: string - updates: - description: Configuration settings for automated patch update - maintenance for the Managed Database. - items: - properties: - dayOfWeek: - description: The day to perform maintenance. (monday, tuesday, - ...) The day to perform maintenance. - type: string - duration: - description: The maximum maintenance window time in hours. - (1..3) The maximum maintenance window time in hours. - type: number - frequency: - description: Whether maintenance occurs on a weekly or monthly - basis. (weekly, monthly) Whether maintenance occurs on - a weekly or monthly basis. - type: string - hourOfDay: - description: The hour to begin maintenance based in UTC - time. (0..23) The hour to begin maintenance based in UTC - time. - type: number - weekOfMonth: - description: The week of the month to perform monthly frequency - updates. Required for monthly frequency updates. (1..4) - The week of the month to perform monthly frequency updates. - Required for monthly frequency updates. - type: number - required: - - dayOfWeek - - duration - - frequency - - hourOfDay - type: object - type: array - type: object - managementPolicy: - default: FullControl - description: 'THIS IS AN ALPHA FIELD. Do not use it in production. - It is not honored unless the relevant Crossplane feature flag is - enabled, and may be changed or removed without notice. ManagementPolicy - specifies the level of control Crossplane has over the managed external - resource. This field is planned to replace the DeletionPolicy field - in a future release. Currently, both could be set independently - and non-default values would be honored if the feature flag is enabled. - See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' - enum: - - FullControl - - ObserveOnly - - OrphanOnDelete - type: string - providerConfigRef: - default: - name: default - description: ProviderConfigReference specifies how the provider that - will be used to create, observe, update, and delete this managed - resource should be configured. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - providerRef: - description: 'ProviderReference specifies the provider that will be - used to create, observe, update, and delete this managed resource. - Deprecated: Please use ProviderConfigReference, i.e. `providerConfigRef`' - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of this - reference is required. The default is 'Required', which - means the reconcile will fail if the reference cannot be - resolved. 'Optional' means this reference will be a no-op - if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will attempt - to resolve the reference only when the corresponding field - is not present. Use 'Always' to resolve the reference on - every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - publishConnectionDetailsTo: - description: PublishConnectionDetailsTo specifies the connection secret - config which contains a name, metadata and a reference to secret - store config to which any connection details for this managed resource - should be written. Connection details frequently include the endpoint, - username, and password required to connect to the managed resource. - properties: - configRef: - default: - name: default - description: SecretStoreConfigRef specifies which secret store - config should be used for this ConnectionSecret. - properties: - name: - description: Name of the referenced object. - type: string - policy: - description: Policies for referencing. - properties: - resolution: - default: Required - description: Resolution specifies whether resolution of - this reference is required. The default is 'Required', - which means the reconcile will fail if the reference - cannot be resolved. 'Optional' means this reference - will be a no-op if it cannot be resolved. - enum: - - Required - - Optional - type: string - resolve: - description: Resolve specifies when this reference should - be resolved. The default is 'IfNotPresent', which will - attempt to resolve the reference only when the corresponding - field is not present. Use 'Always' to resolve the reference - on every reconcile. - enum: - - Always - - IfNotPresent - type: string - type: object - required: - - name - type: object - metadata: - description: Metadata is the metadata for connection secret. - properties: - annotations: - additionalProperties: - type: string - description: Annotations are the annotations to be added to - connection secret. - For Kubernetes secrets, this will be - used as "metadata.annotations". - It is up to Secret Store - implementation for others store types. - type: object - labels: - additionalProperties: - type: string - description: Labels are the labels/tags to be added to connection - secret. - For Kubernetes secrets, this will be used as "metadata.labels". - - It is up to Secret Store implementation for others store - types. - type: object - type: - description: Type is the SecretType for the connection secret. - - Only valid for Kubernetes Secret Stores. - type: string - type: object - name: - description: Name is the name of the connection secret. - type: string - required: - - name - type: object - writeConnectionSecretToRef: - description: WriteConnectionSecretToReference specifies the namespace - and name of a Secret to which any connection details for this managed - resource should be written. Connection details frequently include - the endpoint, username, and password required to connect to the - managed resource. This field is planned to be replaced in a future - release in favor of PublishConnectionDetailsTo. Currently, both - could be set independently and connection details would be published - to both without affecting each other. - properties: - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - name - - namespace - type: object - required: - - forProvider - type: object - x-kubernetes-validations: - - message: engineId is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.engineId) - - message: label is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.label) - - message: region is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.region) - - message: type is a required parameter - rule: self.managementPolicy == 'ObserveOnly' || has(self.forProvider.type) - status: - description: MongoDBStatus defines the observed state of MongoDB. - properties: - atProvider: - properties: - allowList: - 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. Use linode_database_access_controls to manage your - allow list separately. 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. - items: - type: string - type: array - clusterSize: - description: The number of Linode Instance nodes deployed to the - Managed Database. (default 1) The number of Linode Instance - nodes deployed to the Managed Database. Defaults to 1. - type: number - compressionType: - description: The type of data compression for this Database. (none, - snappy, zlib; default none) The type of data compression for - this Database. - type: string - created: - description: When this Managed Database was created. When this - Managed Database was created. - type: string - encrypted: - description: Whether the Managed Databases is encrypted. (default - false) Whether the Managed Databases is encrypted. - type: boolean - engine: - description: The Managed Database engine. (e.g. mongodb) The Managed - Database engine. - type: string - engineId: - description: The Managed Database engine in engine/version format. - (e.g. mongo/4.4.10) The Managed Database engine in engine/version - format. (e.g. mongodb/4.4.10) - type: string - hostPrimary: - description: The primary host for the Managed Database. The primary - host for the Managed Database. - type: string - hostSecondary: - description: The secondary/private network host for the Managed - Database. The secondary host for the Managed Database. - type: string - id: - description: The ID of the Managed Database. - type: string - label: - description: A unique, user-defined string referring to the Managed - Database. A unique, user-defined string referring to the Managed - Database. - type: string - peers: - description: A set of peer addresses for this Database. A set - of peer addresses for this Database. - items: - type: string - type: array - port: - description: The access port for this Managed Database. The access - port for this Managed Database. - type: number - region: - description: The region to use for the Managed Database. The region - to use for the Managed Database. - type: string - replicaSet: - description: Label for configuring a MongoDB replica set. Choose - the same label on multiple Databases to include them in the - same replica set. Label for configuring a MongoDB replica set. - Choose the same label on multiple Databases to include them - in the same replica set. - type: string - sslConnection: - description: Whether to require SSL credentials to establish a - connection to the Managed Database. (default false) Whether - to require SSL credentials to establish a connection to the - Managed Database. - type: boolean - status: - description: The operating status of the Managed Database. The - operating status of the Managed Database. - type: string - storageEngine: - description: The type of storage engine for this Database. (mmapv1, - wiredtiger; default wiredtiger) The type of storage engine for - this Database. - type: string - type: - description: The Linode Instance type used for the nodes of the Managed - Database instance. The Linode Instance type used by the Managed - Database for its nodes. - type: string - updated: - description: When this Managed Database was last updated. When - this Managed Database was last updated. - type: string - updates: - description: Configuration settings for automated patch update - maintenance for the Managed Database. - items: - properties: - dayOfWeek: - description: The day to perform maintenance. (monday, tuesday, - ...) The day to perform maintenance. - type: string - duration: - description: The maximum maintenance window time in hours. - (1..3) The maximum maintenance window time in hours. - type: number - frequency: - description: Whether maintenance occurs on a weekly or monthly - basis. (weekly, monthly) Whether maintenance occurs on - a weekly or monthly basis. - type: string - hourOfDay: - description: The hour to begin maintenance based in UTC - time. (0..23) The hour to begin maintenance based in UTC - time. - type: number - weekOfMonth: - description: The week of the month to perform monthly frequency - updates. Required for monthly frequency updates. (1..4) - The week of the month to perform monthly frequency updates. - Required for monthly frequency updates. - type: number - type: object - type: array - version: - description: The Managed Database engine version. (e.g. v8.0.26) - The Managed Database engine version. - type: string - type: object - conditions: - description: Conditions of the resource. - items: - description: A Condition that may apply to a resource. - properties: - lastTransitionTime: - description: LastTransitionTime is the last time this condition - transitioned from one status to another. - format: date-time - type: string - message: - description: A Message containing details about this condition's - last transition from one status to another, if any. - type: string - reason: - description: A Reason for this condition's last transition from - one status to another. - type: string - status: - description: Status of this condition; is it currently True, - False, or Unknown? - type: string - type: - description: Type of this condition. At most one of each condition - type may apply to a resource at any point in time. - type: string - required: - - lastTransitionTime - - reason - - status - - type - type: object - type: array - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/package/crds/database.linode.upbound.io_mysqls.yaml b/package/crds/database.linode.upbound.io_mysqls.yaml index 88d68de..1ff2aaa 100644 --- a/package/crds/database.linode.upbound.io_mysqls.yaml +++ b/package/crds/database.linode.upbound.io_mysqls.yaml @@ -89,8 +89,8 @@ spec: type: boolean engineId: description: The Managed Database engine in engine/version format. - (e.g. mysql/8.0.26) The Managed Database engine in engine/version - format. (e.g. mysql/8.0.26) + (e.g. mysql/8.0.30) The Managed Database engine in engine/version + format. (e.g. mysql/8.0.30) type: string label: description: A unique, user-defined string referring to the Managed @@ -383,8 +383,8 @@ spec: type: string engineId: description: The Managed Database engine in engine/version format. - (e.g. mysql/8.0.26) The Managed Database engine in engine/version - format. (e.g. mysql/8.0.26) + (e.g. mysql/8.0.30) The Managed Database engine in engine/version + format. (e.g. mysql/8.0.30) type: string hostPrimary: description: The primary host for the Managed Database. The primary diff --git a/package/crds/database.linode.upbound.io_postgresqls.yaml b/package/crds/database.linode.upbound.io_postgresqls.yaml index 7d420a8..3ebf427 100644 --- a/package/crds/database.linode.upbound.io_postgresqls.yaml +++ b/package/crds/database.linode.upbound.io_postgresqls.yaml @@ -90,7 +90,7 @@ spec: engineId: description: The Managed Database engine in engine/version format. (e.g. postgresql/13.2) The Managed Database engine in engine/version - format. (e.g. mongodb/4.4.10) + format. (e.g. mysql/8.0.30) type: string label: description: A unique, user-defined string referring to the Managed @@ -393,7 +393,7 @@ spec: engineId: description: The Managed Database engine in engine/version format. (e.g. postgresql/13.2) The Managed Database engine in engine/version - format. (e.g. mongodb/4.4.10) + format. (e.g. mysql/8.0.30) type: string hostPrimary: description: The primary host for the Managed Database. The primary diff --git a/package/crds/image.linode.upbound.io_images.yaml b/package/crds/image.linode.upbound.io_images.yaml index 0726bec..613ee33 100644 --- a/package/crds/image.linode.upbound.io_images.yaml +++ b/package/crds/image.linode.upbound.io_images.yaml @@ -67,6 +67,9 @@ spec: type: string forProvider: properties: + cloudInit: + description: Whether this image supports cloud-init. + type: boolean description: description: A detailed description of this Image. A detailed description of this Image. @@ -438,6 +441,14 @@ spec: properties: atProvider: properties: + capabilities: + description: The capabilities of this Image. + items: + type: string + type: array + cloudInit: + description: Whether this image supports cloud-init. + type: boolean created: description: When this Image was created. When this Image was created. diff --git a/package/crds/instance.linode.upbound.io_instances.yaml b/package/crds/instance.linode.upbound.io_instances.yaml index 08ce042..bc1401c 100644 --- a/package/crds/instance.linode.upbound.io_instances.yaml +++ b/package/crds/instance.linode.upbound.io_instances.yaml @@ -637,6 +637,18 @@ spec: The Linode's label is for display purposes only. If no label is provided for a Linode, a default will be assigned type: string + metadata: + description: Various fields related to the Linode Metadata service. + items: + properties: + userData: + 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. + type: string + type: object + type: array privateIp: description: If true, the created Linode will have private networking enabled, allowing use of the 192.168.128.0/17 network within @@ -1551,6 +1563,9 @@ spec: description: The display group of the Linode instance. The display group of the Linode instance. type: string + hasUserData: + description: Whether or not this Instance was created with user-data. + type: boolean hostUuid: description: (Computed) The ID of the disk in the Linode API. The Linode’s host machine, as a UUID. @@ -1623,6 +1638,18 @@ spec: The Linode's label is for display purposes only. If no label is provided for a Linode, a default will be assigned type: string + metadata: + description: Various fields related to the Linode Metadata service. + items: + properties: + userData: + 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. + type: string + type: object + type: array privateIp: description: If true, the created Linode will have private networking enabled, allowing use of the 192.168.128.0/17 network within diff --git a/package/crds/instance.linode.upbound.io_ips.yaml b/package/crds/instance.linode.upbound.io_ips.yaml index 2ebe906..c672401 100644 --- a/package/crds/instance.linode.upbound.io_ips.yaml +++ b/package/crds/instance.linode.upbound.io_ips.yaml @@ -70,7 +70,8 @@ spec: applyImmediately: description: If true, the instance will be rebooted to update network interfaces. If true, the instance will be rebooted to - update network interfaces. + update network interfaces. This functionality is not affected + by the `skip_implicit_reboots` provider argument. type: boolean linodeId: description: The ID of the Linode to allocate an IPv4 address @@ -428,7 +429,8 @@ spec: applyImmediately: description: If true, the instance will be rebooted to update network interfaces. If true, the instance will be rebooted to - update network interfaces. + update network interfaces. This functionality is not affected + by the `skip_implicit_reboots` provider argument. type: boolean gateway: description: The default gateway for this address The default diff --git a/package/crds/objectstorage.linode.upbound.io_keys.yaml b/package/crds/objectstorage.linode.upbound.io_keys.yaml index 989ca31..358b4f9 100644 --- a/package/crds/objectstorage.linode.upbound.io_keys.yaml +++ b/package/crds/objectstorage.linode.upbound.io_keys.yaml @@ -91,7 +91,7 @@ spec: permissions: description: This Limited Access Key’s permissions for the selected bucket. Changing (read_write, read_only) This - Limited Access Key’s permissions for the selected bucket. + Limited Access Key's permissions for the selected bucket. type: string required: - bucketName @@ -321,7 +321,7 @@ spec: permissions: description: This Limited Access Key’s permissions for the selected bucket. Changing (read_write, read_only) This - Limited Access Key’s permissions for the selected bucket. + Limited Access Key's permissions for the selected bucket. type: string type: object type: array diff --git a/package/crds/stackscript.linode.upbound.io_stackscripts.yaml b/package/crds/stackscript.linode.upbound.io_stackscripts.yaml index 3616ab4..6dd34c1 100644 --- a/package/crds/stackscript.linode.upbound.io_stackscripts.yaml +++ b/package/crds/stackscript.linode.upbound.io_stackscripts.yaml @@ -73,8 +73,8 @@ spec: for the StackScript. type: string images: - description: An array of Image IDs representing the Images that - this StackScript is compatible for deploying with. any/all indicates + description: A set of Image IDs representing the Images that this + StackScript is compatible for deploying with. any/all indicates that all available image distributions, including private images, are accepted. Currently private image IDs are not supported. An array of Image IDs representing the Images that this StackScript @@ -103,38 +103,6 @@ spec: with this StackScript. The script to execute when provisioning a new Linode with this StackScript. type: string - userDefinedFields: - description: This is a list of fields defined with a special syntax - inside this StackScript that allow for supplying customized - parameters during deployment. This is a list of fields defined - with a special syntax inside this StackScript that allow for - supplying customized parameters during deployment. - items: - properties: - default: - description: The default value. If not specified, this value - will be used. - type: string - example: - description: An example value for the field. - type: string - label: - description: The StackScript's label is for display purposes - only. - type: string - manyOf: - description: A list of acceptable values for the field in - any quantity, combination or order. - type: string - name: - description: The name of the field. - type: string - oneOf: - description: A list of acceptable single values for the - field. - type: string - type: object - type: array type: object managementPolicy: default: FullControl @@ -357,8 +325,8 @@ spec: id: type: string images: - description: An array of Image IDs representing the Images that - this StackScript is compatible for deploying with. any/all indicates + description: A set of Image IDs representing the Images that this + StackScript is compatible for deploying with. any/all indicates that all available image distributions, including private images, are accepted. Currently private image IDs are not supported. An array of Image IDs representing the Images that this StackScript diff --git a/package/crds/token.linode.upbound.io_tokens.yaml b/package/crds/token.linode.upbound.io_tokens.yaml index ac898bb..6d3f3aa 100644 --- a/package/crds/token.linode.upbound.io_tokens.yaml +++ b/package/crds/token.linode.upbound.io_tokens.yaml @@ -76,7 +76,7 @@ spec: 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:05Z07:00' + never expire unless revoked. Format: 2006-01-02T15:04:05Z' type: string label: description: A label for the Token. The label of the Linode Token. @@ -303,7 +303,7 @@ spec: 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:05Z07:00' + never expire unless revoked. Format: 2006-01-02T15:04:05Z' type: string id: type: string