From f5eda57ddb1ab54134445465a160cc036ce35337 Mon Sep 17 00:00:00 2001 From: Yacine FODIL Date: Thu, 30 Nov 2023 15:16:20 +0100 Subject: [PATCH 1/4] upgrade tf provider scw version --- Makefile | 4 +- apis/mnq/v1alpha1/zz_credential_types.go | 247 ------- apis/mnq/v1alpha1/zz_generated.deepcopy.go | 674 ------------------ apis/mnq/v1alpha1/zz_generated.managed.go | 128 ---- apis/mnq/v1alpha1/zz_generated.managedlist.go | 26 - apis/mnq/v1alpha1/zz_generated.resolvers.go | 39 - apis/mnq/v1alpha1/zz_generated_terraformed.go | 182 ----- apis/mnq/v1alpha1/zz_groupversion_info.go | 32 - apis/mnq/v1alpha1/zz_mnqnamespace_types.go | 161 ----- config/mnq/config.go | 28 - 10 files changed, 2 insertions(+), 1519 deletions(-) delete mode 100755 apis/mnq/v1alpha1/zz_credential_types.go delete mode 100644 apis/mnq/v1alpha1/zz_generated.deepcopy.go delete mode 100644 apis/mnq/v1alpha1/zz_generated.managed.go delete mode 100644 apis/mnq/v1alpha1/zz_generated.managedlist.go delete mode 100644 apis/mnq/v1alpha1/zz_generated.resolvers.go delete mode 100755 apis/mnq/v1alpha1/zz_generated_terraformed.go delete mode 100755 apis/mnq/v1alpha1/zz_groupversion_info.go delete mode 100755 apis/mnq/v1alpha1/zz_mnqnamespace_types.go delete mode 100644 config/mnq/config.go diff --git a/Makefile b/Makefile index 45d095b..47ec846 100644 --- a/Makefile +++ b/Makefile @@ -8,9 +8,9 @@ export TERRAFORM_VERSION := 1.3.3 export TERRAFORM_PROVIDER_SOURCE := scaleway/scaleway export TERRAFORM_PROVIDER_REPO := https://github.com/scaleway/terraform-provider-scaleway -export TERRAFORM_PROVIDER_VERSION := 2.28.0 +export TERRAFORM_PROVIDER_VERSION := 2.34.0 export TERRAFORM_PROVIDER_DOWNLOAD_NAME := terraform-provider-scaleway -export TERRAFORM_NATIVE_PROVIDER_BINARY := terraform-provider-scaleway_v2.28.0 +export TERRAFORM_NATIVE_PROVIDER_BINARY := terraform-provider-scaleway_v2.34.0 export TERRAFORM_DOCS_PATH := docs/resources PLATFORMS ?= linux_amd64 linux_arm64 diff --git a/apis/mnq/v1alpha1/zz_credential_types.go b/apis/mnq/v1alpha1/zz_credential_types.go deleted file mode 100755 index 72341b4..0000000 --- a/apis/mnq/v1alpha1/zz_credential_types.go +++ /dev/null @@ -1,247 +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 CredentialInitParameters struct { - - // The credential name.. - // The name of the Credential - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // Credentials file used to connect to the NATS service. - // credential for NATS protocol - NatsCredentials []NatsCredentialsInitParameters `json:"natsCredentials,omitempty" tf:"nats_credentials,omitempty"` - - // (Defaults to provider region). The region - // in which the namespace should be created. - // The region you want to attach the resource to - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Credential used to connect to the SQS/SNS service. - // The credential used to connect to the SQS/SNS service - SqsSnsCredentials []SqsSnsCredentialsInitParameters `json:"sqsSnsCredentials,omitempty" tf:"sqs_sns_credentials,omitempty"` -} - -type CredentialObservation struct { - - // The credential ID. - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // The credential name.. - // The name of the Credential - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The namespace containing the Credential. - // The ID of the Namespace associated to - NamespaceID *string `json:"namespaceId,omitempty" tf:"namespace_id,omitempty"` - - // Credentials file used to connect to the NATS service. - // credential for NATS protocol - NatsCredentials []NatsCredentialsParameters `json:"natsCredentials,omitempty" tf:"nats_credentials,omitempty"` - - // The protocol associated to the Credential. Possible values are nats and sqs_sns. - // The Namespace protocol - Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` - - // (Defaults to provider region). The region - // in which the namespace should be created. - // The region you want to attach the resource to - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Credential used to connect to the SQS/SNS service. - // The credential used to connect to the SQS/SNS service - SqsSnsCredentials []SqsSnsCredentialsObservation `json:"sqsSnsCredentials,omitempty" tf:"sqs_sns_credentials,omitempty"` -} - -type CredentialParameters struct { - - // The credential name.. - // The name of the Credential - // +kubebuilder:validation:Optional - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // The namespace containing the Credential. - // The ID of the Namespace associated to - // +crossplane:generate:reference:type=MNQNamespace - // +kubebuilder:validation:Optional - NamespaceID *string `json:"namespaceId,omitempty" tf:"namespace_id,omitempty"` - - // Reference to a MNQNamespace to populate namespaceId. - // +kubebuilder:validation:Optional - NamespaceIDRef *v1.Reference `json:"namespaceIdRef,omitempty" tf:"-"` - - // Selector for a MNQNamespace to populate namespaceId. - // +kubebuilder:validation:Optional - NamespaceIDSelector *v1.Selector `json:"namespaceIdSelector,omitempty" tf:"-"` - - // Credentials file used to connect to the NATS service. - // credential for NATS protocol - // +kubebuilder:validation:Optional - NatsCredentials []NatsCredentialsParameters `json:"natsCredentials,omitempty" tf:"nats_credentials,omitempty"` - - // (Defaults to provider region). The region - // in which the namespace should be created. - // The region you want to attach the resource to - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // Credential used to connect to the SQS/SNS service. - // The credential used to connect to the SQS/SNS service - // +kubebuilder:validation:Optional - SqsSnsCredentials []SqsSnsCredentialsParameters `json:"sqsSnsCredentials,omitempty" tf:"sqs_sns_credentials,omitempty"` -} - -type NatsCredentialsInitParameters struct { -} - -type NatsCredentialsObservation struct { -} - -type NatsCredentialsParameters struct { -} - -type PermissionsInitParameters struct { - - // . Defines if user can manage the associated resource(s). - // Allow manage the associated resource - CanManage *bool `json:"canManage,omitempty" tf:"can_manage,omitempty"` - - // . Defines if user can publish messages to the service. - // Allow publish messages to the service - CanPublish *bool `json:"canPublish,omitempty" tf:"can_publish,omitempty"` - - // . Defines if user can receive messages from the service. - // Allow receive messages from the service - CanReceive *bool `json:"canReceive,omitempty" tf:"can_receive,omitempty"` -} - -type PermissionsObservation struct { - - // . Defines if user can manage the associated resource(s). - // Allow manage the associated resource - CanManage *bool `json:"canManage,omitempty" tf:"can_manage,omitempty"` - - // . Defines if user can publish messages to the service. - // Allow publish messages to the service - CanPublish *bool `json:"canPublish,omitempty" tf:"can_publish,omitempty"` - - // . Defines if user can receive messages from the service. - // Allow receive messages from the service - CanReceive *bool `json:"canReceive,omitempty" tf:"can_receive,omitempty"` -} - -type PermissionsParameters struct { - - // . Defines if user can manage the associated resource(s). - // Allow manage the associated resource - // +kubebuilder:validation:Optional - CanManage *bool `json:"canManage,omitempty" tf:"can_manage,omitempty"` - - // . Defines if user can publish messages to the service. - // Allow publish messages to the service - // +kubebuilder:validation:Optional - CanPublish *bool `json:"canPublish,omitempty" tf:"can_publish,omitempty"` - - // . Defines if user can receive messages from the service. - // Allow receive messages from the service - // +kubebuilder:validation:Optional - CanReceive *bool `json:"canReceive,omitempty" tf:"can_receive,omitempty"` -} - -type SqsSnsCredentialsInitParameters struct { - - // List of permissions associated to this Credential. Only one of permissions may be set. - // The permission associated to this credential. - Permissions []PermissionsInitParameters `json:"permissions,omitempty" tf:"permissions,omitempty"` -} - -type SqsSnsCredentialsObservation struct { - - // The ID of the key. - // The key of the credential - AccessKey *string `json:"accessKey,omitempty" tf:"access_key,omitempty"` - - // List of permissions associated to this Credential. Only one of permissions may be set. - // The permission associated to this credential. - Permissions []PermissionsObservation `json:"permissions,omitempty" tf:"permissions,omitempty"` -} - -type SqsSnsCredentialsParameters struct { - - // List of permissions associated to this Credential. Only one of permissions may be set. - // The permission associated to this credential. - // +kubebuilder:validation:Optional - Permissions []PermissionsParameters `json:"permissions,omitempty" tf:"permissions,omitempty"` -} - -// CredentialSpec defines the desired state of Credential -type CredentialSpec struct { - v1.ResourceSpec `json:",inline"` - ForProvider CredentialParameters `json:"forProvider"` - // 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. - // InitProvider holds the same fields as ForProvider, with the exception - // of Identifier and other resource reference fields. The fields that are - // in InitProvider are merged into ForProvider when the resource is created. - // The same fields are also added to the terraform ignore_changes hook, to - // avoid updating them after creation. This is useful for fields that are - // required on creation, but we do not desire to update them after creation, - // for example because of an external controller is managing them, like an - // autoscaler. - InitProvider CredentialInitParameters `json:"initProvider,omitempty"` -} - -// CredentialStatus defines the observed state of Credential. -type CredentialStatus struct { - v1.ResourceStatus `json:",inline"` - AtProvider CredentialObservation `json:"atProvider,omitempty"` -} - -// +kubebuilder:object:root=true - -// Credential is the Schema for the Credentials API. -// +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,scaleway} -type Credential struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - Spec CredentialSpec `json:"spec"` - Status CredentialStatus `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true - -// CredentialList contains a list of Credentials -type CredentialList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Credential `json:"items"` -} - -// Repository type metadata. -var ( - Credential_Kind = "Credential" - Credential_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Credential_Kind}.String() - Credential_KindAPIVersion = Credential_Kind + "." + CRDGroupVersion.String() - Credential_GroupVersionKind = CRDGroupVersion.WithKind(Credential_Kind) -) - -func init() { - SchemeBuilder.Register(&Credential{}, &CredentialList{}) -} diff --git a/apis/mnq/v1alpha1/zz_generated.deepcopy.go b/apis/mnq/v1alpha1/zz_generated.deepcopy.go deleted file mode 100644 index 2d3f5f7..0000000 --- a/apis/mnq/v1alpha1/zz_generated.deepcopy.go +++ /dev/null @@ -1,674 +0,0 @@ -//go:build !ignore_autogenerated - -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by controller-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - "github.com/crossplane/crossplane-runtime/apis/common/v1" - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Credential) DeepCopyInto(out *Credential) { - *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 Credential. -func (in *Credential) DeepCopy() *Credential { - if in == nil { - return nil - } - out := new(Credential) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Credential) 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 *CredentialInitParameters) DeepCopyInto(out *CredentialInitParameters) { - *out = *in - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.NatsCredentials != nil { - in, out := &in.NatsCredentials, &out.NatsCredentials - *out = make([]NatsCredentialsInitParameters, len(*in)) - copy(*out, *in) - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.SqsSnsCredentials != nil { - in, out := &in.SqsSnsCredentials, &out.SqsSnsCredentials - *out = make([]SqsSnsCredentialsInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialInitParameters. -func (in *CredentialInitParameters) DeepCopy() *CredentialInitParameters { - if in == nil { - return nil - } - out := new(CredentialInitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CredentialList) DeepCopyInto(out *CredentialList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Credential, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialList. -func (in *CredentialList) DeepCopy() *CredentialList { - if in == nil { - return nil - } - out := new(CredentialList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *CredentialList) 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 *CredentialObservation) DeepCopyInto(out *CredentialObservation) { - *out = *in - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.NamespaceID != nil { - in, out := &in.NamespaceID, &out.NamespaceID - *out = new(string) - **out = **in - } - if in.NatsCredentials != nil { - in, out := &in.NatsCredentials, &out.NatsCredentials - *out = make([]NatsCredentialsParameters, len(*in)) - copy(*out, *in) - } - if in.Protocol != nil { - in, out := &in.Protocol, &out.Protocol - *out = new(string) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.SqsSnsCredentials != nil { - in, out := &in.SqsSnsCredentials, &out.SqsSnsCredentials - *out = make([]SqsSnsCredentialsObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialObservation. -func (in *CredentialObservation) DeepCopy() *CredentialObservation { - if in == nil { - return nil - } - out := new(CredentialObservation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CredentialParameters) DeepCopyInto(out *CredentialParameters) { - *out = *in - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.NamespaceID != nil { - in, out := &in.NamespaceID, &out.NamespaceID - *out = new(string) - **out = **in - } - if in.NamespaceIDRef != nil { - in, out := &in.NamespaceIDRef, &out.NamespaceIDRef - *out = new(v1.Reference) - (*in).DeepCopyInto(*out) - } - if in.NamespaceIDSelector != nil { - in, out := &in.NamespaceIDSelector, &out.NamespaceIDSelector - *out = new(v1.Selector) - (*in).DeepCopyInto(*out) - } - if in.NatsCredentials != nil { - in, out := &in.NatsCredentials, &out.NatsCredentials - *out = make([]NatsCredentialsParameters, len(*in)) - copy(*out, *in) - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.SqsSnsCredentials != nil { - in, out := &in.SqsSnsCredentials, &out.SqsSnsCredentials - *out = make([]SqsSnsCredentialsParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialParameters. -func (in *CredentialParameters) DeepCopy() *CredentialParameters { - if in == nil { - return nil - } - out := new(CredentialParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CredentialSpec) DeepCopyInto(out *CredentialSpec) { - *out = *in - in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) - in.ForProvider.DeepCopyInto(&out.ForProvider) - in.InitProvider.DeepCopyInto(&out.InitProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialSpec. -func (in *CredentialSpec) DeepCopy() *CredentialSpec { - if in == nil { - return nil - } - out := new(CredentialSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CredentialStatus) DeepCopyInto(out *CredentialStatus) { - *out = *in - in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) - in.AtProvider.DeepCopyInto(&out.AtProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialStatus. -func (in *CredentialStatus) DeepCopy() *CredentialStatus { - if in == nil { - return nil - } - out := new(CredentialStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MNQNamespace) DeepCopyInto(out *MNQNamespace) { - *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 MNQNamespace. -func (in *MNQNamespace) DeepCopy() *MNQNamespace { - if in == nil { - return nil - } - out := new(MNQNamespace) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *MNQNamespace) 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 *MNQNamespaceInitParameters) DeepCopyInto(out *MNQNamespaceInitParameters) { - *out = *in - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.ProjectID != nil { - in, out := &in.ProjectID, &out.ProjectID - *out = new(string) - **out = **in - } - if in.Protocol != nil { - in, out := &in.Protocol, &out.Protocol - *out = new(string) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MNQNamespaceInitParameters. -func (in *MNQNamespaceInitParameters) DeepCopy() *MNQNamespaceInitParameters { - if in == nil { - return nil - } - out := new(MNQNamespaceInitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MNQNamespaceList) DeepCopyInto(out *MNQNamespaceList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]MNQNamespace, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MNQNamespaceList. -func (in *MNQNamespaceList) DeepCopy() *MNQNamespaceList { - if in == nil { - return nil - } - out := new(MNQNamespaceList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *MNQNamespaceList) 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 *MNQNamespaceObservation) DeepCopyInto(out *MNQNamespaceObservation) { - *out = *in - if in.CreatedAt != nil { - in, out := &in.CreatedAt, &out.CreatedAt - *out = new(string) - **out = **in - } - if in.Endpoint != nil { - in, out := &in.Endpoint, &out.Endpoint - *out = new(string) - **out = **in - } - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.ProjectID != nil { - in, out := &in.ProjectID, &out.ProjectID - *out = new(string) - **out = **in - } - if in.Protocol != nil { - in, out := &in.Protocol, &out.Protocol - *out = new(string) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } - if in.UpdatedAt != nil { - in, out := &in.UpdatedAt, &out.UpdatedAt - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MNQNamespaceObservation. -func (in *MNQNamespaceObservation) DeepCopy() *MNQNamespaceObservation { - if in == nil { - return nil - } - out := new(MNQNamespaceObservation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MNQNamespaceParameters) DeepCopyInto(out *MNQNamespaceParameters) { - *out = *in - if in.Name != nil { - in, out := &in.Name, &out.Name - *out = new(string) - **out = **in - } - if in.ProjectID != nil { - in, out := &in.ProjectID, &out.ProjectID - *out = new(string) - **out = **in - } - if in.Protocol != nil { - in, out := &in.Protocol, &out.Protocol - *out = new(string) - **out = **in - } - if in.Region != nil { - in, out := &in.Region, &out.Region - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MNQNamespaceParameters. -func (in *MNQNamespaceParameters) DeepCopy() *MNQNamespaceParameters { - if in == nil { - return nil - } - out := new(MNQNamespaceParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MNQNamespaceSpec) DeepCopyInto(out *MNQNamespaceSpec) { - *out = *in - in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) - in.ForProvider.DeepCopyInto(&out.ForProvider) - in.InitProvider.DeepCopyInto(&out.InitProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MNQNamespaceSpec. -func (in *MNQNamespaceSpec) DeepCopy() *MNQNamespaceSpec { - if in == nil { - return nil - } - out := new(MNQNamespaceSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MNQNamespaceStatus) DeepCopyInto(out *MNQNamespaceStatus) { - *out = *in - in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) - in.AtProvider.DeepCopyInto(&out.AtProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MNQNamespaceStatus. -func (in *MNQNamespaceStatus) DeepCopy() *MNQNamespaceStatus { - if in == nil { - return nil - } - out := new(MNQNamespaceStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NatsCredentialsInitParameters) DeepCopyInto(out *NatsCredentialsInitParameters) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NatsCredentialsInitParameters. -func (in *NatsCredentialsInitParameters) DeepCopy() *NatsCredentialsInitParameters { - if in == nil { - return nil - } - out := new(NatsCredentialsInitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NatsCredentialsObservation) DeepCopyInto(out *NatsCredentialsObservation) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NatsCredentialsObservation. -func (in *NatsCredentialsObservation) DeepCopy() *NatsCredentialsObservation { - if in == nil { - return nil - } - out := new(NatsCredentialsObservation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *NatsCredentialsParameters) DeepCopyInto(out *NatsCredentialsParameters) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NatsCredentialsParameters. -func (in *NatsCredentialsParameters) DeepCopy() *NatsCredentialsParameters { - if in == nil { - return nil - } - out := new(NatsCredentialsParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PermissionsInitParameters) DeepCopyInto(out *PermissionsInitParameters) { - *out = *in - if in.CanManage != nil { - in, out := &in.CanManage, &out.CanManage - *out = new(bool) - **out = **in - } - if in.CanPublish != nil { - in, out := &in.CanPublish, &out.CanPublish - *out = new(bool) - **out = **in - } - if in.CanReceive != nil { - in, out := &in.CanReceive, &out.CanReceive - *out = new(bool) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PermissionsInitParameters. -func (in *PermissionsInitParameters) DeepCopy() *PermissionsInitParameters { - if in == nil { - return nil - } - out := new(PermissionsInitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PermissionsObservation) DeepCopyInto(out *PermissionsObservation) { - *out = *in - if in.CanManage != nil { - in, out := &in.CanManage, &out.CanManage - *out = new(bool) - **out = **in - } - if in.CanPublish != nil { - in, out := &in.CanPublish, &out.CanPublish - *out = new(bool) - **out = **in - } - if in.CanReceive != nil { - in, out := &in.CanReceive, &out.CanReceive - *out = new(bool) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PermissionsObservation. -func (in *PermissionsObservation) DeepCopy() *PermissionsObservation { - if in == nil { - return nil - } - out := new(PermissionsObservation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PermissionsParameters) DeepCopyInto(out *PermissionsParameters) { - *out = *in - if in.CanManage != nil { - in, out := &in.CanManage, &out.CanManage - *out = new(bool) - **out = **in - } - if in.CanPublish != nil { - in, out := &in.CanPublish, &out.CanPublish - *out = new(bool) - **out = **in - } - if in.CanReceive != nil { - in, out := &in.CanReceive, &out.CanReceive - *out = new(bool) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PermissionsParameters. -func (in *PermissionsParameters) DeepCopy() *PermissionsParameters { - if in == nil { - return nil - } - out := new(PermissionsParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SqsSnsCredentialsInitParameters) DeepCopyInto(out *SqsSnsCredentialsInitParameters) { - *out = *in - if in.Permissions != nil { - in, out := &in.Permissions, &out.Permissions - *out = make([]PermissionsInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SqsSnsCredentialsInitParameters. -func (in *SqsSnsCredentialsInitParameters) DeepCopy() *SqsSnsCredentialsInitParameters { - if in == nil { - return nil - } - out := new(SqsSnsCredentialsInitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SqsSnsCredentialsObservation) DeepCopyInto(out *SqsSnsCredentialsObservation) { - *out = *in - if in.AccessKey != nil { - in, out := &in.AccessKey, &out.AccessKey - *out = new(string) - **out = **in - } - if in.Permissions != nil { - in, out := &in.Permissions, &out.Permissions - *out = make([]PermissionsObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SqsSnsCredentialsObservation. -func (in *SqsSnsCredentialsObservation) DeepCopy() *SqsSnsCredentialsObservation { - if in == nil { - return nil - } - out := new(SqsSnsCredentialsObservation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SqsSnsCredentialsParameters) DeepCopyInto(out *SqsSnsCredentialsParameters) { - *out = *in - if in.Permissions != nil { - in, out := &in.Permissions, &out.Permissions - *out = make([]PermissionsParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SqsSnsCredentialsParameters. -func (in *SqsSnsCredentialsParameters) DeepCopy() *SqsSnsCredentialsParameters { - if in == nil { - return nil - } - out := new(SqsSnsCredentialsParameters) - in.DeepCopyInto(out) - return out -} diff --git a/apis/mnq/v1alpha1/zz_generated.managed.go b/apis/mnq/v1alpha1/zz_generated.managed.go deleted file mode 100644 index 24dca72..0000000 --- a/apis/mnq/v1alpha1/zz_generated.managed.go +++ /dev/null @@ -1,128 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ -// Code generated by angryjet. DO NOT EDIT. - -package v1alpha1 - -import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" - -// GetCondition of this Credential. -func (mg *Credential) GetCondition(ct xpv1.ConditionType) xpv1.Condition { - return mg.Status.GetCondition(ct) -} - -// GetDeletionPolicy of this Credential. -func (mg *Credential) GetDeletionPolicy() xpv1.DeletionPolicy { - return mg.Spec.DeletionPolicy -} - -// GetManagementPolicies of this Credential. -func (mg *Credential) GetManagementPolicies() xpv1.ManagementPolicies { - return mg.Spec.ManagementPolicies -} - -// GetProviderConfigReference of this Credential. -func (mg *Credential) GetProviderConfigReference() *xpv1.Reference { - return mg.Spec.ProviderConfigReference -} - -// GetPublishConnectionDetailsTo of this Credential. -func (mg *Credential) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { - return mg.Spec.PublishConnectionDetailsTo -} - -// GetWriteConnectionSecretToReference of this Credential. -func (mg *Credential) GetWriteConnectionSecretToReference() *xpv1.SecretReference { - return mg.Spec.WriteConnectionSecretToReference -} - -// SetConditions of this Credential. -func (mg *Credential) SetConditions(c ...xpv1.Condition) { - mg.Status.SetConditions(c...) -} - -// SetDeletionPolicy of this Credential. -func (mg *Credential) SetDeletionPolicy(r xpv1.DeletionPolicy) { - mg.Spec.DeletionPolicy = r -} - -// SetManagementPolicies of this Credential. -func (mg *Credential) SetManagementPolicies(r xpv1.ManagementPolicies) { - mg.Spec.ManagementPolicies = r -} - -// SetProviderConfigReference of this Credential. -func (mg *Credential) SetProviderConfigReference(r *xpv1.Reference) { - mg.Spec.ProviderConfigReference = r -} - -// SetPublishConnectionDetailsTo of this Credential. -func (mg *Credential) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { - mg.Spec.PublishConnectionDetailsTo = r -} - -// SetWriteConnectionSecretToReference of this Credential. -func (mg *Credential) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { - mg.Spec.WriteConnectionSecretToReference = r -} - -// GetCondition of this MNQNamespace. -func (mg *MNQNamespace) GetCondition(ct xpv1.ConditionType) xpv1.Condition { - return mg.Status.GetCondition(ct) -} - -// GetDeletionPolicy of this MNQNamespace. -func (mg *MNQNamespace) GetDeletionPolicy() xpv1.DeletionPolicy { - return mg.Spec.DeletionPolicy -} - -// GetManagementPolicies of this MNQNamespace. -func (mg *MNQNamespace) GetManagementPolicies() xpv1.ManagementPolicies { - return mg.Spec.ManagementPolicies -} - -// GetProviderConfigReference of this MNQNamespace. -func (mg *MNQNamespace) GetProviderConfigReference() *xpv1.Reference { - return mg.Spec.ProviderConfigReference -} - -// GetPublishConnectionDetailsTo of this MNQNamespace. -func (mg *MNQNamespace) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { - return mg.Spec.PublishConnectionDetailsTo -} - -// GetWriteConnectionSecretToReference of this MNQNamespace. -func (mg *MNQNamespace) GetWriteConnectionSecretToReference() *xpv1.SecretReference { - return mg.Spec.WriteConnectionSecretToReference -} - -// SetConditions of this MNQNamespace. -func (mg *MNQNamespace) SetConditions(c ...xpv1.Condition) { - mg.Status.SetConditions(c...) -} - -// SetDeletionPolicy of this MNQNamespace. -func (mg *MNQNamespace) SetDeletionPolicy(r xpv1.DeletionPolicy) { - mg.Spec.DeletionPolicy = r -} - -// SetManagementPolicies of this MNQNamespace. -func (mg *MNQNamespace) SetManagementPolicies(r xpv1.ManagementPolicies) { - mg.Spec.ManagementPolicies = r -} - -// SetProviderConfigReference of this MNQNamespace. -func (mg *MNQNamespace) SetProviderConfigReference(r *xpv1.Reference) { - mg.Spec.ProviderConfigReference = r -} - -// SetPublishConnectionDetailsTo of this MNQNamespace. -func (mg *MNQNamespace) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { - mg.Spec.PublishConnectionDetailsTo = r -} - -// SetWriteConnectionSecretToReference of this MNQNamespace. -func (mg *MNQNamespace) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { - mg.Spec.WriteConnectionSecretToReference = r -} diff --git a/apis/mnq/v1alpha1/zz_generated.managedlist.go b/apis/mnq/v1alpha1/zz_generated.managedlist.go deleted file mode 100644 index d5b66df..0000000 --- a/apis/mnq/v1alpha1/zz_generated.managedlist.go +++ /dev/null @@ -1,26 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ -// Code generated by angryjet. DO NOT EDIT. - -package v1alpha1 - -import resource "github.com/crossplane/crossplane-runtime/pkg/resource" - -// GetItems of this CredentialList. -func (l *CredentialList) 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 MNQNamespaceList. -func (l *MNQNamespaceList) GetItems() []resource.Managed { - items := make([]resource.Managed, len(l.Items)) - for i := range l.Items { - items[i] = &l.Items[i] - } - return items -} diff --git a/apis/mnq/v1alpha1/zz_generated.resolvers.go b/apis/mnq/v1alpha1/zz_generated.resolvers.go deleted file mode 100644 index ad0d10d..0000000 --- a/apis/mnq/v1alpha1/zz_generated.resolvers.go +++ /dev/null @@ -1,39 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ -// Code generated by angryjet. DO NOT EDIT. - -package v1alpha1 - -import ( - "context" - reference "github.com/crossplane/crossplane-runtime/pkg/reference" - errors "github.com/pkg/errors" - client "sigs.k8s.io/controller-runtime/pkg/client" -) - -// ResolveReferences of this Credential. -func (mg *Credential) ResolveReferences(ctx context.Context, c client.Reader) error { - r := reference.NewAPIResolver(c, mg) - - var rsp reference.ResolutionResponse - var err error - - rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ - CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.NamespaceID), - Extract: reference.ExternalName(), - Reference: mg.Spec.ForProvider.NamespaceIDRef, - Selector: mg.Spec.ForProvider.NamespaceIDSelector, - To: reference.To{ - List: &MNQNamespaceList{}, - Managed: &MNQNamespace{}, - }, - }) - if err != nil { - return errors.Wrap(err, "mg.Spec.ForProvider.NamespaceID") - } - mg.Spec.ForProvider.NamespaceID = reference.ToPtrValue(rsp.ResolvedValue) - mg.Spec.ForProvider.NamespaceIDRef = rsp.ResolvedReference - - return nil -} diff --git a/apis/mnq/v1alpha1/zz_generated_terraformed.go b/apis/mnq/v1alpha1/zz_generated_terraformed.go deleted file mode 100755 index 57c7a31..0000000 --- a/apis/mnq/v1alpha1/zz_generated_terraformed.go +++ /dev/null @@ -1,182 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package v1alpha1 - -import ( - "github.com/pkg/errors" - - "github.com/upbound/upjet/pkg/resource" - "github.com/upbound/upjet/pkg/resource/json" -) - -// GetTerraformResourceType returns Terraform resource type for this Credential -func (mg *Credential) GetTerraformResourceType() string { - return "scaleway_mnq_credential" -} - -// GetConnectionDetailsMapping for this Credential -func (tr *Credential) GetConnectionDetailsMapping() map[string]string { - return map[string]string{"nats_credentials[*].content": "status.atProvider.natsCredentials[*].content", "sqs_sns_credentials[*].secret_key": "status.atProvider.sqsSnsCredentials[*].secretKey"} -} - -// GetObservation of this Credential -func (tr *Credential) 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 Credential -func (tr *Credential) 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 Credential -func (tr *Credential) GetID() string { - if tr.Status.AtProvider.ID == nil { - return "" - } - return *tr.Status.AtProvider.ID -} - -// GetParameters of this Credential -func (tr *Credential) 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 Credential -func (tr *Credential) 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) -} - -// GetInitParameters of this Credential -func (tr *Credential) GetInitParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.InitProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// LateInitialize this Credential using its observed tfState. -// returns True if there are any spec changes for the resource. -func (tr *Credential) LateInitialize(attrs []byte) (bool, error) { - params := &CredentialParameters{} - 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 *Credential) GetTerraformSchemaVersion() int { - return 0 -} - -// GetTerraformResourceType returns Terraform resource type for this MNQNamespace -func (mg *MNQNamespace) GetTerraformResourceType() string { - return "scaleway_mnq_namespace" -} - -// GetConnectionDetailsMapping for this MNQNamespace -func (tr *MNQNamespace) GetConnectionDetailsMapping() map[string]string { - return nil -} - -// GetObservation of this MNQNamespace -func (tr *MNQNamespace) 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 MNQNamespace -func (tr *MNQNamespace) 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 MNQNamespace -func (tr *MNQNamespace) GetID() string { - if tr.Status.AtProvider.ID == nil { - return "" - } - return *tr.Status.AtProvider.ID -} - -// GetParameters of this MNQNamespace -func (tr *MNQNamespace) 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 MNQNamespace -func (tr *MNQNamespace) 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) -} - -// GetInitParameters of this MNQNamespace -func (tr *MNQNamespace) GetInitParameters() (map[string]any, error) { - p, err := json.TFParser.Marshal(tr.Spec.InitProvider) - if err != nil { - return nil, err - } - base := map[string]any{} - return base, json.TFParser.Unmarshal(p, &base) -} - -// LateInitialize this MNQNamespace using its observed tfState. -// returns True if there are any spec changes for the resource. -func (tr *MNQNamespace) LateInitialize(attrs []byte) (bool, error) { - params := &MNQNamespaceParameters{} - 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 *MNQNamespace) GetTerraformSchemaVersion() int { - return 0 -} diff --git a/apis/mnq/v1alpha1/zz_groupversion_info.go b/apis/mnq/v1alpha1/zz_groupversion_info.go deleted file mode 100755 index 3905dac..0000000 --- a/apis/mnq/v1alpha1/zz_groupversion_info.go +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -// +kubebuilder:object:generate=true -// +groupName=mnq.scaleway.upbound.io -// +versionName=v1alpha1 -package v1alpha1 - -import ( - "k8s.io/apimachinery/pkg/runtime/schema" - "sigs.k8s.io/controller-runtime/pkg/scheme" -) - -// Package type metadata. -const ( - CRDGroup = "mnq.scaleway.upbound.io" - CRDVersion = "v1alpha1" -) - -var ( - // CRDGroupVersion is the API Group Version used to register the objects - CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} - - // SchemeBuilder is used to add go types to the GroupVersionKind scheme - SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} - - // AddToScheme adds the types in this group-version to the given scheme. - AddToScheme = SchemeBuilder.AddToScheme -) diff --git a/apis/mnq/v1alpha1/zz_mnqnamespace_types.go b/apis/mnq/v1alpha1/zz_mnqnamespace_types.go deleted file mode 100755 index ea1428f..0000000 --- a/apis/mnq/v1alpha1/zz_mnqnamespace_types.go +++ /dev/null @@ -1,161 +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 MNQNamespaceInitParameters struct { - - // The unique name of the namespace. - // The name of the mnq namespace - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // (Defaults to provider project_id) The ID of the project the - // namespace is associated with. - // The project_id you want to attach the resource to - ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` - - // The protocol to apply on your namespace. Please check our - // supported protocols. - // The Namespace protocol - Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` - - // (Defaults to provider region). The region - // in which the namespace should be created. - // The region you want to attach the resource to - Region *string `json:"region,omitempty" tf:"region,omitempty"` -} - -type MNQNamespaceObservation struct { - - // The date and time the Namespace was created. - // The date and time of the creation of the mnq Namespace - CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` - - // The endpoint of the service matching the Namespace protocol. - // The endpoint of the service matching the Namespace protocol - Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` - - // The ID of the namespace - ID *string `json:"id,omitempty" tf:"id,omitempty"` - - // The unique name of the namespace. - // The name of the mnq namespace - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // (Defaults to provider project_id) The ID of the project the - // namespace is associated with. - // The project_id you want to attach the resource to - ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` - - // The protocol to apply on your namespace. Please check our - // supported protocols. - // The Namespace protocol - Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` - - // (Defaults to provider region). The region - // in which the namespace should be created. - // The region you want to attach the resource to - Region *string `json:"region,omitempty" tf:"region,omitempty"` - - // The date and time the Namespace was updated. - // The date and time of the last update of the mnq Namespace - UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` -} - -type MNQNamespaceParameters struct { - - // The unique name of the namespace. - // The name of the mnq namespace - // +kubebuilder:validation:Optional - Name *string `json:"name,omitempty" tf:"name,omitempty"` - - // (Defaults to provider project_id) The ID of the project the - // namespace is associated with. - // The project_id you want to attach the resource to - // +kubebuilder:validation:Optional - ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` - - // The protocol to apply on your namespace. Please check our - // supported protocols. - // The Namespace protocol - // +kubebuilder:validation:Optional - Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` - - // (Defaults to provider region). The region - // in which the namespace should be created. - // The region you want to attach the resource to - // +kubebuilder:validation:Optional - Region *string `json:"region,omitempty" tf:"region,omitempty"` -} - -// MNQNamespaceSpec defines the desired state of MNQNamespace -type MNQNamespaceSpec struct { - v1.ResourceSpec `json:",inline"` - ForProvider MNQNamespaceParameters `json:"forProvider"` - // 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. - // InitProvider holds the same fields as ForProvider, with the exception - // of Identifier and other resource reference fields. The fields that are - // in InitProvider are merged into ForProvider when the resource is created. - // The same fields are also added to the terraform ignore_changes hook, to - // avoid updating them after creation. This is useful for fields that are - // required on creation, but we do not desire to update them after creation, - // for example because of an external controller is managing them, like an - // autoscaler. - InitProvider MNQNamespaceInitParameters `json:"initProvider,omitempty"` -} - -// MNQNamespaceStatus defines the observed state of MNQNamespace. -type MNQNamespaceStatus struct { - v1.ResourceStatus `json:",inline"` - AtProvider MNQNamespaceObservation `json:"atProvider,omitempty"` -} - -// +kubebuilder:object:root=true - -// MNQNamespace is the Schema for the MNQNamespaces API. -// +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,scaleway} -type MNQNamespace struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.protocol) || (has(self.initProvider) && has(self.initProvider.protocol))",message="spec.forProvider.protocol is a required parameter" - Spec MNQNamespaceSpec `json:"spec"` - Status MNQNamespaceStatus `json:"status,omitempty"` -} - -// +kubebuilder:object:root=true - -// MNQNamespaceList contains a list of MNQNamespaces -type MNQNamespaceList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []MNQNamespace `json:"items"` -} - -// Repository type metadata. -var ( - MNQNamespace_Kind = "MNQNamespace" - MNQNamespace_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: MNQNamespace_Kind}.String() - MNQNamespace_KindAPIVersion = MNQNamespace_Kind + "." + CRDGroupVersion.String() - MNQNamespace_GroupVersionKind = CRDGroupVersion.WithKind(MNQNamespace_Kind) -) - -func init() { - SchemeBuilder.Register(&MNQNamespace{}, &MNQNamespaceList{}) -} diff --git a/config/mnq/config.go b/config/mnq/config.go deleted file mode 100644 index 4bae038..0000000 --- a/config/mnq/config.go +++ /dev/null @@ -1,28 +0,0 @@ -package mnq - -import "github.com/upbound/upjet/pkg/config" - -const shortGroup = "mnq" - -// Configure configures individual resources by adding custom ResourceConfigurators. -func Configure(p *config.Provider) { - p.AddResourceConfigurator("scaleway_mnq_credential", func(r *config.Resource) { - // Identifier for this resource is assigned by the provider. In other - // words it is not simply the name of the resource. - r.ExternalName = config.IdentifierFromProvider - r.ShortGroup = shortGroup - r.Kind = "Credential" - - r.References["namespace_id"] = config.Reference{ - Type: "MNQNamespace", - } - }) - - p.AddResourceConfigurator("scaleway_mnq_namespace", func(r *config.Resource) { - // Identifier for this resource is assigned by the provider. In other - // words it is not simply the name of the resource. - r.ExternalName = config.IdentifierFromProvider - r.ShortGroup = shortGroup - r.Kind = "MNQNamespace" - }) -} From 235f32ff37117925b5ffb65fff717b9ddd7b1187 Mon Sep 17 00:00:00 2001 From: Yacine FODIL Date: Thu, 30 Nov 2023 15:20:32 +0100 Subject: [PATCH 2/4] add vpc resource --- apis/vpc/v1alpha1/zz_gatewaynetwork_types.go | 62 ++- apis/vpc/v1alpha1/zz_generated.deepcopy.go | 363 ++++++++++++++++- apis/vpc/v1alpha1/zz_generated.managed.go | 60 +++ apis/vpc/v1alpha1/zz_generated.managedlist.go | 9 + apis/vpc/v1alpha1/zz_generated.resolvers.go | 26 ++ apis/vpc/v1alpha1/zz_generated_terraformed.go | 84 ++++ apis/vpc/v1alpha1/zz_privatenetwork_types.go | 13 +- apis/vpc/v1alpha1/zz_publicgateway_types.go | 4 + apis/vpc/v1alpha1/zz_vpc_types.go | 155 ++++++++ config/external_name.go | 3 +- config/vpc/config.go | 12 + examples-generated/vpc/vpc.yaml | 14 + examples/vpc/private_network.yaml | 4 +- examples/vpc/public_gateway.yaml | 8 +- examples/vpc/vpc.yaml | 9 + internal/controller/vpc/vpc/zz_controller.go | 62 +++ ...c.scaleway.upbound.io_gatewaynetworks.yaml | 88 ++++- ...c.scaleway.upbound.io_privatenetworks.yaml | 77 +++- ...pc.scaleway.upbound.io_publicgateways.yaml | 4 + .../crds/vpc.scaleway.upbound.io_vpcs.yaml | 368 ++++++++++++++++++ 20 files changed, 1386 insertions(+), 39 deletions(-) create mode 100755 apis/vpc/v1alpha1/zz_vpc_types.go create mode 100644 examples-generated/vpc/vpc.yaml create mode 100644 examples/vpc/vpc.yaml create mode 100755 internal/controller/vpc/vpc/zz_controller.go create mode 100644 package/crds/vpc.scaleway.upbound.io_vpcs.yaml diff --git a/apis/vpc/v1alpha1/zz_gatewaynetwork_types.go b/apis/vpc/v1alpha1/zz_gatewaynetwork_types.go index 6d1285a..5a7a8b0 100755 --- a/apis/vpc/v1alpha1/zz_gatewaynetwork_types.go +++ b/apis/vpc/v1alpha1/zz_gatewaynetwork_types.go @@ -27,7 +27,11 @@ type GatewayNetworkInitParameters struct { // Enable masquerade on this network EnableMasquerade *bool `json:"enableMasquerade,omitempty" tf:"enable_masquerade,omitempty"` - // Enable DHCP config on this network. Only one of dhcp_id and static_address should be specified. + // Auto-configure the Gateway Network using Scaleway's IPAM (IP address management service). Only one of dhcp_id, static_address and ipam_config should be specified. + // Auto-configure the Gateway Network using Scaleway's IPAM (IP address management service) + IpamConfig []IpamConfigInitParameters `json:"ipamConfig,omitempty" tf:"ipam_config,omitempty"` + + // Enable DHCP config on this network. Only one of dhcp_id, static_address and ipam_config should be specified. // The static IP address in CIDR on this network StaticAddress *string `json:"staticAddress,omitempty" tf:"static_address,omitempty"` @@ -46,7 +50,7 @@ type GatewayNetworkObservation struct { // The date and time of the creation of the gateway network CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` - // The ID of the public gateway DHCP config. Only one of dhcp_id and static_address should be specified. + // The ID of the public gateway DHCP config. Only one of dhcp_id, static_address and ipam_config should be specified. // The ID of the public gateway DHCP config DHCPID *string `json:"dhcpId,omitempty" tf:"dhcp_id,omitempty"` @@ -65,6 +69,10 @@ type GatewayNetworkObservation struct { // The ID of the gateway network. ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Auto-configure the Gateway Network using Scaleway's IPAM (IP address management service). Only one of dhcp_id, static_address and ipam_config should be specified. + // Auto-configure the Gateway Network using Scaleway's IPAM (IP address management service) + IpamConfig []IpamConfigObservation `json:"ipamConfig,omitempty" tf:"ipam_config,omitempty"` + // The mac address of the creation of the gateway network. // The mac address on this network MacAddress *string `json:"macAddress,omitempty" tf:"mac_address,omitempty"` @@ -73,10 +81,14 @@ type GatewayNetworkObservation struct { // The ID of the private network where connect to PrivateNetworkID *string `json:"privateNetworkId,omitempty" tf:"private_network_id,omitempty"` - // Enable DHCP config on this network. Only one of dhcp_id and static_address should be specified. + // Enable DHCP config on this network. Only one of dhcp_id, static_address and ipam_config should be specified. // The static IP address in CIDR on this network StaticAddress *string `json:"staticAddress,omitempty" tf:"static_address,omitempty"` + // The status of the Public Gateway's connection to the Private Network. + // The status of the Public Gateway's connection to the Private Network + Status *string `json:"status,omitempty" tf:"status,omitempty"` + // The date and time of the last update of the gateway network. // The date and time of the last update of the gateway network UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` @@ -93,7 +105,7 @@ type GatewayNetworkParameters struct { // +kubebuilder:validation:Optional CleanupDHCP *bool `json:"cleanupDhcp,omitempty" tf:"cleanup_dhcp,omitempty"` - // The ID of the public gateway DHCP config. Only one of dhcp_id and static_address should be specified. + // The ID of the public gateway DHCP config. Only one of dhcp_id, static_address and ipam_config should be specified. // The ID of the public gateway DHCP config // +crossplane:generate:reference:type=PublicGatewayDHCP // +kubebuilder:validation:Optional @@ -131,6 +143,11 @@ type GatewayNetworkParameters struct { // +kubebuilder:validation:Optional GatewayIDSelector *v1.Selector `json:"gatewayIdSelector,omitempty" tf:"-"` + // Auto-configure the Gateway Network using Scaleway's IPAM (IP address management service). Only one of dhcp_id, static_address and ipam_config should be specified. + // Auto-configure the Gateway Network using Scaleway's IPAM (IP address management service) + // +kubebuilder:validation:Optional + IpamConfig []IpamConfigParameters `json:"ipamConfig,omitempty" tf:"ipam_config,omitempty"` + // The ID of the private network. // The ID of the private network where connect to // +crossplane:generate:reference:type=PrivateNetwork @@ -145,7 +162,7 @@ type GatewayNetworkParameters struct { // +kubebuilder:validation:Optional PrivateNetworkIDSelector *v1.Selector `json:"privateNetworkIdSelector,omitempty" tf:"-"` - // Enable DHCP config on this network. Only one of dhcp_id and static_address should be specified. + // Enable DHCP config on this network. Only one of dhcp_id, static_address and ipam_config should be specified. // The static IP address in CIDR on this network // +kubebuilder:validation:Optional StaticAddress *string `json:"staticAddress,omitempty" tf:"static_address,omitempty"` @@ -156,6 +173,41 @@ type GatewayNetworkParameters struct { Zone *string `json:"zone,omitempty" tf:"zone,omitempty"` } +type IpamConfigInitParameters struct { + + // Use this IPAM-booked IP ID as the Gateway's IP in this Private Network. + // Use this IPAM-booked IP ID as the Gateway's IP in this Private Network + IpamIPID *string `json:"ipamIpId,omitempty" tf:"ipam_ip_id,omitempty"` + + // Defines whether the default route is enabled on that Gateway Network. + // Defines whether the default route is enabled on that Gateway Network + PushDefaultRoute *bool `json:"pushDefaultRoute,omitempty" tf:"push_default_route,omitempty"` +} + +type IpamConfigObservation struct { + + // Use this IPAM-booked IP ID as the Gateway's IP in this Private Network. + // Use this IPAM-booked IP ID as the Gateway's IP in this Private Network + IpamIPID *string `json:"ipamIpId,omitempty" tf:"ipam_ip_id,omitempty"` + + // Defines whether the default route is enabled on that Gateway Network. + // Defines whether the default route is enabled on that Gateway Network + PushDefaultRoute *bool `json:"pushDefaultRoute,omitempty" tf:"push_default_route,omitempty"` +} + +type IpamConfigParameters struct { + + // Use this IPAM-booked IP ID as the Gateway's IP in this Private Network. + // Use this IPAM-booked IP ID as the Gateway's IP in this Private Network + // +kubebuilder:validation:Optional + IpamIPID *string `json:"ipamIpId,omitempty" tf:"ipam_ip_id,omitempty"` + + // Defines whether the default route is enabled on that Gateway Network. + // Defines whether the default route is enabled on that Gateway Network + // +kubebuilder:validation:Optional + PushDefaultRoute *bool `json:"pushDefaultRoute,omitempty" tf:"push_default_route,omitempty"` +} + // GatewayNetworkSpec defines the desired state of GatewayNetwork type GatewayNetworkSpec struct { v1.ResourceSpec `json:",inline"` diff --git a/apis/vpc/v1alpha1/zz_generated.deepcopy.go b/apis/vpc/v1alpha1/zz_generated.deepcopy.go index cb55b63..6251c80 100644 --- a/apis/vpc/v1alpha1/zz_generated.deepcopy.go +++ b/apis/vpc/v1alpha1/zz_generated.deepcopy.go @@ -58,6 +58,13 @@ func (in *GatewayNetworkInitParameters) DeepCopyInto(out *GatewayNetworkInitPara *out = new(bool) **out = **in } + if in.IpamConfig != nil { + in, out := &in.IpamConfig, &out.IpamConfig + *out = make([]IpamConfigInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.StaticAddress != nil { in, out := &in.StaticAddress, &out.StaticAddress *out = new(string) @@ -150,6 +157,13 @@ func (in *GatewayNetworkObservation) DeepCopyInto(out *GatewayNetworkObservation *out = new(string) **out = **in } + if in.IpamConfig != nil { + in, out := &in.IpamConfig, &out.IpamConfig + *out = make([]IpamConfigObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.MacAddress != nil { in, out := &in.MacAddress, &out.MacAddress *out = new(string) @@ -165,6 +179,11 @@ func (in *GatewayNetworkObservation) DeepCopyInto(out *GatewayNetworkObservation *out = new(string) **out = **in } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } if in.UpdatedAt != nil { in, out := &in.UpdatedAt, &out.UpdatedAt *out = new(string) @@ -235,6 +254,13 @@ func (in *GatewayNetworkParameters) DeepCopyInto(out *GatewayNetworkParameters) *out = new(v1.Selector) (*in).DeepCopyInto(*out) } + if in.IpamConfig != nil { + in, out := &in.IpamConfig, &out.IpamConfig + *out = make([]IpamConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.PrivateNetworkID != nil { in, out := &in.PrivateNetworkID, &out.PrivateNetworkID *out = new(string) @@ -487,6 +513,81 @@ func (in *IPv6SubnetsParameters) DeepCopy() *IPv6SubnetsParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpamConfigInitParameters) DeepCopyInto(out *IpamConfigInitParameters) { + *out = *in + if in.IpamIPID != nil { + in, out := &in.IpamIPID, &out.IpamIPID + *out = new(string) + **out = **in + } + if in.PushDefaultRoute != nil { + in, out := &in.PushDefaultRoute, &out.PushDefaultRoute + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpamConfigInitParameters. +func (in *IpamConfigInitParameters) DeepCopy() *IpamConfigInitParameters { + if in == nil { + return nil + } + out := new(IpamConfigInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpamConfigObservation) DeepCopyInto(out *IpamConfigObservation) { + *out = *in + if in.IpamIPID != nil { + in, out := &in.IpamIPID, &out.IpamIPID + *out = new(string) + **out = **in + } + if in.PushDefaultRoute != nil { + in, out := &in.PushDefaultRoute, &out.PushDefaultRoute + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpamConfigObservation. +func (in *IpamConfigObservation) DeepCopy() *IpamConfigObservation { + if in == nil { + return nil + } + out := new(IpamConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpamConfigParameters) DeepCopyInto(out *IpamConfigParameters) { + *out = *in + if in.IpamIPID != nil { + in, out := &in.IpamIPID, &out.IpamIPID + *out = new(string) + **out = **in + } + if in.PushDefaultRoute != nil { + in, out := &in.PushDefaultRoute, &out.PushDefaultRoute + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpamConfigParameters. +func (in *IpamConfigParameters) DeepCopy() *IpamConfigParameters { + if in == nil { + return nil + } + out := new(IpamConfigParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *PrivateNetwork) DeepCopyInto(out *PrivateNetwork) { *out = *in @@ -562,11 +663,6 @@ func (in *PrivateNetworkInitParameters) DeepCopyInto(out *PrivateNetworkInitPara } } } - if in.VPCID != nil { - in, out := &in.VPCID, &out.VPCID - *out = new(string) - **out = **in - } if in.Zone != nil { in, out := &in.Zone, &out.Zone *out = new(string) @@ -759,6 +855,16 @@ func (in *PrivateNetworkParameters) DeepCopyInto(out *PrivateNetworkParameters) *out = new(string) **out = **in } + if in.VPCIDRef != nil { + in, out := &in.VPCIDRef, &out.VPCIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.VPCIDSelector != nil { + in, out := &in.VPCIDSelector, &out.VPCIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.Zone != nil { in, out := &in.Zone, &out.Zone *out = new(string) @@ -1652,6 +1758,11 @@ func (in *PublicGatewayObservation) DeepCopyInto(out *PublicGatewayObservation) *out = new(string) **out = **in } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } if in.Tags != nil { in, out := &in.Tags, &out.Tags *out = make([]*string, len(*in)) @@ -2076,3 +2187,245 @@ func (in *PublicGatewayStatus) DeepCopy() *PublicGatewayStatus { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VPC) DeepCopyInto(out *VPC) { + *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 VPC. +func (in *VPC) DeepCopy() *VPC { + if in == nil { + return nil + } + out := new(VPC) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VPC) 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 *VPCInitParameters) DeepCopyInto(out *VPCInitParameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VPCInitParameters. +func (in *VPCInitParameters) DeepCopy() *VPCInitParameters { + if in == nil { + return nil + } + out := new(VPCInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VPCList) DeepCopyInto(out *VPCList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]VPC, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VPCList. +func (in *VPCList) DeepCopy() *VPCList { + if in == nil { + return nil + } + out := new(VPCList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VPCList) 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 *VPCObservation) DeepCopyInto(out *VPCObservation) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IsDefault != nil { + in, out := &in.IsDefault, &out.IsDefault + *out = new(bool) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.OrganizationID != nil { + in, out := &in.OrganizationID, &out.OrganizationID + *out = new(string) + **out = **in + } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.UpdatedAt != nil { + in, out := &in.UpdatedAt, &out.UpdatedAt + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VPCObservation. +func (in *VPCObservation) DeepCopy() *VPCObservation { + if in == nil { + return nil + } + out := new(VPCObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VPCParameters) DeepCopyInto(out *VPCParameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VPCParameters. +func (in *VPCParameters) DeepCopy() *VPCParameters { + if in == nil { + return nil + } + out := new(VPCParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VPCSpec) DeepCopyInto(out *VPCSpec) { + *out = *in + in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) + in.ForProvider.DeepCopyInto(&out.ForProvider) + in.InitProvider.DeepCopyInto(&out.InitProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VPCSpec. +func (in *VPCSpec) DeepCopy() *VPCSpec { + if in == nil { + return nil + } + out := new(VPCSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VPCStatus) DeepCopyInto(out *VPCStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VPCStatus. +func (in *VPCStatus) DeepCopy() *VPCStatus { + if in == nil { + return nil + } + out := new(VPCStatus) + in.DeepCopyInto(out) + return out +} diff --git a/apis/vpc/v1alpha1/zz_generated.managed.go b/apis/vpc/v1alpha1/zz_generated.managed.go index 7c7f239..ff81f3d 100644 --- a/apis/vpc/v1alpha1/zz_generated.managed.go +++ b/apis/vpc/v1alpha1/zz_generated.managed.go @@ -366,3 +366,63 @@ func (mg *PublicGatewayPATRule) SetPublishConnectionDetailsTo(r *xpv1.PublishCon func (mg *PublicGatewayPATRule) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { mg.Spec.WriteConnectionSecretToReference = r } + +// GetCondition of this VPC. +func (mg *VPC) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this VPC. +func (mg *VPC) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this VPC. +func (mg *VPC) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this VPC. +func (mg *VPC) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this VPC. +func (mg *VPC) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this VPC. +func (mg *VPC) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this VPC. +func (mg *VPC) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this VPC. +func (mg *VPC) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this VPC. +func (mg *VPC) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this VPC. +func (mg *VPC) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this VPC. +func (mg *VPC) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this VPC. +func (mg *VPC) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/vpc/v1alpha1/zz_generated.managedlist.go b/apis/vpc/v1alpha1/zz_generated.managedlist.go index 2bb085b..a03d146 100644 --- a/apis/vpc/v1alpha1/zz_generated.managedlist.go +++ b/apis/vpc/v1alpha1/zz_generated.managedlist.go @@ -60,3 +60,12 @@ func (l *PublicGatewayPATRuleList) GetItems() []resource.Managed { } return items } + +// GetItems of this VPCList. +func (l *VPCList) GetItems() []resource.Managed { + items := make([]resource.Managed, len(l.Items)) + for i := range l.Items { + items[i] = &l.Items[i] + } + return items +} diff --git a/apis/vpc/v1alpha1/zz_generated.resolvers.go b/apis/vpc/v1alpha1/zz_generated.resolvers.go index dc7e1a6..83e08ac 100644 --- a/apis/vpc/v1alpha1/zz_generated.resolvers.go +++ b/apis/vpc/v1alpha1/zz_generated.resolvers.go @@ -70,6 +70,32 @@ func (mg *GatewayNetwork) ResolveReferences(ctx context.Context, c client.Reader return nil } +// ResolveReferences of this PrivateNetwork. +func (mg *PrivateNetwork) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.VPCID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.VPCIDRef, + Selector: mg.Spec.ForProvider.VPCIDSelector, + To: reference.To{ + List: &VPCList{}, + Managed: &VPC{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.VPCID") + } + mg.Spec.ForProvider.VPCID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.VPCIDRef = rsp.ResolvedReference + + return nil +} + // ResolveReferences of this PublicGateway. func (mg *PublicGateway) ResolveReferences(ctx context.Context, c client.Reader) error { r := reference.NewAPIResolver(c, mg) diff --git a/apis/vpc/v1alpha1/zz_generated_terraformed.go b/apis/vpc/v1alpha1/zz_generated_terraformed.go index 286639f..18d571e 100755 --- a/apis/vpc/v1alpha1/zz_generated_terraformed.go +++ b/apis/vpc/v1alpha1/zz_generated_terraformed.go @@ -13,6 +13,90 @@ import ( "github.com/upbound/upjet/pkg/resource/json" ) +// GetTerraformResourceType returns Terraform resource type for this VPC +func (mg *VPC) GetTerraformResourceType() string { + return "scaleway_vpc" +} + +// GetConnectionDetailsMapping for this VPC +func (tr *VPC) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this VPC +func (tr *VPC) 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 VPC +func (tr *VPC) 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 VPC +func (tr *VPC) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this VPC +func (tr *VPC) 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 VPC +func (tr *VPC) 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) +} + +// GetInitParameters of this VPC +func (tr *VPC) GetInitParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.InitProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// LateInitialize this VPC using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *VPC) LateInitialize(attrs []byte) (bool, error) { + params := &VPCParameters{} + 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 *VPC) GetTerraformSchemaVersion() int { + return 0 +} + // GetTerraformResourceType returns Terraform resource type for this GatewayNetwork func (mg *GatewayNetwork) GetTerraformResourceType() string { return "scaleway_vpc_gateway_network" diff --git a/apis/vpc/v1alpha1/zz_privatenetwork_types.go b/apis/vpc/v1alpha1/zz_privatenetwork_types.go index 5d0115c..9b30955 100755 --- a/apis/vpc/v1alpha1/zz_privatenetwork_types.go +++ b/apis/vpc/v1alpha1/zz_privatenetwork_types.go @@ -135,10 +135,6 @@ type PrivateNetworkInitParameters struct { // The tags associated with private network Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` - // The VPC in which to create the private network. - // The VPC in which to create the private network - VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` - // (Deprecated) please use region instead - (Defaults to provider zone) The zone in which the private network should be created. // The zone you want to attach the resource to Zone *string `json:"zone,omitempty" tf:"zone,omitempty"` @@ -237,9 +233,18 @@ type PrivateNetworkParameters struct { // The VPC in which to create the private network. // The VPC in which to create the private network + // +crossplane:generate:reference:type=VPC // +kubebuilder:validation:Optional VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + // Reference to a VPC to populate vpcId. + // +kubebuilder:validation:Optional + VPCIDRef *v1.Reference `json:"vpcIdRef,omitempty" tf:"-"` + + // Selector for a VPC to populate vpcId. + // +kubebuilder:validation:Optional + VPCIDSelector *v1.Selector `json:"vpcIdSelector,omitempty" tf:"-"` + // (Deprecated) please use region instead - (Defaults to provider zone) The zone in which the private network should be created. // The zone you want to attach the resource to // +kubebuilder:validation:Optional diff --git a/apis/vpc/v1alpha1/zz_publicgateway_types.go b/apis/vpc/v1alpha1/zz_publicgateway_types.go index 164e5b1..2b4f761 100755 --- a/apis/vpc/v1alpha1/zz_publicgateway_types.go +++ b/apis/vpc/v1alpha1/zz_publicgateway_types.go @@ -89,6 +89,10 @@ type PublicGatewayObservation struct { // The project_id you want to attach the resource to ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // The status of the public gateway. + // The status of the public gateway + Status *string `json:"status,omitempty" tf:"status,omitempty"` + // The tags associated with the public gateway. // The tags associated with public gateway Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` diff --git a/apis/vpc/v1alpha1/zz_vpc_types.go b/apis/vpc/v1alpha1/zz_vpc_types.go new file mode 100755 index 0000000..b5a32d1 --- /dev/null +++ b/apis/vpc/v1alpha1/zz_vpc_types.go @@ -0,0 +1,155 @@ +/* +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 VPCInitParameters struct { + + // The name of the VPC. If not provided it will be randomly generated. + // The name of the VPC + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // (Defaults to provider project_id) The ID of the project the VPC is associated with. + // The project_id you want to attach the resource to + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // (Defaults to provider region) The region of the VPC. + // The region you want to attach the resource to + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The tags associated with the VPC. + // The tags associated with the VPC + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +type VPCObservation struct { + + // Date and time of VPC's creation (RFC 3339 format). + // The date and time of the creation of the private network + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // The ID of the VPC. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Defines whether the VPC is the default one for its Project. + // Defines whether the VPC is the default one for its Project + IsDefault *bool `json:"isDefault,omitempty" tf:"is_default,omitempty"` + + // The name of the VPC. If not provided it will be randomly generated. + // The name of the VPC + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The organization ID the VPC is associated with. + // The organization_id you want to attach the resource to + OrganizationID *string `json:"organizationId,omitempty" tf:"organization_id,omitempty"` + + // (Defaults to provider project_id) The ID of the project the VPC is associated with. + // The project_id you want to attach the resource to + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // (Defaults to provider region) The region of the VPC. + // The region you want to attach the resource to + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The tags associated with the VPC. + // The tags associated with the VPC + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Date and time of VPC's last update (RFC 3339 format). + // The date and time of the last update of the private network + UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` +} + +type VPCParameters struct { + + // The name of the VPC. If not provided it will be randomly generated. + // The name of the VPC + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // (Defaults to provider project_id) The ID of the project the VPC is associated with. + // The project_id you want to attach the resource to + // +kubebuilder:validation:Optional + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // (Defaults to provider region) The region of the VPC. + // The region you want to attach the resource to + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The tags associated with the VPC. + // The tags associated with the VPC + // +kubebuilder:validation:Optional + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +// VPCSpec defines the desired state of VPC +type VPCSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider VPCParameters `json:"forProvider"` + // 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. + // InitProvider holds the same fields as ForProvider, with the exception + // of Identifier and other resource reference fields. The fields that are + // in InitProvider are merged into ForProvider when the resource is created. + // The same fields are also added to the terraform ignore_changes hook, to + // avoid updating them after creation. This is useful for fields that are + // required on creation, but we do not desire to update them after creation, + // for example because of an external controller is managing them, like an + // autoscaler. + InitProvider VPCInitParameters `json:"initProvider,omitempty"` +} + +// VPCStatus defines the observed state of VPC. +type VPCStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider VPCObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// VPC is the Schema for the VPCs API. +// +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,scaleway} +type VPC struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec VPCSpec `json:"spec"` + Status VPCStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// VPCList contains a list of VPCs +type VPCList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []VPC `json:"items"` +} + +// Repository type metadata. +var ( + VPC_Kind = "VPC" + VPC_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: VPC_Kind}.String() + VPC_KindAPIVersion = VPC_Kind + "." + CRDGroupVersion.String() + VPC_GroupVersionKind = CRDGroupVersion.WithKind(VPC_Kind) +) + +func init() { + SchemeBuilder.Register(&VPC{}, &VPCList{}) +} diff --git a/config/external_name.go b/config/external_name.go index 2a050d2..36719e7 100644 --- a/config/external_name.go +++ b/config/external_name.go @@ -56,8 +56,6 @@ var ExternalNameConfigs = map[string]config.ExternalName{ "scaleway_lb_certificate": config.NameAsIdentifier, "scaleway_lb_frontend": config.NameAsIdentifier, "scaleway_lb_route": config.NameAsIdentifier, - "scaleway_mnq_credential": config.NameAsIdentifier, - "scaleway_mnq_namespace": config.NameAsIdentifier, "scaleway_object": config.NameAsIdentifier, "scaleway_object_bucket": config.NameAsIdentifier, "scaleway_object_bucket_acl": config.NameAsIdentifier, @@ -74,6 +72,7 @@ var ExternalNameConfigs = map[string]config.ExternalName{ "scaleway_redis_cluster": config.NameAsIdentifier, "scaleway_registry_namespace": config.NameAsIdentifier, "scaleway_tem_domain": config.NameAsIdentifier, + "scaleway_vpc": config.NameAsIdentifier, "scaleway_vpc_gateway_network": config.NameAsIdentifier, "scaleway_vpc_private_network": config.NameAsIdentifier, "scaleway_vpc_public_gateway": config.NameAsIdentifier, diff --git a/config/vpc/config.go b/config/vpc/config.go index c57a6bc..4eeb0e0 100644 --- a/config/vpc/config.go +++ b/config/vpc/config.go @@ -7,12 +7,24 @@ const shortGroup = "vpc" // Configure configures individual resources by adding custom ResourceConfigurators. func Configure(p *config.Provider) { + p.AddResourceConfigurator("scaleway_vpc", func(r *config.Resource) { + // Identifier for this resource is assigned by the provider. In other + // words it is not simply the name of the resource. + r.ExternalName = config.IdentifierFromProvider + r.ShortGroup = shortGroup + r.Kind = "VPC" + }) + p.AddResourceConfigurator("scaleway_vpc_private_network", func(r *config.Resource) { // Identifier for this resource is assigned by the provider. In other // words it is not simply the name of the resource. r.ExternalName = config.IdentifierFromProvider r.ShortGroup = shortGroup r.Kind = "PrivateNetwork" + + r.References["vpc_id"] = config.Reference{ + Type: "VPC", + } }) p.AddResourceConfigurator("scaleway_vpc_public_gateway", func(r *config.Resource) { diff --git a/examples-generated/vpc/vpc.yaml b/examples-generated/vpc/vpc.yaml new file mode 100644 index 0000000..fa1fdda --- /dev/null +++ b/examples-generated/vpc/vpc.yaml @@ -0,0 +1,14 @@ +apiVersion: vpc.scaleway.upbound.io/v1alpha1 +kind: VPC +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/vpc + labels: + testing.upbound.io/example-name: vpc01 + name: vpc01 +spec: + forProvider: + name: my-vpc + tags: + - demo + - terraform diff --git a/examples/vpc/private_network.yaml b/examples/vpc/private_network.yaml index ad1dbd9..041239b 100644 --- a/examples/vpc/private_network.yaml +++ b/examples/vpc/private_network.yaml @@ -5,5 +5,5 @@ metadata: spec: forProvider: name: crossplane-private-network -providerConfigRef: - name: default + providerConfigRef: + name: default diff --git a/examples/vpc/public_gateway.yaml b/examples/vpc/public_gateway.yaml index 1ac21ed..a5f604b 100644 --- a/examples/vpc/public_gateway.yaml +++ b/examples/vpc/public_gateway.yaml @@ -8,8 +8,8 @@ spec: type: VPC-GW-S ipIdRef: name: vpc-public-gateway-ip -providerConfigRef: - name: default + providerConfigRef: + name: default --- apiVersion: vpc.scaleway.upbound.io/v1alpha1 kind: PublicGatewayIP @@ -17,5 +17,5 @@ metadata: name: vpc-public-gateway-ip spec: forProvider: {} -providerConfigRef: - name: default + providerConfigRef: + name: default diff --git a/examples/vpc/vpc.yaml b/examples/vpc/vpc.yaml new file mode 100644 index 0000000..7d30f71 --- /dev/null +++ b/examples/vpc/vpc.yaml @@ -0,0 +1,9 @@ +apiVersion: vpc.scaleway.upbound.io/v1alpha1 +kind: VPC +metadata: + name: vpc +spec: + forProvider: + name: crossplane-vpc + providerConfigRef: + name: default diff --git a/internal/controller/vpc/vpc/zz_controller.go b/internal/controller/vpc/vpc/zz_controller.go new file mode 100755 index 0000000..64de4c5 --- /dev/null +++ b/internal/controller/vpc/vpc/zz_controller.go @@ -0,0 +1,62 @@ +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package vpc + +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/controller/handler" + "github.com/upbound/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/scaleway/provider-scaleway/apis/vpc/v1alpha1" + features "github.com/scaleway/provider-scaleway/internal/features" +) + +// Setup adds a controller that reconciles VPC managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.VPC_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, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) + } + eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.VPC_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.VPC_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["scaleway_vpc"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), + tjcontroller.WithCallbackProvider(ac), + )), + 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), + } + if o.PollJitter != 0 { + opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) + } + if o.Features.Enabled(features.EnableAlphaManagementPolicies) { + opts = append(opts, managed.WithManagementPolicies()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.VPC_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.VPC{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/package/crds/vpc.scaleway.upbound.io_gatewaynetworks.yaml b/package/crds/vpc.scaleway.upbound.io_gatewaynetworks.yaml index 8a3e0a6..b8259c9 100644 --- a/package/crds/vpc.scaleway.upbound.io_gatewaynetworks.yaml +++ b/package/crds/vpc.scaleway.upbound.io_gatewaynetworks.yaml @@ -73,8 +73,8 @@ spec: type: boolean dhcpId: description: The ID of the public gateway DHCP config. Only one - of dhcp_id and static_address should be specified. The ID of - the public gateway DHCP config + of dhcp_id, static_address and ipam_config should be specified. + The ID of the public gateway DHCP config type: string dhcpIdRef: description: Reference to a PublicGatewayDHCP to populate dhcpId. @@ -234,6 +234,25 @@ spec: type: string type: object type: object + ipamConfig: + description: Auto-configure the Gateway Network using Scaleway's + IPAM (IP address management service). Only one of dhcp_id, static_address + and ipam_config should be specified. Auto-configure the Gateway + Network using Scaleway's IPAM (IP address management service) + items: + properties: + ipamIpId: + description: Use this IPAM-booked IP ID as the Gateway's + IP in this Private Network. Use this IPAM-booked IP ID + as the Gateway's IP in this Private Network + type: string + pushDefaultRoute: + description: Defines whether the default route is enabled + on that Gateway Network. Defines whether the default route + is enabled on that Gateway Network + type: boolean + type: object + type: array privateNetworkId: description: The ID of the private network. The ID of the private network where connect to @@ -312,9 +331,9 @@ spec: type: object type: object staticAddress: - description: Enable DHCP config on this network. Only one of dhcp_id - and static_address should be specified. The static IP address - in CIDR on this network + description: Enable DHCP config on this network. Only one of dhcp_id, + static_address and ipam_config should be specified. The static + IP address in CIDR on this network type: string zone: description: (Defaults to provider zone) The zone in which the @@ -348,10 +367,29 @@ spec: description: (Defaults to true) Enable masquerade on this network Enable masquerade on this network type: boolean + ipamConfig: + description: Auto-configure the Gateway Network using Scaleway's + IPAM (IP address management service). Only one of dhcp_id, static_address + and ipam_config should be specified. Auto-configure the Gateway + Network using Scaleway's IPAM (IP address management service) + items: + properties: + ipamIpId: + description: Use this IPAM-booked IP ID as the Gateway's + IP in this Private Network. Use this IPAM-booked IP ID + as the Gateway's IP in this Private Network + type: string + pushDefaultRoute: + description: Defines whether the default route is enabled + on that Gateway Network. Defines whether the default route + is enabled on that Gateway Network + type: boolean + type: object + type: array staticAddress: - description: Enable DHCP config on this network. Only one of dhcp_id - and static_address should be specified. The static IP address - in CIDR on this network + description: Enable DHCP config on this network. Only one of dhcp_id, + static_address and ipam_config should be specified. The static + IP address in CIDR on this network type: string zone: description: (Defaults to provider zone) The zone in which the @@ -536,8 +574,8 @@ spec: type: string dhcpId: description: The ID of the public gateway DHCP config. Only one - of dhcp_id and static_address should be specified. The ID of - the public gateway DHCP config + of dhcp_id, static_address and ipam_config should be specified. + The ID of the public gateway DHCP config type: string enableDhcp: description: (Defaults to true) Enable DHCP config on this network. @@ -554,6 +592,25 @@ spec: id: description: The ID of the gateway network. type: string + ipamConfig: + description: Auto-configure the Gateway Network using Scaleway's + IPAM (IP address management service). Only one of dhcp_id, static_address + and ipam_config should be specified. Auto-configure the Gateway + Network using Scaleway's IPAM (IP address management service) + items: + properties: + ipamIpId: + description: Use this IPAM-booked IP ID as the Gateway's + IP in this Private Network. Use this IPAM-booked IP ID + as the Gateway's IP in this Private Network + type: string + pushDefaultRoute: + description: Defines whether the default route is enabled + on that Gateway Network. Defines whether the default route + is enabled on that Gateway Network + type: boolean + type: object + type: array macAddress: description: The mac address of the creation of the gateway network. The mac address on this network @@ -563,9 +620,14 @@ spec: network where connect to type: string staticAddress: - description: Enable DHCP config on this network. Only one of dhcp_id - and static_address should be specified. The static IP address - in CIDR on this network + description: Enable DHCP config on this network. Only one of dhcp_id, + static_address and ipam_config should be specified. The static + IP address in CIDR on this network + type: string + status: + description: The status of the Public Gateway's connection to + the Private Network. The status of the Public Gateway's connection + to the Private Network type: string updatedAt: description: The date and time of the last update of the gateway diff --git a/package/crds/vpc.scaleway.upbound.io_privatenetworks.yaml b/package/crds/vpc.scaleway.upbound.io_privatenetworks.yaml index d7ab25b..2fb2029 100644 --- a/package/crds/vpc.scaleway.upbound.io_privatenetworks.yaml +++ b/package/crds/vpc.scaleway.upbound.io_privatenetworks.yaml @@ -114,6 +114,79 @@ spec: description: The VPC in which to create the private network. The VPC in which to create the private network type: string + vpcIdRef: + description: Reference to a VPC to populate vpcId. + 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 + vpcIdSelector: + description: Selector for a VPC to populate vpcId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + 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 + type: object zone: description: (Deprecated) please use region instead - (Defaults to provider zone) The zone in which the private network should @@ -177,10 +250,6 @@ spec: items: type: string type: array - vpcId: - description: The VPC in which to create the private network. The - VPC in which to create the private network - type: string zone: description: (Deprecated) please use region instead - (Defaults to provider zone) The zone in which the private network should diff --git a/package/crds/vpc.scaleway.upbound.io_publicgateways.yaml b/package/crds/vpc.scaleway.upbound.io_publicgateways.yaml index e3d9f0c..1553bf4 100644 --- a/package/crds/vpc.scaleway.upbound.io_publicgateways.yaml +++ b/package/crds/vpc.scaleway.upbound.io_publicgateways.yaml @@ -446,6 +446,10 @@ spec: the public gateway is associated with. The project_id you want to attach the resource to type: string + status: + description: The status of the public gateway. The status of the + public gateway + type: string tags: description: The tags associated with the public gateway. The tags associated with public gateway diff --git a/package/crds/vpc.scaleway.upbound.io_vpcs.yaml b/package/crds/vpc.scaleway.upbound.io_vpcs.yaml new file mode 100644 index 0000000..553b372 --- /dev/null +++ b/package/crds/vpc.scaleway.upbound.io_vpcs.yaml @@ -0,0 +1,368 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: vpcs.vpc.scaleway.upbound.io +spec: + group: vpc.scaleway.upbound.io + names: + categories: + - crossplane + - managed + - scaleway + kind: VPC + listKind: VPCList + plural: vpcs + singular: vpc + 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: VPC is the Schema for the VPCs API. + 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: VPCSpec defines the desired state of VPC + 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 ManagementPolicies 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: + name: + description: The name of the VPC. If not provided it will be randomly + generated. The name of the VPC + type: string + projectId: + description: (Defaults to provider project_id) The ID of the project + the VPC is associated with. The project_id you want to attach + the resource to + type: string + region: + description: (Defaults to provider region) The region of the VPC. + The region you want to attach the resource to + type: string + tags: + description: The tags associated with the VPC. The tags associated + with the VPC + items: + type: string + type: array + type: object + initProvider: + 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. InitProvider + holds the same fields as ForProvider, with the exception of Identifier + and other resource reference fields. The fields that are in InitProvider + are merged into ForProvider when the resource is created. The same + fields are also added to the terraform ignore_changes hook, to avoid + updating them after creation. This is useful for fields that are + required on creation, but we do not desire to update them after + creation, for example because of an external controller is managing + them, like an autoscaler. + properties: + name: + description: The name of the VPC. If not provided it will be randomly + generated. The name of the VPC + type: string + projectId: + description: (Defaults to provider project_id) The ID of the project + the VPC is associated with. The project_id you want to attach + the resource to + type: string + region: + description: (Defaults to provider region) The region of the VPC. + The region you want to attach the resource to + type: string + tags: + description: The tags associated with the VPC. The tags associated + with the VPC + items: + type: string + type: array + type: object + managementPolicies: + default: + - '*' + 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. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. 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. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + 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 + 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 + status: + description: VPCStatus defines the observed state of VPC. + properties: + atProvider: + properties: + createdAt: + description: Date and time of VPC's creation (RFC 3339 format). + The date and time of the creation of the private network + type: string + id: + description: The ID of the VPC. + type: string + isDefault: + description: Defines whether the VPC is the default one for its + Project. Defines whether the VPC is the default one for its + Project + type: boolean + name: + description: The name of the VPC. If not provided it will be randomly + generated. The name of the VPC + type: string + organizationId: + description: The organization ID the VPC is associated with. The + organization_id you want to attach the resource to + type: string + projectId: + description: (Defaults to provider project_id) The ID of the project + the VPC is associated with. The project_id you want to attach + the resource to + type: string + region: + description: (Defaults to provider region) The region of the VPC. + The region you want to attach the resource to + type: string + tags: + description: The tags associated with the VPC. The tags associated + with the VPC + items: + type: string + type: array + updatedAt: + description: Date and time of VPC's last update (RFC 3339 format). + The date and time of the last update of the private network + 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: {} From f69b751298caeda0717e1858808659bae5cc687b Mon Sep 17 00:00:00 2001 From: Yacine FODIL Date: Thu, 30 Nov 2023 15:23:49 +0100 Subject: [PATCH 3/4] generate --- apis/cockpit/v1alpha1/zz_cockpit_types.go | 15 +- .../cockpit/v1alpha1/zz_generated.deepcopy.go | 35 + apis/cockpit/v1alpha1/zz_token_types.go | 80 +- apis/domain/v1alpha1/zz_record_types.go | 6 +- apis/iam/v1alpha1/zz_application_types.go | 19 +- apis/iam/v1alpha1/zz_generated.deepcopy.go | 99 ++ apis/iam/v1alpha1/zz_group_types.go | 13 + apis/iam/v1alpha1/zz_policy_types.go | 19 +- .../v1alpha1/zz_generated.deepcopy.go | 15 - apis/instance/v1alpha1/zz_volume_types.go | 25 +- apis/k8s/v1alpha1/zz_cluster_types.go | 13 +- apis/k8s/v1alpha1/zz_generated.deepcopy.go | 30 +- apis/k8s/v1alpha1/zz_generated.resolvers.go | 27 + apis/k8s/v1alpha1/zz_pool_types.go | 22 +- apis/lb/v1alpha1/zz_generated.deepcopy.go | 15 + apis/lb/v1alpha1/zz_lb_types.go | 19 +- apis/object/v1alpha1/zz_bucket_types.go | 4 + apis/object/v1alpha1/zz_generated.deepcopy.go | 5 + apis/object/v1alpha1/zz_policy_types.go | 6 +- apis/rdb/v1alpha1/zz_generated.deepcopy.go | 30 + apis/rdb/v1alpha1/zz_instance_types.go | 13 + apis/rdb/v1alpha1/zz_readreplica_types.go | 13 + apis/tem/v1alpha1/zz_domain_types.go | 38 + apis/tem/v1alpha1/zz_generated.deepcopy.go | 82 ++ apis/zz_register.go | 2 - config/provider-metadata.yaml | 905 ++++++++++++++---- config/provider.go | 2 - config/schema.json | 2 +- examples-generated/container/container.yaml | 2 +- examples-generated/k8s/cluster.yaml | 16 + examples-generated/mnq/credential.yaml | 29 - examples-generated/mnq/mnqnamespace.yaml | 13 - examples-generated/object/policy.yaml | 39 +- examples-generated/vpc/gatewaynetwork.yaml | 52 +- .../mnq/credential/zz_controller.go | 62 -- .../mnq/mnqnamespace/zz_controller.go | 62 -- internal/controller/zz_setup.go | 6 +- .../cockpit.scaleway.upbound.io_cockpits.yaml | 15 +- .../cockpit.scaleway.upbound.io_tokens.yaml | 72 +- .../domain.scaleway.upbound.io_records.yaml | 12 +- .../iam.scaleway.upbound.io_applications.yaml | 24 +- .../crds/iam.scaleway.upbound.io_groups.yaml | 18 + .../iam.scaleway.upbound.io_policies.yaml | 27 +- .../instance.scaleway.upbound.io_volumes.yaml | 39 +- .../k8s.scaleway.upbound.io_clusters.yaml | 79 +- .../crds/k8s.scaleway.upbound.io_pools.yaml | 33 +- package/crds/lb.scaleway.upbound.io_lbs.yaml | 21 +- .../mnq.scaleway.upbound.io_credentials.yaml | 508 ---------- ...mnq.scaleway.upbound.io_mnqnamespaces.yaml | 366 ------- .../object.scaleway.upbound.io_buckets.yaml | 3 + .../object.scaleway.upbound.io_policies.yaml | 9 +- .../rdb.scaleway.upbound.io_instances.yaml | 12 + .../rdb.scaleway.upbound.io_readreplicas.yaml | 18 + .../crds/tem.scaleway.upbound.io_domains.yaml | 48 +- 54 files changed, 1691 insertions(+), 1448 deletions(-) delete mode 100644 examples-generated/mnq/credential.yaml delete mode 100644 examples-generated/mnq/mnqnamespace.yaml delete mode 100755 internal/controller/mnq/credential/zz_controller.go delete mode 100755 internal/controller/mnq/mnqnamespace/zz_controller.go delete mode 100644 package/crds/mnq.scaleway.upbound.io_credentials.yaml delete mode 100644 package/crds/mnq.scaleway.upbound.io_mnqnamespaces.yaml diff --git a/apis/cockpit/v1alpha1/zz_cockpit_types.go b/apis/cockpit/v1alpha1/zz_cockpit_types.go index bdd3e99..0adde2b 100755 --- a/apis/cockpit/v1alpha1/zz_cockpit_types.go +++ b/apis/cockpit/v1alpha1/zz_cockpit_types.go @@ -22,7 +22,7 @@ type CockpitInitParameters struct { type CockpitObservation struct { - // Endpoints + // Endpoints. // Endpoints Endpoints []EndpointsObservation `json:"endpoints,omitempty" tf:"endpoints,omitempty"` @@ -32,7 +32,7 @@ type CockpitObservation struct { // Name or ID of the plan Plan *string `json:"plan,omitempty" tf:"plan,omitempty"` - // The ID of the current plan + // The ID of the current plan. // The plan ID of the cockpit PlanID *string `json:"planId,omitempty" tf:"plan_id,omitempty"` @@ -68,17 +68,20 @@ type EndpointsInitParameters struct { type EndpointsObservation struct { - // The alertmanager URL + // The alertmanager URL. AlertmanagerURL *string `json:"alertmanagerUrl,omitempty" tf:"alertmanager_url,omitempty"` - // The grafana URL + // The grafana URL. GrafanaURL *string `json:"grafanaUrl,omitempty" tf:"grafana_url,omitempty"` - // The logs URL + // The logs URL. LogsURL *string `json:"logsUrl,omitempty" tf:"logs_url,omitempty"` - // The metrics URL + // The metrics URL. MetricsURL *string `json:"metricsUrl,omitempty" tf:"metrics_url,omitempty"` + + // The traces URL. + TracesURL *string `json:"tracesUrl,omitempty" tf:"traces_url,omitempty"` } type EndpointsParameters struct { diff --git a/apis/cockpit/v1alpha1/zz_generated.deepcopy.go b/apis/cockpit/v1alpha1/zz_generated.deepcopy.go index 7480a55..23e325d 100644 --- a/apis/cockpit/v1alpha1/zz_generated.deepcopy.go +++ b/apis/cockpit/v1alpha1/zz_generated.deepcopy.go @@ -242,6 +242,11 @@ func (in *EndpointsObservation) DeepCopyInto(out *EndpointsObservation) { *out = new(string) **out = **in } + if in.TracesURL != nil { + in, out := &in.TracesURL, &out.TracesURL + *out = new(string) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointsObservation. @@ -476,6 +481,11 @@ func (in *ScopesInitParameters) DeepCopyInto(out *ScopesInitParameters) { *out = new(bool) **out = **in } + if in.QueryTraces != nil { + in, out := &in.QueryTraces, &out.QueryTraces + *out = new(bool) + **out = **in + } if in.SetupAlerts != nil { in, out := &in.SetupAlerts, &out.SetupAlerts *out = new(bool) @@ -501,6 +511,11 @@ func (in *ScopesInitParameters) DeepCopyInto(out *ScopesInitParameters) { *out = new(bool) **out = **in } + if in.WriteTraces != nil { + in, out := &in.WriteTraces, &out.WriteTraces + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopesInitParameters. @@ -526,6 +541,11 @@ func (in *ScopesObservation) DeepCopyInto(out *ScopesObservation) { *out = new(bool) **out = **in } + if in.QueryTraces != nil { + in, out := &in.QueryTraces, &out.QueryTraces + *out = new(bool) + **out = **in + } if in.SetupAlerts != nil { in, out := &in.SetupAlerts, &out.SetupAlerts *out = new(bool) @@ -551,6 +571,11 @@ func (in *ScopesObservation) DeepCopyInto(out *ScopesObservation) { *out = new(bool) **out = **in } + if in.WriteTraces != nil { + in, out := &in.WriteTraces, &out.WriteTraces + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopesObservation. @@ -576,6 +601,11 @@ func (in *ScopesParameters) DeepCopyInto(out *ScopesParameters) { *out = new(bool) **out = **in } + if in.QueryTraces != nil { + in, out := &in.QueryTraces, &out.QueryTraces + *out = new(bool) + **out = **in + } if in.SetupAlerts != nil { in, out := &in.SetupAlerts, &out.SetupAlerts *out = new(bool) @@ -601,6 +631,11 @@ func (in *ScopesParameters) DeepCopyInto(out *ScopesParameters) { *out = new(bool) **out = **in } + if in.WriteTraces != nil { + in, out := &in.WriteTraces, &out.WriteTraces + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopesParameters. diff --git a/apis/cockpit/v1alpha1/zz_token_types.go b/apis/cockpit/v1alpha1/zz_token_types.go index 4fa31a3..c14e55a 100755 --- a/apis/cockpit/v1alpha1/zz_token_types.go +++ b/apis/cockpit/v1alpha1/zz_token_types.go @@ -15,111 +15,137 @@ import ( type ScopesInitParameters struct { - // (Defaults to false) Query logs + // (Defaults to false) Query logs. // Query logs QueryLogs *bool `json:"queryLogs,omitempty" tf:"query_logs,omitempty"` - // (Defaults to false) Query metrics + // (Defaults to false) Query metrics. // Query metrics QueryMetrics *bool `json:"queryMetrics,omitempty" tf:"query_metrics,omitempty"` - // (Defaults to false) Setup alerts + // (Defaults to false) Query traces. + // Query traces + QueryTraces *bool `json:"queryTraces,omitempty" tf:"query_traces,omitempty"` + + // (Defaults to false) Setup alerts. // Setup alerts SetupAlerts *bool `json:"setupAlerts,omitempty" tf:"setup_alerts,omitempty"` - // (Defaults to false) Setup logs rules + // (Defaults to false) Setup logs rules. // Setup logs rules SetupLogsRules *bool `json:"setupLogsRules,omitempty" tf:"setup_logs_rules,omitempty"` - // (Defaults to false) Setup metrics rules + // (Defaults to false) Setup metrics rules. // Setup metrics rules SetupMetricsRules *bool `json:"setupMetricsRules,omitempty" tf:"setup_metrics_rules,omitempty"` - // (Defaults to true) Write logs + // (Defaults to true) Write logs. // Write logs WriteLogs *bool `json:"writeLogs,omitempty" tf:"write_logs,omitempty"` - // (Defaults to true) Write metrics + // (Defaults to true) Write metrics. // Write metrics WriteMetrics *bool `json:"writeMetrics,omitempty" tf:"write_metrics,omitempty"` + + // (Defaults to false) Write traces. + // Write traces + WriteTraces *bool `json:"writeTraces,omitempty" tf:"write_traces,omitempty"` } type ScopesObservation struct { - // (Defaults to false) Query logs + // (Defaults to false) Query logs. // Query logs QueryLogs *bool `json:"queryLogs,omitempty" tf:"query_logs,omitempty"` - // (Defaults to false) Query metrics + // (Defaults to false) Query metrics. // Query metrics QueryMetrics *bool `json:"queryMetrics,omitempty" tf:"query_metrics,omitempty"` - // (Defaults to false) Setup alerts + // (Defaults to false) Query traces. + // Query traces + QueryTraces *bool `json:"queryTraces,omitempty" tf:"query_traces,omitempty"` + + // (Defaults to false) Setup alerts. // Setup alerts SetupAlerts *bool `json:"setupAlerts,omitempty" tf:"setup_alerts,omitempty"` - // (Defaults to false) Setup logs rules + // (Defaults to false) Setup logs rules. // Setup logs rules SetupLogsRules *bool `json:"setupLogsRules,omitempty" tf:"setup_logs_rules,omitempty"` - // (Defaults to false) Setup metrics rules + // (Defaults to false) Setup metrics rules. // Setup metrics rules SetupMetricsRules *bool `json:"setupMetricsRules,omitempty" tf:"setup_metrics_rules,omitempty"` - // (Defaults to true) Write logs + // (Defaults to true) Write logs. // Write logs WriteLogs *bool `json:"writeLogs,omitempty" tf:"write_logs,omitempty"` - // (Defaults to true) Write metrics + // (Defaults to true) Write metrics. // Write metrics WriteMetrics *bool `json:"writeMetrics,omitempty" tf:"write_metrics,omitempty"` + + // (Defaults to false) Write traces. + // Write traces + WriteTraces *bool `json:"writeTraces,omitempty" tf:"write_traces,omitempty"` } type ScopesParameters struct { - // (Defaults to false) Query logs + // (Defaults to false) Query logs. // Query logs // +kubebuilder:validation:Optional QueryLogs *bool `json:"queryLogs,omitempty" tf:"query_logs,omitempty"` - // (Defaults to false) Query metrics + // (Defaults to false) Query metrics. // Query metrics // +kubebuilder:validation:Optional QueryMetrics *bool `json:"queryMetrics,omitempty" tf:"query_metrics,omitempty"` - // (Defaults to false) Setup alerts + // (Defaults to false) Query traces. + // Query traces + // +kubebuilder:validation:Optional + QueryTraces *bool `json:"queryTraces,omitempty" tf:"query_traces,omitempty"` + + // (Defaults to false) Setup alerts. // Setup alerts // +kubebuilder:validation:Optional SetupAlerts *bool `json:"setupAlerts,omitempty" tf:"setup_alerts,omitempty"` - // (Defaults to false) Setup logs rules + // (Defaults to false) Setup logs rules. // Setup logs rules // +kubebuilder:validation:Optional SetupLogsRules *bool `json:"setupLogsRules,omitempty" tf:"setup_logs_rules,omitempty"` - // (Defaults to false) Setup metrics rules + // (Defaults to false) Setup metrics rules. // Setup metrics rules // +kubebuilder:validation:Optional SetupMetricsRules *bool `json:"setupMetricsRules,omitempty" tf:"setup_metrics_rules,omitempty"` - // (Defaults to true) Write logs + // (Defaults to true) Write logs. // Write logs // +kubebuilder:validation:Optional WriteLogs *bool `json:"writeLogs,omitempty" tf:"write_logs,omitempty"` - // (Defaults to true) Write metrics + // (Defaults to true) Write metrics. // Write metrics // +kubebuilder:validation:Optional WriteMetrics *bool `json:"writeMetrics,omitempty" tf:"write_metrics,omitempty"` + + // (Defaults to false) Write traces. + // Write traces + // +kubebuilder:validation:Optional + WriteTraces *bool `json:"writeTraces,omitempty" tf:"write_traces,omitempty"` } type TokenInitParameters struct { - // The name of the token + // The name of the token. // The name of the token Name *string `json:"name,omitempty" tf:"name,omitempty"` - // Allowed scopes + // Allowed scopes. // Endpoints Scopes []ScopesInitParameters `json:"scopes,omitempty" tf:"scopes,omitempty"` } @@ -127,7 +153,7 @@ type TokenInitParameters struct { type TokenObservation struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` - // The name of the token + // The name of the token. // The name of the token Name *string `json:"name,omitempty" tf:"name,omitempty"` @@ -135,14 +161,14 @@ type TokenObservation struct { // The project_id you want to attach the resource to ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` - // Allowed scopes + // Allowed scopes. // Endpoints Scopes []ScopesObservation `json:"scopes,omitempty" tf:"scopes,omitempty"` } type TokenParameters struct { - // The name of the token + // The name of the token. // The name of the token // +kubebuilder:validation:Optional Name *string `json:"name,omitempty" tf:"name,omitempty"` @@ -161,7 +187,7 @@ type TokenParameters struct { // +kubebuilder:validation:Optional ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` - // Allowed scopes + // Allowed scopes. // Endpoints // +kubebuilder:validation:Optional Scopes []ScopesParameters `json:"scopes,omitempty" tf:"scopes,omitempty"` diff --git a/apis/domain/v1alpha1/zz_record_types.go b/apis/domain/v1alpha1/zz_record_types.go index b1f574e..36f8e30 100755 --- a/apis/domain/v1alpha1/zz_record_types.go +++ b/apis/domain/v1alpha1/zz_record_types.go @@ -45,7 +45,7 @@ type HTTPServiceInitParameters struct { // Text to search MustContain *string `json:"mustContain,omitempty" tf:"must_contain,omitempty"` - // Strategy to return an IP from the IPs list. Can be random or hashed + // Strategy to return an IP from the IPs list. Can be random, hashed or all // Strategy to return an IP from the IPs list Strategy *string `json:"strategy,omitempty" tf:"strategy,omitempty"` @@ -68,7 +68,7 @@ type HTTPServiceObservation struct { // Text to search MustContain *string `json:"mustContain,omitempty" tf:"must_contain,omitempty"` - // Strategy to return an IP from the IPs list. Can be random or hashed + // Strategy to return an IP from the IPs list. Can be random, hashed or all // Strategy to return an IP from the IPs list Strategy *string `json:"strategy,omitempty" tf:"strategy,omitempty"` @@ -93,7 +93,7 @@ type HTTPServiceParameters struct { // +kubebuilder:validation:Optional MustContain *string `json:"mustContain" tf:"must_contain,omitempty"` - // Strategy to return an IP from the IPs list. Can be random or hashed + // Strategy to return an IP from the IPs list. Can be random, hashed or all // Strategy to return an IP from the IPs list // +kubebuilder:validation:Optional Strategy *string `json:"strategy" tf:"strategy,omitempty"` diff --git a/apis/iam/v1alpha1/zz_application_types.go b/apis/iam/v1alpha1/zz_application_types.go index 600c04f..12dbf1c 100755 --- a/apis/iam/v1alpha1/zz_application_types.go +++ b/apis/iam/v1alpha1/zz_application_types.go @@ -19,13 +19,17 @@ type ApplicationInitParameters struct { // The description of the iam application Description *string `json:"description,omitempty" tf:"description,omitempty"` - // .The name of the iam application. + // The name of the iam application. // The name of the iam application Name *string `json:"name,omitempty" tf:"name,omitempty"` // (Defaults to provider organization_id) The ID of the organization the application is associated with. // ID of organization the resource is associated to. OrganizationID *string `json:"organizationId,omitempty" tf:"organization_id,omitempty"` + + // The tags associated with the application. + // The tags associated with the application + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` } type ApplicationObservation struct { @@ -45,7 +49,7 @@ type ApplicationObservation struct { // The ID of the application. ID *string `json:"id,omitempty" tf:"id,omitempty"` - // .The name of the iam application. + // The name of the iam application. // The name of the iam application Name *string `json:"name,omitempty" tf:"name,omitempty"` @@ -53,6 +57,10 @@ type ApplicationObservation struct { // ID of organization the resource is associated to. OrganizationID *string `json:"organizationId,omitempty" tf:"organization_id,omitempty"` + // The tags associated with the application. + // The tags associated with the application + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // The date and time of the last update of the application. // The date and time of the last update of the application UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` @@ -65,7 +73,7 @@ type ApplicationParameters struct { // +kubebuilder:validation:Optional Description *string `json:"description,omitempty" tf:"description,omitempty"` - // .The name of the iam application. + // The name of the iam application. // The name of the iam application // +kubebuilder:validation:Optional Name *string `json:"name,omitempty" tf:"name,omitempty"` @@ -74,6 +82,11 @@ type ApplicationParameters struct { // ID of organization the resource is associated to. // +kubebuilder:validation:Optional OrganizationID *string `json:"organizationId,omitempty" tf:"organization_id,omitempty"` + + // The tags associated with the application. + // The tags associated with the application + // +kubebuilder:validation:Optional + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` } // ApplicationSpec defines the desired state of Application diff --git a/apis/iam/v1alpha1/zz_generated.deepcopy.go b/apis/iam/v1alpha1/zz_generated.deepcopy.go index 2d6c258..1ba250c 100644 --- a/apis/iam/v1alpha1/zz_generated.deepcopy.go +++ b/apis/iam/v1alpha1/zz_generated.deepcopy.go @@ -307,6 +307,17 @@ func (in *ApplicationInitParameters) DeepCopyInto(out *ApplicationInitParameters *out = new(string) **out = **in } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationInitParameters. @@ -384,6 +395,17 @@ func (in *ApplicationObservation) DeepCopyInto(out *ApplicationObservation) { *out = new(string) **out = **in } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } if in.UpdatedAt != nil { in, out := &in.UpdatedAt, &out.UpdatedAt *out = new(string) @@ -419,6 +441,17 @@ func (in *ApplicationParameters) DeepCopyInto(out *ApplicationParameters) { *out = new(string) **out = **in } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationParameters. @@ -516,6 +549,17 @@ func (in *GroupInitParameters) DeepCopyInto(out *GroupInitParameters) { *out = new(string) **out = **in } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } if in.UserIds != nil { in, out := &in.UserIds, &out.UserIds *out = make([]*string, len(*in)) @@ -615,6 +659,17 @@ func (in *GroupObservation) DeepCopyInto(out *GroupObservation) { *out = new(string) **out = **in } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } if in.UpdatedAt != nil { in, out := &in.UpdatedAt, &out.UpdatedAt *out = new(string) @@ -689,6 +744,17 @@ func (in *GroupParameters) DeepCopyInto(out *GroupParameters) { *out = new(string) **out = **in } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } if in.UserIds != nil { in, out := &in.UserIds, &out.UserIds *out = make([]*string, len(*in)) @@ -804,6 +870,17 @@ func (in *PolicyInitParameters) DeepCopyInto(out *PolicyInitParameters) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } if in.UserID != nil { in, out := &in.UserID, &out.UserID *out = new(string) @@ -908,6 +985,17 @@ func (in *PolicyObservation) DeepCopyInto(out *PolicyObservation) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } if in.UpdatedAt != nil { in, out := &in.UpdatedAt, &out.UpdatedAt *out = new(string) @@ -990,6 +1078,17 @@ func (in *PolicyParameters) DeepCopyInto(out *PolicyParameters) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } if in.UserID != nil { in, out := &in.UserID, &out.UserID *out = new(string) diff --git a/apis/iam/v1alpha1/zz_group_types.go b/apis/iam/v1alpha1/zz_group_types.go index 3652b00..390937b 100755 --- a/apis/iam/v1alpha1/zz_group_types.go +++ b/apis/iam/v1alpha1/zz_group_types.go @@ -31,6 +31,10 @@ type GroupInitParameters struct { // ID of organization the resource is associated to. OrganizationID *string `json:"organizationId,omitempty" tf:"organization_id,omitempty"` + // The tags associated with the group. + // The tags associated with the application + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // The list of IDs of the users attached to the group. // List of IDs of the users attached to the group UserIds []*string `json:"userIds,omitempty" tf:"user_ids,omitempty"` @@ -63,6 +67,10 @@ type GroupObservation struct { // ID of organization the resource is associated to. OrganizationID *string `json:"organizationId,omitempty" tf:"organization_id,omitempty"` + // The tags associated with the group. + // The tags associated with the application + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // The date and time of the last update of the group UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` @@ -107,6 +115,11 @@ type GroupParameters struct { // +kubebuilder:validation:Optional OrganizationID *string `json:"organizationId,omitempty" tf:"organization_id,omitempty"` + // The tags associated with the group. + // The tags associated with the application + // +kubebuilder:validation:Optional + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // The list of IDs of the users attached to the group. // List of IDs of the users attached to the group // +kubebuilder:validation:Optional diff --git a/apis/iam/v1alpha1/zz_policy_types.go b/apis/iam/v1alpha1/zz_policy_types.go index 13242ac..949a93e 100755 --- a/apis/iam/v1alpha1/zz_policy_types.go +++ b/apis/iam/v1alpha1/zz_policy_types.go @@ -19,7 +19,7 @@ type PolicyInitParameters struct { // The description of the iam policy Description *string `json:"description,omitempty" tf:"description,omitempty"` - // .The name of the iam policy. + // The name of the iam policy. // The name of the iam policy Name *string `json:"name,omitempty" tf:"name,omitempty"` @@ -35,6 +35,10 @@ type PolicyInitParameters struct { // Rules of the policy to create Rule []RuleInitParameters `json:"rule,omitempty" tf:"rule,omitempty"` + // The tags associated with the iam policy. + // The tags associated with the policy + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // ID of the User the policy will be linked to // User id UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` @@ -65,7 +69,7 @@ type PolicyObservation struct { // The ID of the policy. ID *string `json:"id,omitempty" tf:"id,omitempty"` - // .The name of the iam policy. + // The name of the iam policy. // The name of the iam policy Name *string `json:"name,omitempty" tf:"name,omitempty"` @@ -81,6 +85,10 @@ type PolicyObservation struct { // Rules of the policy to create Rule []RuleObservation `json:"rule,omitempty" tf:"rule,omitempty"` + // The tags associated with the iam policy. + // The tags associated with the policy + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // The date and time of the last update of the policy. // The date and time of the last update of the policy UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` @@ -125,7 +133,7 @@ type PolicyParameters struct { // +kubebuilder:validation:Optional GroupIDSelector *v1.Selector `json:"groupIdSelector,omitempty" tf:"-"` - // .The name of the iam policy. + // The name of the iam policy. // The name of the iam policy // +kubebuilder:validation:Optional Name *string `json:"name,omitempty" tf:"name,omitempty"` @@ -145,6 +153,11 @@ type PolicyParameters struct { // +kubebuilder:validation:Optional Rule []RuleParameters `json:"rule,omitempty" tf:"rule,omitempty"` + // The tags associated with the iam policy. + // The tags associated with the policy + // +kubebuilder:validation:Optional + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // ID of the User the policy will be linked to // User id // +kubebuilder:validation:Optional diff --git a/apis/instance/v1alpha1/zz_generated.deepcopy.go b/apis/instance/v1alpha1/zz_generated.deepcopy.go index 18161db..dd13b4d 100644 --- a/apis/instance/v1alpha1/zz_generated.deepcopy.go +++ b/apis/instance/v1alpha1/zz_generated.deepcopy.go @@ -3608,11 +3608,6 @@ func (in *VolumeInitParameters) DeepCopyInto(out *VolumeInitParameters) { *out = new(string) **out = **in } - if in.FromVolumeID != nil { - in, out := &in.FromVolumeID, &out.FromVolumeID - *out = new(string) - **out = **in - } if in.Name != nil { in, out := &in.Name, &out.Name *out = new(string) @@ -3701,11 +3696,6 @@ func (in *VolumeObservation) DeepCopyInto(out *VolumeObservation) { *out = new(string) **out = **in } - if in.FromVolumeID != nil { - in, out := &in.FromVolumeID, &out.FromVolumeID - *out = new(string) - **out = **in - } if in.ID != nil { in, out := &in.ID, &out.ID *out = new(string) @@ -3777,11 +3767,6 @@ func (in *VolumeParameters) DeepCopyInto(out *VolumeParameters) { *out = new(string) **out = **in } - if in.FromVolumeID != nil { - in, out := &in.FromVolumeID, &out.FromVolumeID - *out = new(string) - **out = **in - } if in.Name != nil { in, out := &in.Name, &out.Name *out = new(string) diff --git a/apis/instance/v1alpha1/zz_volume_types.go b/apis/instance/v1alpha1/zz_volume_types.go index 83b8060..121ff7d 100755 --- a/apis/instance/v1alpha1/zz_volume_types.go +++ b/apis/instance/v1alpha1/zz_volume_types.go @@ -15,14 +15,10 @@ import ( type VolumeInitParameters struct { - // If set, the new volume will be created from this snapshot. Only one of size_in_gb, from_volume_id and from_snapshot_id should be specified. + // If set, the new volume will be created from this snapshot. Only one of size_in_gb and from_snapshot_id should be specified. // Create a volume based on a image FromSnapshotID *string `json:"fromSnapshotId,omitempty" tf:"from_snapshot_id,omitempty"` - // If set, the new volume will be copied from this volume. Only one of size_in_gb, from_volume_id and from_snapshot_id should be specified. - // Create a copy of an existing volume - FromVolumeID *string `json:"fromVolumeId,omitempty" tf:"from_volume_id,omitempty"` - // The name of the volume. If not provided it will be randomly generated. // The name of the volume Name *string `json:"name,omitempty" tf:"name,omitempty"` @@ -31,7 +27,7 @@ type VolumeInitParameters struct { // The project_id you want to attach the resource to ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` - // The size of the volume. Only one of size_in_gb, from_volume_id and from_snapshot_id should be specified. + // The size of the volume. Only one of size_in_gb and from_snapshot_id should be specified. // The size of the volume in gigabyte SizeInGb *float64 `json:"sizeInGb,omitempty" tf:"size_in_gb,omitempty"` @@ -50,14 +46,10 @@ type VolumeInitParameters struct { type VolumeObservation struct { - // If set, the new volume will be created from this snapshot. Only one of size_in_gb, from_volume_id and from_snapshot_id should be specified. + // If set, the new volume will be created from this snapshot. Only one of size_in_gb and from_snapshot_id should be specified. // Create a volume based on a image FromSnapshotID *string `json:"fromSnapshotId,omitempty" tf:"from_snapshot_id,omitempty"` - // If set, the new volume will be copied from this volume. Only one of size_in_gb, from_volume_id and from_snapshot_id should be specified. - // Create a copy of an existing volume - FromVolumeID *string `json:"fromVolumeId,omitempty" tf:"from_volume_id,omitempty"` - // The ID of the volume. ID *string `json:"id,omitempty" tf:"id,omitempty"` @@ -77,7 +69,7 @@ type VolumeObservation struct { // The server associated with this volume ServerID *string `json:"serverId,omitempty" tf:"server_id,omitempty"` - // The size of the volume. Only one of size_in_gb, from_volume_id and from_snapshot_id should be specified. + // The size of the volume. Only one of size_in_gb and from_snapshot_id should be specified. // The size of the volume in gigabyte SizeInGb *float64 `json:"sizeInGb,omitempty" tf:"size_in_gb,omitempty"` @@ -96,16 +88,11 @@ type VolumeObservation struct { type VolumeParameters struct { - // If set, the new volume will be created from this snapshot. Only one of size_in_gb, from_volume_id and from_snapshot_id should be specified. + // If set, the new volume will be created from this snapshot. Only one of size_in_gb and from_snapshot_id should be specified. // Create a volume based on a image // +kubebuilder:validation:Optional FromSnapshotID *string `json:"fromSnapshotId,omitempty" tf:"from_snapshot_id,omitempty"` - // If set, the new volume will be copied from this volume. Only one of size_in_gb, from_volume_id and from_snapshot_id should be specified. - // Create a copy of an existing volume - // +kubebuilder:validation:Optional - FromVolumeID *string `json:"fromVolumeId,omitempty" tf:"from_volume_id,omitempty"` - // The name of the volume. If not provided it will be randomly generated. // The name of the volume // +kubebuilder:validation:Optional @@ -116,7 +103,7 @@ type VolumeParameters struct { // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` - // The size of the volume. Only one of size_in_gb, from_volume_id and from_snapshot_id should be specified. + // The size of the volume. Only one of size_in_gb and from_snapshot_id should be specified. // The size of the volume in gigabyte // +kubebuilder:validation:Optional SizeInGb *float64 `json:"sizeInGb,omitempty" tf:"size_in_gb,omitempty"` diff --git a/apis/k8s/v1alpha1/zz_cluster_types.go b/apis/k8s/v1alpha1/zz_cluster_types.go index c0d9ba5..3ccb3f2 100755 --- a/apis/k8s/v1alpha1/zz_cluster_types.go +++ b/apis/k8s/v1alpha1/zz_cluster_types.go @@ -248,10 +248,6 @@ type ClusterInitParameters struct { // The OpenID Connect configuration of the cluster OpenIDConnectConfig []OpenIDConnectConfigInitParameters `json:"openIdConnectConfig,omitempty" tf:"open_id_connect_config,omitempty"` - // The ID of the private network of the cluster. - // The ID of the cluster's private network - PrivateNetworkID *string `json:"privateNetworkId,omitempty" tf:"private_network_id,omitempty"` - // (Defaults to provider project_id) The ID of the project the cluster is associated with. // The project_id you want to attach the resource to ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` @@ -431,9 +427,18 @@ type ClusterParameters struct { // The ID of the private network of the cluster. // The ID of the cluster's private network + // +crossplane:generate:reference:type=github.com/scaleway/provider-scaleway/apis/vpc/v1alpha1.PrivateNetwork // +kubebuilder:validation:Optional PrivateNetworkID *string `json:"privateNetworkId,omitempty" tf:"private_network_id,omitempty"` + // Reference to a PrivateNetwork in vpc to populate privateNetworkId. + // +kubebuilder:validation:Optional + PrivateNetworkIDRef *v1.Reference `json:"privateNetworkIdRef,omitempty" tf:"-"` + + // Selector for a PrivateNetwork in vpc to populate privateNetworkId. + // +kubebuilder:validation:Optional + PrivateNetworkIDSelector *v1.Selector `json:"privateNetworkIdSelector,omitempty" tf:"-"` + // (Defaults to provider project_id) The ID of the project the cluster is associated with. // The project_id you want to attach the resource to // +kubebuilder:validation:Optional diff --git a/apis/k8s/v1alpha1/zz_generated.deepcopy.go b/apis/k8s/v1alpha1/zz_generated.deepcopy.go index a67c0e2..0098f72 100644 --- a/apis/k8s/v1alpha1/zz_generated.deepcopy.go +++ b/apis/k8s/v1alpha1/zz_generated.deepcopy.go @@ -402,11 +402,6 @@ func (in *ClusterInitParameters) DeepCopyInto(out *ClusterInitParameters) { (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.PrivateNetworkID != nil { - in, out := &in.PrivateNetworkID, &out.PrivateNetworkID - *out = new(string) - **out = **in - } if in.ProjectID != nil { in, out := &in.ProjectID, &out.ProjectID *out = new(string) @@ -729,6 +724,16 @@ func (in *ClusterParameters) DeepCopyInto(out *ClusterParameters) { *out = new(string) **out = **in } + if in.PrivateNetworkIDRef != nil { + in, out := &in.PrivateNetworkIDRef, &out.PrivateNetworkIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.PrivateNetworkIDSelector != nil { + in, out := &in.PrivateNetworkIDSelector, &out.PrivateNetworkIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } if in.ProjectID != nil { in, out := &in.ProjectID, &out.ProjectID *out = new(string) @@ -1209,6 +1214,11 @@ func (in *PoolInitParameters) DeepCopyInto(out *PoolInitParameters) { *out = new(string) **out = **in } + if in.PublicIPDisabled != nil { + in, out := &in.PublicIPDisabled, &out.PublicIPDisabled + *out = new(bool) + **out = **in + } if in.Region != nil { in, out := &in.Region, &out.Region *out = new(string) @@ -1387,6 +1397,11 @@ func (in *PoolObservation) DeepCopyInto(out *PoolObservation) { *out = new(string) **out = **in } + if in.PublicIPDisabled != nil { + in, out := &in.PublicIPDisabled, &out.PublicIPDisabled + *out = new(bool) + **out = **in + } if in.Region != nil { in, out := &in.Region, &out.Region *out = new(string) @@ -1536,6 +1551,11 @@ func (in *PoolParameters) DeepCopyInto(out *PoolParameters) { *out = new(string) **out = **in } + if in.PublicIPDisabled != nil { + in, out := &in.PublicIPDisabled, &out.PublicIPDisabled + *out = new(bool) + **out = **in + } if in.Region != nil { in, out := &in.Region, &out.Region *out = new(string) diff --git a/apis/k8s/v1alpha1/zz_generated.resolvers.go b/apis/k8s/v1alpha1/zz_generated.resolvers.go index 408a939..c7dc562 100644 --- a/apis/k8s/v1alpha1/zz_generated.resolvers.go +++ b/apis/k8s/v1alpha1/zz_generated.resolvers.go @@ -9,9 +9,36 @@ import ( "context" reference "github.com/crossplane/crossplane-runtime/pkg/reference" errors "github.com/pkg/errors" + v1alpha1 "github.com/scaleway/provider-scaleway/apis/vpc/v1alpha1" client "sigs.k8s.io/controller-runtime/pkg/client" ) +// ResolveReferences of this Cluster. +func (mg *Cluster) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.PrivateNetworkID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.PrivateNetworkIDRef, + Selector: mg.Spec.ForProvider.PrivateNetworkIDSelector, + To: reference.To{ + List: &v1alpha1.PrivateNetworkList{}, + Managed: &v1alpha1.PrivateNetwork{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.PrivateNetworkID") + } + mg.Spec.ForProvider.PrivateNetworkID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.PrivateNetworkIDRef = rsp.ResolvedReference + + return nil +} + // ResolveReferences of this Pool. func (mg *Pool) ResolveReferences(ctx context.Context, c client.Reader) error { r := reference.NewAPIResolver(c, mg) diff --git a/apis/k8s/v1alpha1/zz_pool_types.go b/apis/k8s/v1alpha1/zz_pool_types.go index 36087e8..4acd898 100755 --- a/apis/k8s/v1alpha1/zz_pool_types.go +++ b/apis/k8s/v1alpha1/zz_pool_types.go @@ -77,6 +77,11 @@ type PoolInitParameters struct { // ID of the placement group PlacementGroupID *string `json:"placementGroupId,omitempty" tf:"placement_group_id,omitempty"` + // (Defaults to false) Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway. + // ~> Important: Updates to this field will recreate a new resource. + // Defines if the public IP should be removed from the nodes. + PublicIPDisabled *bool `json:"publicIpDisabled,omitempty" tf:"public_ip_disabled,omitempty"` + // (Defaults to provider region) The region in which the pool should be created. // The region you want to attach the resource to Region *string `json:"region,omitempty" tf:"region,omitempty"` @@ -102,7 +107,7 @@ type PoolInitParameters struct { // The Pool upgrade policy UpgradePolicy []UpgradePolicyInitParameters `json:"upgradePolicy,omitempty" tf:"upgrade_policy,omitempty"` - // (Default to false) Whether to wait for the pool to be ready. + // (Defaults to false) Whether to wait for the pool to be ready. // Whether to wait for the pool to be ready WaitForPoolReady *bool `json:"waitForPoolReady,omitempty" tf:"wait_for_pool_ready,omitempty"` @@ -171,6 +176,11 @@ type PoolObservation struct { // ID of the placement group PlacementGroupID *string `json:"placementGroupId,omitempty" tf:"placement_group_id,omitempty"` + // (Defaults to false) Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway. + // ~> Important: Updates to this field will recreate a new resource. + // Defines if the public IP should be removed from the nodes. + PublicIPDisabled *bool `json:"publicIpDisabled,omitempty" tf:"public_ip_disabled,omitempty"` + // (Defaults to provider region) The region in which the pool should be created. // The region you want to attach the resource to Region *string `json:"region,omitempty" tf:"region,omitempty"` @@ -208,7 +218,7 @@ type PoolObservation struct { // The Kubernetes version of the pool Version *string `json:"version,omitempty" tf:"version,omitempty"` - // (Default to false) Whether to wait for the pool to be ready. + // (Defaults to false) Whether to wait for the pool to be ready. // Whether to wait for the pool to be ready WaitForPoolReady *bool `json:"waitForPoolReady,omitempty" tf:"wait_for_pool_ready,omitempty"` @@ -283,6 +293,12 @@ type PoolParameters struct { // +kubebuilder:validation:Optional PlacementGroupID *string `json:"placementGroupId,omitempty" tf:"placement_group_id,omitempty"` + // (Defaults to false) Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway. + // ~> Important: Updates to this field will recreate a new resource. + // Defines if the public IP should be removed from the nodes. + // +kubebuilder:validation:Optional + PublicIPDisabled *bool `json:"publicIpDisabled,omitempty" tf:"public_ip_disabled,omitempty"` + // (Defaults to provider region) The region in which the pool should be created. // The region you want to attach the resource to // +kubebuilder:validation:Optional @@ -314,7 +330,7 @@ type PoolParameters struct { // +kubebuilder:validation:Optional UpgradePolicy []UpgradePolicyParameters `json:"upgradePolicy,omitempty" tf:"upgrade_policy,omitempty"` - // (Default to false) Whether to wait for the pool to be ready. + // (Defaults to false) Whether to wait for the pool to be ready. // Whether to wait for the pool to be ready // +kubebuilder:validation:Optional WaitForPoolReady *bool `json:"waitForPoolReady,omitempty" tf:"wait_for_pool_ready,omitempty"` diff --git a/apis/lb/v1alpha1/zz_generated.deepcopy.go b/apis/lb/v1alpha1/zz_generated.deepcopy.go index 2538e64..51e975c 100644 --- a/apis/lb/v1alpha1/zz_generated.deepcopy.go +++ b/apis/lb/v1alpha1/zz_generated.deepcopy.go @@ -1994,6 +1994,11 @@ func (in *LB) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LBInitParameters) DeepCopyInto(out *LBInitParameters) { *out = *in + if in.AssignFlexibleIP != nil { + in, out := &in.AssignFlexibleIP, &out.AssignFlexibleIP + *out = new(bool) + **out = **in + } if in.Description != nil { in, out := &in.Description, &out.Description *out = new(string) @@ -2094,6 +2099,11 @@ func (in *LBList) DeepCopyObject() runtime.Object { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LBObservation) DeepCopyInto(out *LBObservation) { *out = *in + if in.AssignFlexibleIP != nil { + in, out := &in.AssignFlexibleIP, &out.AssignFlexibleIP + *out = new(bool) + **out = **in + } if in.Description != nil { in, out := &in.Description, &out.Description *out = new(string) @@ -2187,6 +2197,11 @@ func (in *LBObservation) DeepCopy() *LBObservation { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LBParameters) DeepCopyInto(out *LBParameters) { *out = *in + if in.AssignFlexibleIP != nil { + in, out := &in.AssignFlexibleIP, &out.AssignFlexibleIP + *out = new(bool) + **out = **in + } if in.Description != nil { in, out := &in.Description, &out.Description *out = new(string) diff --git a/apis/lb/v1alpha1/zz_lb_types.go b/apis/lb/v1alpha1/zz_lb_types.go index 35a14e4..035cf97 100755 --- a/apis/lb/v1alpha1/zz_lb_types.go +++ b/apis/lb/v1alpha1/zz_lb_types.go @@ -15,6 +15,10 @@ import ( type LBInitParameters struct { + // Defines whether to automatically assign a flexible public IP to the load-balancer. + // Defines whether to automatically assign a flexible public IP to the load balancer + AssignFlexibleIP *bool `json:"assignFlexibleIp,omitempty" tf:"assign_flexible_ip,omitempty"` + // The description of the load-balancer. // The description of the lb Description *string `json:"description,omitempty" tf:"description,omitempty"` @@ -43,7 +47,7 @@ type LBInitParameters struct { // Array of tags to associate with the load-balancer Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` - // The type of the load-balancer. Please check the migration section to upgrade the type + // The type of the load-balancer. Please check the migration section to upgrade the type. // The type of load-balancer you want to create Type *string `json:"type,omitempty" tf:"type,omitempty"` @@ -54,6 +58,10 @@ type LBInitParameters struct { type LBObservation struct { + // Defines whether to automatically assign a flexible public IP to the load-balancer. + // Defines whether to automatically assign a flexible public IP to the load balancer + AssignFlexibleIP *bool `json:"assignFlexibleIp,omitempty" tf:"assign_flexible_ip,omitempty"` + // The description of the load-balancer. // The description of the lb Description *string `json:"description,omitempty" tf:"description,omitempty"` @@ -100,7 +108,7 @@ type LBObservation struct { // Array of tags to associate with the load-balancer Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` - // The type of the load-balancer. Please check the migration section to upgrade the type + // The type of the load-balancer. Please check the migration section to upgrade the type. // The type of load-balancer you want to create Type *string `json:"type,omitempty" tf:"type,omitempty"` @@ -111,6 +119,11 @@ type LBObservation struct { type LBParameters struct { + // Defines whether to automatically assign a flexible public IP to the load-balancer. + // Defines whether to automatically assign a flexible public IP to the load balancer + // +kubebuilder:validation:Optional + AssignFlexibleIP *bool `json:"assignFlexibleIp,omitempty" tf:"assign_flexible_ip,omitempty"` + // The description of the load-balancer. // The description of the lb // +kubebuilder:validation:Optional @@ -160,7 +173,7 @@ type LBParameters struct { // +kubebuilder:validation:Optional Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` - // The type of the load-balancer. Please check the migration section to upgrade the type + // The type of the load-balancer. Please check the migration section to upgrade the type. // The type of load-balancer you want to create // +kubebuilder:validation:Optional Type *string `json:"type,omitempty" tf:"type,omitempty"` diff --git a/apis/object/v1alpha1/zz_bucket_types.go b/apis/object/v1alpha1/zz_bucket_types.go index 9ed8b02..2c40cbc 100755 --- a/apis/object/v1alpha1/zz_bucket_types.go +++ b/apis/object/v1alpha1/zz_bucket_types.go @@ -60,6 +60,10 @@ type BucketObservation struct { // ACL of the bucket: either 'public-read' or 'private'. ACL *string `json:"acl,omitempty" tf:"acl,omitempty"` + // The endpoint URL of the bucket + // API URL of the bucket + APIEndpoint *string `json:"apiEndpoint,omitempty" tf:"api_endpoint,omitempty"` + // A rule of Cross-Origin Resource Sharing (documented below). CorsRule []CorsRuleObservation `json:"corsRule,omitempty" tf:"cors_rule,omitempty"` diff --git a/apis/object/v1alpha1/zz_generated.deepcopy.go b/apis/object/v1alpha1/zz_generated.deepcopy.go index 76e90d0..29f6593 100644 --- a/apis/object/v1alpha1/zz_generated.deepcopy.go +++ b/apis/object/v1alpha1/zz_generated.deepcopy.go @@ -488,6 +488,11 @@ func (in *BucketObservation) DeepCopyInto(out *BucketObservation) { *out = new(string) **out = **in } + if in.APIEndpoint != nil { + in, out := &in.APIEndpoint, &out.APIEndpoint + *out = new(string) + **out = **in + } if in.CorsRule != nil { in, out := &in.CorsRule, &out.CorsRule *out = make([]CorsRuleObservation, len(*in)) diff --git a/apis/object/v1alpha1/zz_policy_types.go b/apis/object/v1alpha1/zz_policy_types.go index 542b7eb..65ad440 100755 --- a/apis/object/v1alpha1/zz_policy_types.go +++ b/apis/object/v1alpha1/zz_policy_types.go @@ -16,7 +16,7 @@ import ( type PolicyInitParameters struct { // The name of the bucket. - // The bucket name. + // The bucket's name or regional ID. Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` // The policy document. This is a JSON formatted string. @@ -35,7 +35,7 @@ type PolicyInitParameters struct { type PolicyObservation struct { // The name of the bucket. - // The bucket name. + // The bucket's name or regional ID. Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` // The ID of the policy, which is the ID of the bucket. @@ -57,7 +57,7 @@ type PolicyObservation struct { type PolicyParameters struct { // The name of the bucket. - // The bucket name. + // The bucket's name or regional ID. // +kubebuilder:validation:Optional Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` diff --git a/apis/rdb/v1alpha1/zz_generated.deepcopy.go b/apis/rdb/v1alpha1/zz_generated.deepcopy.go index 2ed6420..c40c8a7 100644 --- a/apis/rdb/v1alpha1/zz_generated.deepcopy.go +++ b/apis/rdb/v1alpha1/zz_generated.deepcopy.go @@ -861,6 +861,11 @@ func (in *InstanceInitParameters) DeepCopyInto(out *InstanceInitParameters) { *out = new(bool) **out = **in } + if in.DisablePublicEndpoint != nil { + in, out := &in.DisablePublicEndpoint, &out.DisablePublicEndpoint + *out = new(bool) + **out = **in + } if in.Engine != nil { in, out := &in.Engine, &out.Engine *out = new(string) @@ -1028,6 +1033,11 @@ func (in *InstanceObservation) DeepCopyInto(out *InstanceObservation) { *out = new(bool) **out = **in } + if in.DisablePublicEndpoint != nil { + in, out := &in.DisablePublicEndpoint, &out.DisablePublicEndpoint + *out = new(bool) + **out = **in + } if in.EndpointIP != nil { in, out := &in.EndpointIP, &out.EndpointIP *out = new(string) @@ -1192,6 +1202,11 @@ func (in *InstanceParameters) DeepCopyInto(out *InstanceParameters) { *out = new(bool) **out = **in } + if in.DisablePublicEndpoint != nil { + in, out := &in.DisablePublicEndpoint, &out.DisablePublicEndpoint + *out = new(bool) + **out = **in + } if in.Engine != nil { in, out := &in.Engine, &out.Engine *out = new(string) @@ -1805,6 +1820,11 @@ func (in *ReadReplicaInitParameters) DeepCopyInto(out *ReadReplicaInitParameters *out = new(string) **out = **in } + if in.SameZone != nil { + in, out := &in.SameZone, &out.SameZone + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadReplicaInitParameters. @@ -1881,6 +1901,11 @@ func (in *ReadReplicaObservation) DeepCopyInto(out *ReadReplicaObservation) { *out = new(string) **out = **in } + if in.SameZone != nil { + in, out := &in.SameZone, &out.SameZone + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadReplicaObservation. @@ -1928,6 +1953,11 @@ func (in *ReadReplicaParameters) DeepCopyInto(out *ReadReplicaParameters) { *out = new(string) **out = **in } + if in.SameZone != nil { + in, out := &in.SameZone, &out.SameZone + *out = new(bool) + **out = **in + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadReplicaParameters. diff --git a/apis/rdb/v1alpha1/zz_instance_types.go b/apis/rdb/v1alpha1/zz_instance_types.go index a673f8b..389cdaf 100755 --- a/apis/rdb/v1alpha1/zz_instance_types.go +++ b/apis/rdb/v1alpha1/zz_instance_types.go @@ -31,6 +31,10 @@ type InstanceInitParameters struct { // Disable automated backup for the database instance DisableBackup *bool `json:"disableBackup,omitempty" tf:"disable_backup,omitempty"` + // Disable the default public endpoint + // Whether the instance should have a public endpoint if it has a Private Network attached + DisablePublicEndpoint *bool `json:"disablePublicEndpoint,omitempty" tf:"disable_public_endpoint,omitempty"` + // Database Instance's engine version (e.g. PostgreSQL-11). // Database's engine version id Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` @@ -108,6 +112,10 @@ type InstanceObservation struct { // Disable automated backup for the database instance DisableBackup *bool `json:"disableBackup,omitempty" tf:"disable_backup,omitempty"` + // Disable the default public endpoint + // Whether the instance should have a public endpoint if it has a Private Network attached + DisablePublicEndpoint *bool `json:"disablePublicEndpoint,omitempty" tf:"disable_public_endpoint,omitempty"` + // (Deprecated) The IP of the Database Instance. // Endpoint IP of the database instance EndpointIP *string `json:"endpointIp,omitempty" tf:"endpoint_ip,omitempty"` @@ -208,6 +216,11 @@ type InstanceParameters struct { // +kubebuilder:validation:Optional DisableBackup *bool `json:"disableBackup,omitempty" tf:"disable_backup,omitempty"` + // Disable the default public endpoint + // Whether the instance should have a public endpoint if it has a Private Network attached + // +kubebuilder:validation:Optional + DisablePublicEndpoint *bool `json:"disablePublicEndpoint,omitempty" tf:"disable_public_endpoint,omitempty"` + // Database Instance's engine version (e.g. PostgreSQL-11). // Database's engine version id // +kubebuilder:validation:Optional diff --git a/apis/rdb/v1alpha1/zz_readreplica_types.go b/apis/rdb/v1alpha1/zz_readreplica_types.go index 465a0fe..7d0dc76 100755 --- a/apis/rdb/v1alpha1/zz_readreplica_types.go +++ b/apis/rdb/v1alpha1/zz_readreplica_types.go @@ -56,6 +56,10 @@ type ReadReplicaInitParameters struct { // in which the Database read replica should be created. // The region you want to attach the resource to Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // (Defaults to false) Defines whether to create the replica in the same availability zone as the main instance nodes or not. + // Defines whether to create the replica in the same availability zone as the main instance nodes or not. + SameZone *bool `json:"sameZone,omitempty" tf:"same_zone,omitempty"` } type ReadReplicaObservation struct { @@ -79,6 +83,10 @@ type ReadReplicaObservation struct { // in which the Database read replica should be created. // The region you want to attach the resource to Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // (Defaults to false) Defines whether to create the replica in the same availability zone as the main instance nodes or not. + // Defines whether to create the replica in the same availability zone as the main instance nodes or not. + SameZone *bool `json:"sameZone,omitempty" tf:"same_zone,omitempty"` } type ReadReplicaParameters struct { @@ -112,6 +120,11 @@ type ReadReplicaParameters struct { // The region you want to attach the resource to // +kubebuilder:validation:Optional Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // (Defaults to false) Defines whether to create the replica in the same availability zone as the main instance nodes or not. + // Defines whether to create the replica in the same availability zone as the main instance nodes or not. + // +kubebuilder:validation:Optional + SameZone *bool `json:"sameZone,omitempty" tf:"same_zone,omitempty"` } type ReadReplicaPrivateNetworkInitParameters struct { diff --git a/apis/tem/v1alpha1/zz_domain_types.go b/apis/tem/v1alpha1/zz_domain_types.go index 71412b2..8cf4b88 100755 --- a/apis/tem/v1alpha1/zz_domain_types.go +++ b/apis/tem/v1alpha1/zz_domain_types.go @@ -60,6 +60,10 @@ type DomainObservation struct { // Date and time the domain was last found to be valid (RFC 3339 format) LastValidAt *string `json:"lastValidAt,omitempty" tf:"last_valid_at,omitempty"` + // The Scaleway's blackhole MX server to use if you do not have one. + // The Scaleway's blackhole MX server to use + MxBlackhole *string `json:"mxBlackhole,omitempty" tf:"mx_blackhole,omitempty"` + // The domain name, must not be used in another Transactional Email Domain. // ~> Important: Updates to name will recreate the domain. // The domain name used when sending emails @@ -77,25 +81,35 @@ type DomainObservation struct { // The region you want to attach the resource to Region *string `json:"region,omitempty" tf:"region,omitempty"` + // The domain's reputation. + // The domain's reputation + Reputation []ReputationObservation `json:"reputation,omitempty" tf:"reputation,omitempty"` + // The date and time of the revocation of the domain (RFC 3339 format). // Date and time of the revocation of the domain (RFC 3339 format) RevokedAt *string `json:"revokedAt,omitempty" tf:"revoked_at,omitempty"` + // The SMTP host to use to send emails. // SMTP host to use to send emails SMTPHost *string `json:"smtpHost,omitempty" tf:"smtp_host,omitempty"` + // The SMTP port to use to send emails over TLS. // SMTP port to use to send emails over TLS. (Port 587) SMTPPort *float64 `json:"smtpPort,omitempty" tf:"smtp_port,omitempty"` + // The SMTP port to use to send emails over TLS. // SMTP port to use to send emails over TLS. (Port 2587) SMTPPortAlternative *float64 `json:"smtpPortAlternative,omitempty" tf:"smtp_port_alternative,omitempty"` + // The SMTP port to use to send emails. // SMTP port to use to send emails. (Port 25) SMTPPortUnsecure *float64 `json:"smtpPortUnsecure,omitempty" tf:"smtp_port_unsecure,omitempty"` + // The SMTPS port to use to send emails over TLS Wrapper. // SMTPS port to use to send emails over TLS Wrapper. (Port 465) SmtpsPort *float64 `json:"smtpsPort,omitempty" tf:"smtps_port,omitempty"` + // The SMTPS port to use to send emails over TLS Wrapper. // SMTPS port to use to send emails over TLS Wrapper. (Port 2465) SmtpsPortAlternative *float64 `json:"smtpsPortAlternative,omitempty" tf:"smtps_port_alternative,omitempty"` @@ -133,6 +147,30 @@ type DomainParameters struct { Region *string `json:"region,omitempty" tf:"region,omitempty"` } +type ReputationInitParameters struct { +} + +type ReputationObservation struct { + + // The previously-calculated domain's reputation score. + PreviousScore *float64 `json:"previousScore,omitempty" tf:"previous_score,omitempty"` + + // The time and date the previous reputation score was calculated. + PreviousScoredAt *string `json:"previousScoredAt,omitempty" tf:"previous_scored_at,omitempty"` + + // A range from 0 to 100 that determines your domain's reputation score. + Score *float64 `json:"score,omitempty" tf:"score,omitempty"` + + // The time and date the score was calculated. + ScoredAt *string `json:"scoredAt,omitempty" tf:"scored_at,omitempty"` + + // The status of the Transaction Email Domain. + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +type ReputationParameters struct { +} + // DomainSpec defines the desired state of Domain type DomainSpec struct { v1.ResourceSpec `json:",inline"` diff --git a/apis/tem/v1alpha1/zz_generated.deepcopy.go b/apis/tem/v1alpha1/zz_generated.deepcopy.go index 4da22e5..393c1ad 100644 --- a/apis/tem/v1alpha1/zz_generated.deepcopy.go +++ b/apis/tem/v1alpha1/zz_generated.deepcopy.go @@ -139,6 +139,11 @@ func (in *DomainObservation) DeepCopyInto(out *DomainObservation) { *out = new(string) **out = **in } + if in.MxBlackhole != nil { + in, out := &in.MxBlackhole, &out.MxBlackhole + *out = new(string) + **out = **in + } if in.Name != nil { in, out := &in.Name, &out.Name *out = new(string) @@ -159,6 +164,13 @@ func (in *DomainObservation) DeepCopyInto(out *DomainObservation) { *out = new(string) **out = **in } + if in.Reputation != nil { + in, out := &in.Reputation, &out.Reputation + *out = make([]ReputationObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } if in.RevokedAt != nil { in, out := &in.RevokedAt, &out.RevokedAt *out = new(string) @@ -285,3 +297,73 @@ func (in *DomainStatus) DeepCopy() *DomainStatus { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReputationInitParameters) DeepCopyInto(out *ReputationInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReputationInitParameters. +func (in *ReputationInitParameters) DeepCopy() *ReputationInitParameters { + if in == nil { + return nil + } + out := new(ReputationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReputationObservation) DeepCopyInto(out *ReputationObservation) { + *out = *in + if in.PreviousScore != nil { + in, out := &in.PreviousScore, &out.PreviousScore + *out = new(float64) + **out = **in + } + if in.PreviousScoredAt != nil { + in, out := &in.PreviousScoredAt, &out.PreviousScoredAt + *out = new(string) + **out = **in + } + if in.Score != nil { + in, out := &in.Score, &out.Score + *out = new(float64) + **out = **in + } + if in.ScoredAt != nil { + in, out := &in.ScoredAt, &out.ScoredAt + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReputationObservation. +func (in *ReputationObservation) DeepCopy() *ReputationObservation { + if in == nil { + return nil + } + out := new(ReputationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReputationParameters) DeepCopyInto(out *ReputationParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReputationParameters. +func (in *ReputationParameters) DeepCopy() *ReputationParameters { + if in == nil { + return nil + } + out := new(ReputationParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/zz_register.go b/apis/zz_register.go index 2892fee..9b731a5 100755 --- a/apis/zz_register.go +++ b/apis/zz_register.go @@ -23,7 +23,6 @@ import ( v1alpha1iot "github.com/scaleway/provider-scaleway/apis/iot/v1alpha1" v1alpha1k8s "github.com/scaleway/provider-scaleway/apis/k8s/v1alpha1" v1alpha1lb "github.com/scaleway/provider-scaleway/apis/lb/v1alpha1" - v1alpha1mnq "github.com/scaleway/provider-scaleway/apis/mnq/v1alpha1" v1alpha1object "github.com/scaleway/provider-scaleway/apis/object/v1alpha1" v1alpha1rdb "github.com/scaleway/provider-scaleway/apis/rdb/v1alpha1" v1alpha1redis "github.com/scaleway/provider-scaleway/apis/redis/v1alpha1" @@ -50,7 +49,6 @@ func init() { v1alpha1iot.SchemeBuilder.AddToScheme, v1alpha1k8s.SchemeBuilder.AddToScheme, v1alpha1lb.SchemeBuilder.AddToScheme, - v1alpha1mnq.SchemeBuilder.AddToScheme, v1alpha1object.SchemeBuilder.AddToScheme, v1alpha1rdb.SchemeBuilder.AddToScheme, v1alpha1redis.SchemeBuilder.AddToScheme, diff --git a/config/provider-metadata.yaml b/config/provider-metadata.yaml index 3108c7e..e62eda9 100644 --- a/config/provider-metadata.yaml +++ b/config/provider-metadata.yaml @@ -192,6 +192,48 @@ resources: vlan: '- The VLAN ID associated to the private network.' zone: '- (Defaults to provider zone) The zone in which the server should be created.' importStatements: [] + scaleway_block_snapshot: + subCategory: Block + name: scaleway_block_snapshot + title: scaleway_block_snapshot + examples: + - name: block_snapshot + manifest: |- + { + "name": "some-snapshot-name", + "volume_id": "11111111-1111-1111-1111-111111111111" + } + argumentDocs: + id: '- The ID of the snapshot.' + name: '- (Optional) The name of the snapshot. If not provided it will be randomly generated.' + project_id: '- (Defaults to provider project_id) The ID of the project the snapshot is associated with.' + tags: '- (Optional) A list of tags to apply to the snapshot.' + volume_id: '- (Optional) The ID of the volume to take a snapshot from.' + zone: '- (Defaults to provider zone) The zone in which the snapshot should be created.' + importStatements: [] + scaleway_block_volume: + subCategory: Block + name: scaleway_block_volume + title: scaleway_block_volume + examples: + - name: block_volume + manifest: |- + { + "iops": 5000, + "name": "some-volume-name", + "size_in_gb": 20 + } + argumentDocs: + '{zone}/{id}.organization_id': '- The organization ID the volume is associated with.' + id: '- The ID of the volume.' + iops: '- (Required) The maximum IO/s expected, must match available options.' + name: '- (Optional) The name of the volume. If not provided it will be randomly generated.' + project_id: '- (Defaults to provider project_id) The ID of the project the volume is associated with.' + size_in_gb: '- (Optional) The size of the volume. Only one of size_in_gb, and snapshot_id should be specified.' + snapshot_id: '- (Optional) If set, the new volume will be created from this snapshot. Only one of size_in_gb, snapshot_id should be specified.' + tags: '- (Optional) A list of tags to apply to the volume.' + zone: '- (Defaults to provider zone) The zone in which the volume should be created.' + importStatements: [] scaleway_cockpit: subCategory: Cockpit name: scaleway_cockpit @@ -218,14 +260,15 @@ resources: "role": "editor" } argumentDocs: - alertmanager_url: '- The alertmanager URL' - endpoints: '- Endpoints' - grafana_url: '- The grafana URL' - logs_url: '- The logs URL' - metrics_url: '- The metrics URL' + alertmanager_url: '- The alertmanager URL.' + endpoints: '- Endpoints.' + grafana_url: '- The grafana URL.' + logs_url: '- The logs URL.' + metrics_url: '- The metrics URL.' plan: '- (Optional) Name or ID of the plan to use.' - plan_id: '- The ID of the current plan' + plan_id: '- The ID of the current plan.' project_id: '- (Defaults to provider project_id) The ID of the project the cockpit is associated with.' + traces_url: '- The traces URL.' importStatements: [] scaleway_cockpit_grafana_user: subCategory: Cockpit @@ -277,17 +320,19 @@ resources: references: project_id: data.scaleway_cockpit.main.project_id argumentDocs: - name: '- (Required) The name of the token' + name: '- (Required) The name of the token.' project_id: '- (Defaults to provider project_id) The ID of the project the cockpit is associated with.' - query_logs: '- (Defaults to false) Query logs' - query_metrics: '- (Defaults to false) Query metrics' - scopes: '- (Optional) Allowed scopes' - secret_key: '- The secret key of the token' - setup_alerts: '- (Defaults to false) Setup alerts' - setup_logs_rules: '- (Defaults to false) Setup logs rules' - setup_metrics_rules: '- (Defaults to false) Setup metrics rules' - write_logs: '- (Defaults to true) Write logs' - write_metrics: '- (Defaults to true) Write metrics' + query_logs: '- (Defaults to false) Query logs.' + query_metrics: '- (Defaults to false) Query metrics.' + query_traces: '- (Defaults to false) Query traces.' + scopes: '- (Optional) Allowed scopes.' + secret_key: '- The secret key of the token.' + setup_alerts: '- (Defaults to false) Setup alerts.' + setup_logs_rules: '- (Defaults to false) Setup logs rules.' + setup_metrics_rules: '- (Defaults to false) Setup metrics rules.' + write_logs: '- (Defaults to true) Write logs.' + write_metrics: '- (Defaults to true) Write metrics.' + write_traces: '- (Defaults to false) Write traces.' importStatements: [] scaleway_container: subCategory: Containers @@ -311,7 +356,7 @@ resources: "namespace_id": "${scaleway_container_namespace.main.id}", "port": 9997, "privacy": "private", - "protocol": "h2c", + "protocol": "http1", "registry_image": "${scaleway_container_namespace.main.registry_endpoint}/alpine:test", "secret_environment_variables": { "key": "secret" @@ -529,29 +574,243 @@ resources: "name": "my-trigger", "sqs": [ { - "namespace_id": "${scaleway_mnq_namespace.main.id}", - "project_id": "${scaleway_mnq_namespace.main.project_id}", + "project_id": "${scaleway_mnq_sqs.main.project_id}", "queue": "MyQueue", - "region": "${scaleway_mnq_namespace.main.region}" + "region": "${scaleway_mnq_sqs.main.region}" + } + ] + } + references: + container_id: scaleway_container.main.id + sqs.project_id: scaleway_mnq_sqs.main.project_id + sqs.region: scaleway_mnq_sqs.main.region + - name: main + manifest: |- + { + "container_id": "${scaleway_container.main.id}", + "name": "my-trigger", + "nats": [ + { + "account_id": "${scaleway_mnq_nats_account.main.id}", + "region": "${scaleway_mnq_nats_account.main.region}", + "subject": "MySubject" } ] } references: container_id: scaleway_container.main.id - sqs.namespace_id: scaleway_mnq_namespace.main.id - sqs.project_id: scaleway_mnq_namespace.main.project_id - sqs.region: scaleway_mnq_namespace.main.region + nats.account_id: scaleway_mnq_nats_account.main.id + nats.region: scaleway_mnq_nats_account.main.region argumentDocs: '{region}/{id}': ', e.g. fr-par/11111111-1111-1111-1111-111111111111' + account_id: (Required) ID of the mnq nats account. container_id: (Required) The ID of the container to create a trigger for description: (Optional) The description of the trigger. id: '- The ID of the container trigger' name: '- (Optional) The unique name of the trigger. Default to a generated name.' - namespace_id: (Required) ID of the mnq namespace - project_id: (Optional) ID of the project that contain the mnq namespace, defaults to provider's project + namespace_id: (Optional) ID of the mnq namespace. Deprecated. + nats: The configuration for the Scaleway's Nats used by the trigger + project_id: (Optional) ID of the project where sqs is enabled, defaults to provider's project queue: (Required) Name of the queue - region: (Optional) Region where the mnq namespace is, defaults to provider's region + region: (Optional) Region where sqs is enabled, defaults to provider's region sqs: The configuration of the Scaleway's SQS used by the trigger + subject: (Required) The subject to listen to + importStatements: [] + scaleway_documentdb_database: + subCategory: Databases + name: scaleway_documentdb_database + title: scaleway_documentdb_database + examples: + - name: main + manifest: |- + { + "instance_id": "11111111-1111-1111-1111-111111111111", + "name": "my-new-database" + } + argumentDocs: + id: '- The ID of the database, which is of the form {region}/{id}/{DBNAME} e.g. fr-par/11111111-1111-1111-1111-111111111111/mydb' + instance_id: '- (Required) UUID of the documentdb instance.' + managed: '- Whether the database is managed or not.' + name: '- (Required) Name of the database (e.g. my-new-database).' + owner: '- The name of the owner of the database.' + region: '- (Defaults to provider region) The region in which the resource exists.' + size: '- Size in gigabytes of the database.' + importStatements: [] + scaleway_documentdb_instance: + subCategory: Databases + name: scaleway_documentdb_instance + title: scaleway_documentdb_instance + examples: + - name: main + manifest: |- + { + "engine": "FerretDB-1", + "name": "test-documentdb-instance-basic", + "node_type": "docdb-play2-pico", + "password": "thiZ_is_v\u0026ry_s3cret", + "tags": [ + "terraform-test", + "scaleway_documentdb_instance", + "minimal" + ], + "user_name": "my_initial_user", + "volume_size_in_gb": 20 + } + argumentDocs: + engine: '- (Required) Database Instance''s engine version (e.g. FerretDB-1).' + id: '- The ID of the Database Instance.' + is_ha_cluster: '- (Optional) Enable or disable high availability for the database instance.' + name: '- (Optional) The name of the Database Instance.' + node_type: '- (Required) The type of database instance you want to create (e.g. docdb-play2-pico).' + organization_id: '- The organization ID the Database Instance is associated with.' + password: '- (Optional) Password for the first user of the database instance.' + project_id: |- + - (Defaults to provider project_id) The ID of the project the Database + Instance is associated with. + region: |- + - (Defaults to provider region) The region + in which the Database Instance should be created. + tags: '- (Optional) The tags associated with the Database Instance.' + telemetry_enabled: '- (Optional) Enable telemetry to collects basic anonymous usage data and sends them to FerretDB telemetry service. More about the telemetry here.' + user_name: '- (Optional) Identifier for the first user of the database instance.' + volume_size_in_gb: '- (Optional) Volume size (in GB) when volume_type is set to bssd.' + volume_type: '- (Optional, default to lssd) Type of volume where data are stored (bssd or lssd).' + importStatements: [] + scaleway_documentdb_private_network_endpoint: + subCategory: Databases + name: scaleway_documentdb_private_network_endpoint + title: scaleway_documentdb_private_network_endpoint + examples: + - name: main + manifest: |- + { + "depends_on": [ + "${scaleway_vpc_private_network.pn}" + ], + "instance_id": "11111111-1111-1111-1111-111111111111", + "private_network": [ + { + "id": "${scaleway_vpc_private_network.pn.id}", + "ip_net": "172.16.32.3/22" + } + ] + } + references: + private_network.id: scaleway_vpc_private_network.pn.id + dependencies: + scaleway_vpc_private_network.pn: |- + { + "name": "my_private_network" + } + argumentDocs: + hostname: '- Hostname of the endpoint.' + instance_id: '- (Required) UUID of the documentdb instance.' + ip: '- IPv4 address on the network.' + ip_net: |- + - (Optional) The IP network address within the private subnet. This must be an IPv4 address with a + CIDR notation. The IP network address within the private subnet is determined by the IP Address Management (IPAM) + service if not set. + name: '- Name of the endpoint.' + port: '- Port in the Private Network.' + private_network_id: '- (Required) The ID of the private network.' + importStatements: [] + scaleway_documentdb_privilege: + subCategory: Databases + name: scaleway_documentdb_privilege + title: scaleway_documentdb_privilege + examples: + - name: main + manifest: |- + { + "database_name": "my-db-name", + "instance_id": "11111111-1111-1111-1111-111111111111", + "permission": "all", + "user_name": "my-db-user" + } + argumentDocs: + database_name: '- (Required) Name of the database (e.g. my-db-name).' + id: '- The ID of the user privileges, which is of the form {region}/{instance_id}/{database_name}/{user_name}, e.g. fr-par/11111111-1111-1111-1111-111111111111/database_name/foo' + instance_id: '- (Required) UUID of the rdb instance.' + permission: '- (Required) Permission to set. Valid values are readonly, readwrite, all, custom and none.' + region: '- (Defaults to provider region) The region in which the resource exists.' + user_name: '- (Required) Name of the user (e.g. my-db-user).' + importStatements: [] + scaleway_documentdb_read_replica: + subCategory: Databases + name: scaleway_documentdb_read_replica + title: scaleway_documentdb_read_replica + examples: + - name: replica + manifest: |- + { + "direct_access": [ + {} + ], + "instance_id": "11111111-1111-1111-1111-111111111111" + } + - name: replica + manifest: |- + { + "instance_id": "${scaleway_rdb_instance.instance.id}", + "private_network": [ + { + "private_network_id": "${scaleway_vpc_private_network.pn.id}", + "service_ip": "192.168.1.254/24" + } + ] + } + references: + instance_id: scaleway_rdb_instance.instance.id + private_network.private_network_id: scaleway_vpc_private_network.pn.id + dependencies: + scaleway_vpc_private_network.pn: '{}' + argumentDocs: + direct_access: '- (Optional) Creates a direct access endpoint to documentdb replica.' + endpoint_id: '- The ID of the endpoint of the read replica.' + hostname: '- Hostname of the endpoint. Only one of ip and hostname may be set.' + id: '- The ID of the Database read replica.' + instance_id: '- (Required) UUID of the documentdb instance.' + ip: '- IPv4 address of the endpoint (IP address). Only one of ip and hostname may be set.' + name: '- Name of the endpoint.' + port: '- TCP port of the endpoint.' + private_network: '- (Optional) Create an endpoint in a private network.' + private_network_id: '- (Required) UUID of the private network to be connected to the read replica.' + region: |- + - (Defaults to provider region) The region + in which the Database read replica should be created. + service_ip: |- + - (Optional) The IP network address within the private subnet. This must be an IPv4 address with a + CIDR notation. The IP network address within the private subnet is determined by the IP Address Management (IPAM) + service if not set. + importStatements: [] + scaleway_documentdb_user: + subCategory: Databases + name: scaleway_documentdb_user + title: scaleway_documentdb_user + examples: + - name: db_admin + manifest: |- + { + "instance_id": "11111111-1111-1111-1111-111111111111", + "is_admin": true, + "name": "devtools", + "password": "${random_password.db_password.result}" + } + references: + password: random_password.db_password.result + dependencies: + random_password.db_password: |- + { + "length": 16, + "special": true + } + argumentDocs: + id: '- The ID of the user, which is of the form {region}/{instance_id}/{user_name}, e.g. fr-par/11111111-1111-1111-1111-111111111111/admin' + instance_id: '- (Required) UUID of the documentDB instance.' + is_admin: '- (Optional) Grant admin permissions to the Database User.' + name: '- (Required) Database Username.' + password: '- (Required) Database User password.' + region: '- The Scaleway region this resource resides in.' importStatements: [] scaleway_domain_record: subCategory: Domains and DNS @@ -797,7 +1056,7 @@ resources: must_contain: '- (Required) Text to search' name: '- (Optional) The name of the record (can be an empty string for a root record).' priority: '- (Optional, default: 0) The priority of the record (mostly used with an MX record)' - strategy: '- (Required) Strategy to return an IP from the IPs list. Can be random or hashed' + strategy: '- (Required) Strategy to return an IP from the IPs list. Can be random, hashed or all' subnet: '- (Required) The subnet of the view' ttl: '- (Optional, default: 3600) Time To Live of the record in seconds.' type: '- (Required) The type of the record (A, AAAA, MX, CNAME, DNAME, ALIAS, NS, PTR, SRV, TXT, TLSA, or CAA).' @@ -1195,29 +1454,47 @@ resources: "name": "my-trigger", "sqs": [ { - "namespace_id": "${scaleway_mnq_namespace.main.id}", - "project_id": "${scaleway_mnq_namespace.main.project_id}", + "project_id": "${scaleway_mnq_sqs.main.project_id}", "queue": "MyQueue", - "region": "${scaleway_mnq_namespace.main.region}" + "region": "${scaleway_mnq_sqs.main.region}" } ] } references: function_id: scaleway_function.main.id - sqs.namespace_id: scaleway_mnq_namespace.main.id - sqs.project_id: scaleway_mnq_namespace.main.project_id - sqs.region: scaleway_mnq_namespace.main.region + sqs.project_id: scaleway_mnq_sqs.main.project_id + sqs.region: scaleway_mnq_sqs.main.region + - name: main + manifest: |- + { + "container_id": "${scaleway_container.main.id}", + "name": "my-trigger", + "nats": [ + { + "account_id": "${scaleway_mnq_nats_account.main.id}", + "region": "${scaleway_mnq_nats_account.main.region}", + "subject": "MySubject" + } + ] + } + references: + container_id: scaleway_container.main.id + nats.account_id: scaleway_mnq_nats_account.main.id + nats.region: scaleway_mnq_nats_account.main.region argumentDocs: '{region}/{id}': ', e.g. fr-par/11111111-1111-1111-1111-111111111111' + account_id: (Required) ID of the mnq nats account. description: (Optional) The description of the trigger. function_id: (Required) The ID of the function to create a trigger for id: '- The ID of the function trigger' name: '- (Optional) The unique name of the trigger. Default to a generated name.' - namespace_id: (Required) ID of the mnq namespace + namespace_id: (Optional) ID of the mnq namespace. Deprecated. + nats: The configuration for the Scaleway's Nats used by the trigger project_id: (Optional) ID of the project that contain the mnq namespace, defaults to provider's project queue: (Required) Name of the queue region: (Optional) Region where the mnq namespace is, defaults to provider's region sqs: The configuration of the Scaleway's SQS used by the trigger + subject: (Required) The subject to listen to importStatements: [] scaleway_iam_api_key: subCategory: IAM @@ -1270,11 +1547,12 @@ resources: } argumentDocs: created_at: '- The date and time of the creation of the application.' - description: '- The description of the iam application.' + description: '- (Optional) The description of the iam application.' editable: '- Whether the application is editable.' id: '- The ID of the application.' - name: '- .The name of the iam application.' + name: '- (Optional) The name of the iam application.' organization_id: '- (Defaults to provider organization_id) The ID of the organization the application is associated with.' + tags: '- (Optional) The tags associated with the application.' updated_at: '- The date and time of the last update of the application.' importStatements: [] scaleway_iam_group: @@ -1314,6 +1592,7 @@ resources: external_membership: '- (Optional) Manage membership externally. This make the resource ignore user_ids and application_ids. Should be used when using iam_group_membership' name: '- (Optional) The name of the IAM group.' organization_id: '- (Defaults to provider organization_id) The ID of the organization the group is associated with.' + tags: '- (Optional) The tags associated with the group.' user_ids: '- (Optional) The list of IDs of the users attached to the group.' importStatements: [] scaleway_iam_group_membership: @@ -1418,16 +1697,17 @@ resources: argumentDocs: application_id: '- ID of the Application the policy will be linked to' created_at: '- The date and time of the creation of the policy.' - description: '- The description of the iam policy.' + description: '- (Optional) The description of the iam policy.' editable: '- Whether the policy is editable.' group_id: '- ID of the Group the policy will be linked to' id: '- The ID of the policy.' - name: '- .The name of the iam policy.' + name: '- (Optional) The name of the iam policy.' no_principal: '- If the policy doesn''t apply to a principal.' organization_id: '- (Defaults to provider organization_id) The ID of the organization the policy is associated with.' permission_set_names: '- Names of permission sets bound to the rule.' project_ids: '- List of project IDs scoped to the rule.' rule: '- List of rules in the policy.' + tags: '- (Optional) The tags associated with the iam policy.' updated_at: '- The date and time of the last update of the policy.' user_id: '- ID of the User the policy will be linked to' importStatements: @@ -1456,6 +1736,38 @@ resources: public_key: '- (Required) The public SSH key to be added.' updated_at: '- The date and time of the last update of the SSH key.' importStatements: [] + scaleway_iam_user: + subCategory: IAM + name: scaleway_iam_user + title: scaleway_iam_user + examples: + - name: basic + manifest: |- + { + "email": "test@test.com" + } + - name: user + manifest: |- + { + "email": "${each.key}", + "for_each": "${local.users}" + } + references: + email: each.key + for_each: local.users + argumentDocs: + account_root_user_id: '- The ID of the account root user associated with the user.' + created_at: '- The date and time of the creation of the iam user.' + deletable: '- Whether the iam user is deletable.' + email: '- (Required) The email of the IAM user.' + id: '- The ID of the user (UUID format).' + last_login_at: '- The date of the last login.' + mfa: '- Whether the MFA is enabled.' + organization_id: '- (Defaults to provider organization_id) The ID of the organization the user is associated with.' + status: '- The status of user invitation. Check the possible values in the api doc.' + type: '- The type of user. Check the possible values in the api doc.' + updated_at: '- The date and time of the last update of the iam user.' + importStatements: [] scaleway_instance_image: subCategory: Instances name: scaleway_instance_image @@ -2231,14 +2543,13 @@ resources: "type": "l_ssd" } argumentDocs: - from_snapshot_id: '- (Optional) If set, the new volume will be created from this snapshot. Only one of size_in_gb, from_volume_id and from_snapshot_id should be specified.' - from_volume_id: '- (Optional) If set, the new volume will be copied from this volume. Only one of size_in_gb, from_volume_id and from_snapshot_id should be specified.' + from_snapshot_id: '- (Optional) If set, the new volume will be created from this snapshot. Only one of size_in_gb and from_snapshot_id should be specified.' id: '- The ID of the volume.' name: '- (Optional) The name of the volume. If not provided it will be randomly generated.' organization_id: '- The organization ID the volume is associated with.' project_id: '- (Defaults to provider project_id) The ID of the project the volume is associated with.' server_id: '- The id of the associated server.' - size_in_gb: '- (Optional) The size of the volume. Only one of size_in_gb, from_volume_id and from_snapshot_id should be specified.' + size_in_gb: '- (Optional) The size of the volume. Only one of size_in_gb and from_snapshot_id should be specified.' tags: '- (Optional) A list of tags to apply to the volume.' type: '- (Required) The type of the volume. The possible values are: b_ssd (Block SSD), l_ssd (Local SSD), scratch (Local Scratch SSD).' zone: '- (Defaults to provider zone) The zone in which the volume should be created.' @@ -2479,6 +2790,140 @@ resources: s3.strategy: (Required) - How the S3 route's objects will be created (e.g. per_topic). See documentation for behaviour details. topic: '- (Required) The topic the Route subscribes to, wildcards allowed (e.g. thelab/+/temperature/#).' importStatements: [] + scaleway_ipam_ip: + subCategory: IPAM + name: scaleway_ipam_ip + title: scaleway_ipam_ip + examples: + - name: ip01 + manifest: |- + { + "source": [ + { + "private_network_id": "${scaleway_vpc_private_network.pn01.id}" + } + ] + } + references: + source.private_network_id: scaleway_vpc_private_network.pn01.id + dependencies: + scaleway_vpc.vpc01: |- + { + "name": "my vpc" + } + scaleway_vpc_private_network.pn01: |- + { + "ipv4_subnet": [ + { + "subnet": "172.16.32.0/22" + } + ], + "vpc_id": "${scaleway_vpc.vpc01.id}" + } + - name: ip01 + manifest: |- + { + "address": "172.16.32.7/22", + "source": [ + { + "private_network_id": "${scaleway_vpc_private_network.pn01.id}" + } + ] + } + references: + source.private_network_id: scaleway_vpc_private_network.pn01.id + dependencies: + scaleway_vpc.vpc01: |- + { + "name": "my vpc" + } + scaleway_vpc_private_network.pn01: |- + { + "ipv4_subnet": [ + { + "subnet": "172.16.32.0/22" + } + ], + "vpc_id": "${scaleway_vpc.vpc01.id}" + } + - name: ip01 + manifest: |- + { + "is_ipv6": true, + "source": [ + { + "private_network_id": "${scaleway_vpc_private_network.pn01.id}" + } + ] + } + references: + source.private_network_id: scaleway_vpc_private_network.pn01.id + dependencies: + scaleway_vpc.vpc01: |- + { + "name": "my vpc" + } + scaleway_vpc_private_network.pn01: |- + { + "ipv6_subnets": [ + { + "subnet": "fd46:78ab:30b8:177c::/64" + } + ], + "vpc_id": "${scaleway_vpc.vpc01.id}" + } + argumentDocs: + address: '- (Optional) Request a specific IP in the requested source pool.' + created_at: '- Date and time of IP''s creation (RFC 3339 format).' + id: '- The ID of the IP in IPAM.' + is_ipv6: '- (Optional) Defines whether to request an IPv6 instead of an IPv4.' + mac_address: '- The MAC Address of the resource the IP is attached to.' + name: '- The name of the resource the IP is attached to.' + private_network_id: '- The private network the IP lives in if the IP is a private IP.' + project_id: '- (Defaults to provider project_id) The ID of the project the IP is associated with.' + region: '- (Defaults to provider region) The region of the IP.' + resource: '- The IP resource.' + source: '- (Required) The source in which to book the IP.' + subnet_id: '- The private network subnet the IP lives in if the IP is a private IP in a private network.' + tags: '- (Optional) The tags associated with the IP.' + type: '- The type of resource the IP is attached to.' + updated_at: '- Date and time of IP''s last update (RFC 3339 format).' + zonal: '- The zone the IP lives in if the IP is a public zoned one' + zone: '- The zone of the IP.' + importStatements: [] + scaleway_job_definition: + subCategory: Jobs + name: scaleway_job_definition + title: scaleway_job_definition + examples: + - name: main + manifest: |- + { + "command": "ls", + "cpu_limit": 140, + "env": { + "foo": "bar" + }, + "image_uri": "docker.io/alpine:latest", + "memory_limit": 256, + "name": "testjob", + "timeout": "10m" + } + argumentDocs: + command: '- (Optional) The command that will be run in the container if specified.' + cpu_limit: '- (Required) The amount of vCPU computing resources to allocate to each container running the job.' + description: '- (Optional) The description of the job' + env: '- (Optional) The environment variables of the container.' + id: |- + - The ID of the Job Definition. + ~> Important: Serverless Jobs Definition's IDs are regional, which means they are of the form {region}/{id}, e.g. `fr-par/11111111-1111-1111-1111-111111111111 + image_uri: '- (Required) The uri of the container image that will be used for the job run.' + memory_limit: '- (Required) The memory computing resources in MB to allocate to each container running the job.' + name: '- (Optional) The name of the job.' + project_id: '- (Defaults to provider project_id) The ID of the project the Job is associated with.' + region: '- (Defaults to provider region) The region of the Job.' + timeout: '- (Optional) The job run timeout, in Go Time format (ex: 2h30m25s)' + importStatements: [] scaleway_k8s_cluster: subCategory: Kubernetes name: scaleway_k8s_cluster @@ -2490,8 +2935,11 @@ resources: "cni": "cilium", "delete_additional_resources": false, "name": "jack", + "private_network_id": "${scaleway_vpc_private_network.hedy.id}", "version": "1.24.3" } + references: + private_network_id: scaleway_vpc_private_network.hedy.id dependencies: scaleway_k8s_pool.john: |- { @@ -2500,6 +2948,7 @@ resources: "node_type": "DEV1-M", "size": 1 } + scaleway_vpc_private_network.hedy: '{}' - name: henry manifest: |- { @@ -2536,12 +2985,15 @@ resources: "delete_additional_resources": false, "description": "my awesome cluster", "name": "john", + "private_network_id": "${scaleway_vpc_private_network.hedy.id}", "tags": [ "i'm an awesome tag", "yay" ], "version": "1.24.3" } + references: + private_network_id: scaleway_vpc_private_network.hedy.id dependencies: scaleway_k8s_pool.john: |- { @@ -2554,14 +3006,18 @@ resources: "node_type": "DEV1-M", "size": 3 } + scaleway_vpc_private_network.hedy: '{}' - name: joy manifest: |- { "cni": "flannel", "delete_additional_resources": false, "name": "joy", + "private_network_id": "${scaleway_vpc_private_network.hedy.id}", "version": "1.24.3" } + references: + private_network_id: scaleway_vpc_private_network.hedy.id dependencies: null_resource.kubeconfig: |- { @@ -2581,14 +3037,18 @@ resources: "node_type": "DEV1-M", "size": 1 } + scaleway_vpc_private_network.hedy: '{}' - name: joy manifest: |- { "cni": "flannel", "delete_additional_resources": false, "name": "joy", + "private_network_id": "${scaleway_vpc_private_network.hedy.id}", "version": "1.24.3" } + references: + private_network_id: scaleway_vpc_private_network.hedy.id dependencies: helm_release.nginx_ingress: |- { @@ -2642,6 +3102,7 @@ resources: "project_id": "${scaleway_k8s_cluster.joy.project_id}", "zone": "fr-par-1" } + scaleway_vpc_private_network.hedy: '{}' - name: jack manifest: |- { @@ -2714,7 +3175,7 @@ resources: name: '- (Required) The name for the Kubernetes cluster.' open_id_connect_config: '- (Optional) The OpenID Connect configuration of the cluster' organization_id: '- The organization ID the cluster is associated with.' - private_network_id: '- (Optional) The ID of the private network of the cluster.' + private_network_id: '- (Required) The ID of the private network of the cluster.' project_id: '- (Defaults to provider project_id) The ID of the project the cluster is associated with.' region: '- (Defaults to provider region) The region in which the cluster should be created.' required_claim: '- (Optional) Multiple key=value pairs that describes a required claim in the ID Token' @@ -2838,6 +3299,9 @@ resources: - (Optional) The placement group the nodes of the pool will be attached to. ~> Important: Updates to this field will recreate a new resource. public_ip: '- The public IPv4.' + public_ip_disabled: |- + - (Defaults to false) Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway. + ~> Important: Updates to this field will recreate a new resource. public_ip_v6: '- The public IPv6.' region: '- (Defaults to provider region) The region in which the pool should be created.' root_volume_size_in_gb: '- (Optional) The size of the system volume of the nodes in gigabyte' @@ -2850,7 +3314,7 @@ resources: updated_at: '- The last update date of the pool.' upgrade_policy: '- (Optional) The Pool upgrade policy' version: '- The version of the pool.' - wait_for_pool_ready: '- (Default to false) Whether to wait for the pool to be ready.' + wait_for_pool_ready: '- (Defaults to false) Whether to wait for the pool to be ready.' zone: |- - (Defaults to provider zone) The zone in which the pool should be created. ~> Important: Updates to this field will recreate a new resource. @@ -2875,6 +3339,17 @@ resources: { "zone": "fr-par-1" } + - name: base + manifest: |- + { + "assign_flexible_ip": false, + "ip_id": "${scaleway_lb_ip.main.id}", + "type": "LB-S", + "zone": "${scaleway_lb_ip.main.zone}" + } + references: + ip_id: scaleway_lb_ip.main.id + zone: scaleway_lb_ip.main.zone - name: main manifest: |- { @@ -2981,11 +3456,12 @@ resources: "name": "MyTest" } argumentDocs: + assign_flexible_ip: '- (Optional) Defines whether to automatically assign a flexible public IP to the load-balancer.' description: '- (Optional) The description of the load-balancer.' dhcp_config: '- (Optional) Set to true if you want to let DHCP assign IP addresses. See below.' id: '- The ID of the load-balancer.' ip_address: '- The load-balance public IP Address' - ip_id: '- (Required) The ID of the associated LB IP. See below.' + ip_id: '- (Optional) The ID of the associated LB IP. See below.' name: '- (Optional) The name of the load-balancer.' organization_id: '- The organization ID the load-balancer is associated with.' private_network: will recreate the attachment. @@ -2995,7 +3471,7 @@ resources: ssl_compatibility_level: '- (Optional) Enforces minimal SSL version (in SSL/TLS offloading context). Please check possible values.' static_config: '- (Optional) Define a local ip address of your choice for the load balancer instance. See below.' tags: '- (Optional) The tags associated with the load-balancers.' - type: '- (Required) The type of the load-balancer. Please check the migration section to upgrade the type' + type: '- (Required) The type of the load-balancer. Please check the migration section to upgrade the type.' zone: '- (Defaults to provider zone) The zone of the load-balancer.' importStatements: [] scaleway_lb_acl: @@ -3497,179 +3973,159 @@ resources: updated_at: '- The date at which the route was last updated.' zone: '- (Defaults to provider zone) The zone in which the load-balancer was created.' importStatements: [] - scaleway_mnq_credential: + scaleway_mnq_nats_account: subCategory: Messaging and Queuing - name: scaleway_mnq_credential - title: scaleway_mnq_credential + name: scaleway_mnq_nats_account + title: scaleway_mnq_nats_account examples: - name: main manifest: |- { - "name": "creed-ns", - "namespace_id": "${scaleway_mnq_namespace.main.id}" + "name": "nats-account" } - references: - namespace_id: scaleway_mnq_namespace.main.id - dependencies: - scaleway_mnq_namespace.main: |- - { - "name": "mnq-ns", - "protocol": "nats" - } + argumentDocs: + endpoint: '- The endpoint of the NATS service for this account.' + id: '- The ID of the account' + name: '- (Optional) The unique name of the nats account.' + project_id: |- + - (Defaults to provider project_id) The ID of the project the + account is associated with. + region: |- + - (Defaults to provider region). The region + in which the account should be created. + importStatements: [] + scaleway_mnq_nats_credentials: + subCategory: Messaging and Queuing + name: scaleway_mnq_nats_credentials + title: scaleway_mnq_nats_credentials + examples: - name: main manifest: |- { - "name": "your-creed-sns", - "namespace_id": "${scaleway_mnq_namespace.main.id}", - "sqs_sns_credentials": [ - { - "permissions": [ - { - "can_manage": true, - "can_publish": true, - "can_receive": true - } - ] - } - ] + "account_id": "${scaleway_mnq_nats_account.main.id}" } references: - namespace_id: scaleway_mnq_namespace.main.id + account_id: scaleway_mnq_nats_account.main.id dependencies: - scaleway_mnq_namespace.main: |- + scaleway_mnq_nats_account.main: |- { - "name": "your-namespace", - "protocol": "sqs_sns" + "name": "nats-account" } argumentDocs: - access_key: '- The ID of the key.' - can_manage: '- (Optional). Defines if user can manage the associated resource(s).' - can_publish: '- (Optional). Defines if user can publish messages to the service.' - can_receive: '- (Optional). Defines if user can receive messages from the service.' - content: '- Raw content of the NATS credentials file.' - id: '- The credential ID.' - name: '- (Optional) The credential name..' - namespace_id: '- (Required) The namespace containing the Credential.' - nats_credentials: '- Credentials file used to connect to the NATS service.' - permissions: List of permissions associated to this Credential. Only one of permissions may be set. - protocol: '- The protocol associated to the Credential. Possible values are nats and sqs_sns.' + account_id: '- (Required) The ID of the nats account the credentials are generated from' + file: '- The content of the credentials file.' + id: '- The ID of the credentials' + name: '- (Optional) The unique name of the nats credentials.' region: |- - (Defaults to provider region). The region - in which the namespace should be created. - secret_key: '- The Secret value of the key.' - sqs_sns_credentials: '- Credential used to connect to the SQS/SNS service.' + in which the account exists. importStatements: [] - scaleway_mnq_namespace: + scaleway_mnq_sqs: subCategory: Messaging and Queuing - name: scaleway_mnq_namespace - title: scaleway_mnq_namespace + name: scaleway_mnq_sqs + title: scaleway_mnq_sqs examples: - name: main + manifest: '{}' + - name: for_project manifest: |- { - "name": "mnq-ns", - "protocol": "nats", - "region": "fr-par" + "project_id": "${scaleway_account_project.main.id}" } + references: + project_id: scaleway_account_project.main.id argumentDocs: - created_at: '- The date and time the Namespace was created.' - endpoint: '- The endpoint of the service matching the Namespace protocol.' - id: '- The ID of the namespace' - name: '- (Optional) The unique name of the namespace.' - project_id: |- - - (Defaults to provider project_id) The ID of the project the - namespace is associated with. - protocol: |- - - (Required) The protocol to apply on your namespace. Please check our - supported protocols. + endpoint: '- The endpoint of the SQS service for this project.' + id: '- The ID of the project' + project_id: '- (Defaults to provider project_id) The ID of the project the sqs will be enabled for.' region: |- - (Defaults to provider region). The region - in which the namespace should be created. - updated_at: '- The date and time the Namespace was updated.' + in which sqs will be enabled. importStatements: [] - scaleway_mnq_queue: + scaleway_mnq_sqs_credentials: subCategory: Messaging and Queuing - name: scaleway_mnq_queue - title: scaleway_mnq_queue + name: scaleway_mnq_sqs_credentials + title: scaleway_mnq_sqs_credentials examples: - - name: my_queue + - name: main manifest: |- { - "name": "my-queue", - "namespace_id": "${scaleway_mnq_namespace.main.id}", - "nats": [ + "name": "sqs-credentials", + "permissions": [ { - "credentials": "${scaleway_mnq_credential.main.nats_credentials[0].content}" + "can_manage": false, + "can_publish": false, + "can_receive": true } - ] + ], + "project_id": "${scaleway_mnq_sqs.main.project_id}" } references: - namespace_id: scaleway_mnq_namespace.main.id - nats.credentials: scaleway_mnq_credential.main.nats_credentials[0].content + project_id: scaleway_mnq_sqs.main.project_id dependencies: - scaleway_mnq_credential.main: |- - { - "namespace_id": "${scaleway_mnq_namespace.main.id}" - } - scaleway_mnq_namespace.main: |- - { - "protocol": "nats" - } - - name: my_queue + scaleway_mnq_sqs.main: '{}' + argumentDocs: + access_key: '- The ID of the key.' + can_manage: '- (Optional). Defines if user can manage the associated resource(s).' + can_publish: '- (Optional). Defines if user can publish messages to the service.' + can_receive: '- (Optional). Defines if user can receive messages from the service.' + id: '- The ID of the credentials' + name: '- (Optional) The unique name of the sqs credentials.' + permissions: '- (Optional). List of permissions associated to these credentials. Only one of permissions may be set.' + project_id: '- (Defaults to provider project_id) The ID of the project the sqs is enabled for.' + region: '- (Defaults to provider region). The region in which sqs is enabled.' + secret_key: '- The secret value of the key.' + importStatements: [] + scaleway_mnq_sqs_queue: + subCategory: Messaging and Queuing + name: scaleway_mnq_sqs_queue + title: scaleway_mnq_sqs_queue + examples: + - name: main manifest: |- { + "access_key": "${scaleway_mnq_sqs_credentials.main.access_key}", + "endpoint": "${scaleway_mnq_sqs.main.endpoint}", "name": "my-queue", - "namespace_id": "${scaleway_mnq_namespace.main.id}", - "sqs": [ - { - "access_key": "${scaleway_mnq_credential.main.sqs_sns_credentials.0.access_key}", - "secret_key": "${scaleway_mnq_credential.main.sqs_sns_credentials.0.secret_key}" - } - ] + "project_id": "${scaleway_mnq_sqs.main.project_id}", + "secret_key": "${scaleway_mnq_sqs_credentials.main.secret_key}" } references: - namespace_id: scaleway_mnq_namespace.main.id - sqs.access_key: scaleway_mnq_credential.main.sqs_sns_credentials.0.access_key - sqs.secret_key: scaleway_mnq_credential.main.sqs_sns_credentials.0.secret_key + access_key: scaleway_mnq_sqs_credentials.main.access_key + endpoint: scaleway_mnq_sqs.main.endpoint + project_id: scaleway_mnq_sqs.main.project_id + secret_key: scaleway_mnq_sqs_credentials.main.secret_key dependencies: - scaleway_mnq_credential.main: |- + scaleway_mnq_sqs.main: '{}' + scaleway_mnq_sqs_credentials.main: |- { - "namespace_id": "${scaleway_mnq_namespace.main.id}", - "sqs_sns_credentials": [ + "name": "sqs-credentials", + "permissions": [ { - "permissions": [ - { - "can_manage": true, - "can_publish": true, - "can_receive": true - } - ] + "can_manage": false, + "can_publish": false, + "can_receive": true } - ] - } - scaleway_mnq_namespace.main: |- - { - "protocol": "sqs_sns" + ], + "project_id": "${scaleway_mnq_sqs.main.project_id}" } argumentDocs: access_key: '- (Required) The access key of the SQS queue.' content_based_deduplication: '- (Optional) Specifies whether to enable content-based deduplication. Defaults to false.' - credentials: '- (Required) Line jump separated key and seed.' - endpoint: '- (Optional) The endpoint of the SQS queue. Can contain a {region} placeholder. Defaults to http://sqs-sns.mnq.{region}.scw.cloud.' + endpoint: '- (Required) The endpoint of the SQS queue. Can contain a {region} placeholder. Defaults to http://sqs-sns.mnq.{region}.scw.cloud.' fifo_queue: '- (Optional) Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to false.' + id: '- The ID of the queue with format {region/{project-id}/{queue-name}' message_max_age: '- (Optional) The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600.' message_max_size: '- (Optional) The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144.' - name: '- (Optional) The name of the queue. Either name or name_prefix is required. Conflicts with name_prefix.' + name: '- (Optional) The unique name of the sqs queue. Either name or name_prefix is required. Conflicts with name_prefix.' name_prefix: '- (Optional) Creates a unique name beginning with the specified prefix. Conflicts with name.' - namespace_id: '- (Required) The ID of the Namespace associated to.' - nats: '- (Optional) The NATS attributes of the queue. Conflicts with sqs.' + project_id: '- (Defaults to provider project_id) The ID of the project the sqs is enabled for.' receive_wait_time_seconds: '- (Optional) The number of seconds to wait for a message to arrive in the queue before returning. Must be between 0 and 20. Defaults to 0.' - retention_policy: '- (Optional) The retention policy of the queue. See https://docs.nats.io/nats-concepts/jetstream/streams#retentionpolicy for more information. Defaults to workqueue.' + region: '- (Defaults to provider region). The region in which sqs is enabled.' secret_key: '- (Required) The secret key of the SQS queue.' - sqs: '- (Optional) The SQS attributes of the queue. Conflicts with nats.' + url: '- The URL of the queue.' visibility_timeout_seconds: '- (Optional) The number of seconds a message is hidden from other consumers. Must be between 0 and 43_200. Defaults to 30.' - importStatements: - - $ terraform import scaleway_mnq_queue.my_queue fr-par/11111111111111111111111111111111/my-queue + importStatements: [] scaleway_object: subCategory: Object Storage name: scaleway_object @@ -3776,7 +4232,7 @@ resources: }, "transition": [ { - "days": 0, + "days": 1, "storage_class": "GLACIER" } ] @@ -3803,6 +4259,9 @@ resources: expose_headers: (Optional) Specifies expose header in the response. force_destroy: '- (Optional) Enable deletion of objects in bucket before destroying, locked objects or under legal hold are also deleted and not recoverable' id: '- (Optional) Unique identifier for the rule. Must be less than or equal to 255 characters in length.' + key/value: |- + tags yet, so only the tags' values will be displayed. + Keep in mind that if you make any change to your bucket's tags using the console, it will overwrite them with the format value/value. max_age_seconds: (Optional) Specifies time in seconds that browser can cache the response for a preflight request. name: '- (Required) The name of the bucket.' prefix: '- (Optional) Object key prefix identifying one or more objects to which the rule applies.' @@ -3936,12 +4395,17 @@ resources: - name: policy manifest: |- { - "bucket": "${scaleway_object_bucket.bucket.name}", - "policy": "${jsonencode(\n {\n Version = \"2023-04-17\",\n Id = \"MyBucketPolicy\",\n Statement = [\n {\n Sid = \"Delegate access\",\n Effect = \"Allow\",\n Principal = {\n SCW = \"application_id:\u003cAPPLICATION_ID\u003e\"\n },\n Action = \"s3:ListBucket\",\n Resource = [\n \"${scaleway_object_bucket.bucket.name}\",\n \"${scaleway_object_bucket.bucket.name}/*\"\n ]\n }\n ]\n }\n )}" + "bucket": "${scaleway_object_bucket.bucket.id}", + "policy": "${jsonencode(\n {\n Version = \"2023-04-17\",\n Id = \"MyBucketPolicy\",\n Statement = [\n {\n Sid = \"Delegate access\",\n Effect = \"Allow\",\n Principal = {\n SCW = \"application_id:${scaleway_iam_application.main.id}\"\n },\n Action = \"s3:ListBucket\",\n Resource = [\n \"${scaleway_object_bucket.bucket.name}\",\n \"${scaleway_object_bucket.bucket.name}/*\"\n ]\n }\n ]\n }\n )}" } references: - bucket: scaleway_object_bucket.bucket.name + bucket: scaleway_object_bucket.bucket.id dependencies: + scaleway_iam_application.main: |- + { + "description": "a description", + "name": "My application" + } scaleway_object_bucket.bucket: |- { "name": "some-unique-name" @@ -3949,11 +4413,11 @@ resources: - name: main manifest: |- { - "bucket": "${scaleway_object_bucket.bucket.name}", + "bucket": "${scaleway_object_bucket.bucket.id}", "policy": "${data.aws_iam_policy_document.policy.json}" } references: - bucket: scaleway_object_bucket.bucket.name + bucket: scaleway_object_bucket.bucket.id policy: data.aws_iam_policy_document.policy.json dependencies: scaleway_object_bucket.bucket: |- @@ -4010,7 +4474,7 @@ resources: } scaleway_object_bucket_policy.main: |- { - "bucket": "${scaleway_object_bucket.main.name}", + "bucket": "${scaleway_object_bucket.main.id}", "policy": "${jsonencode(\n {\n \"Version\" = \"2012-10-17\",\n \"Id\" = \"MyPolicy\",\n \"Statement\" = [\n {\n \"Sid\" = \"GrantToEveryone\",\n \"Effect\" = \"Allow\",\n \"Principal\" = \"*\",\n \"Action\" = [\n \"s3:GetObject\"\n ],\n \"Resource\":[\n \"\u003cbucket-name\u003e/*\"\n ]\n }\n ]\n })}" } argumentDocs: @@ -4175,6 +4639,7 @@ resources: manifest: |- { "disable_backup": true, + "disable_public_endpoint": true, "engine": "PostgreSQL-11", "is_ha_cluster": false, "name": "test-rdb", @@ -4215,6 +4680,7 @@ resources: backup_schedule_retention: '- (Optional) Backup schedule retention in days.' certificate: '- Certificate of the database instance.' disable_backup: '- (Optional) Disable automated backup for the database instance.' + disable_public_endpoint: '- (Optional) Disable the default public endpoint' endpoint_id: '- The ID of the endpoint of the load balancer.' endpoint_ip: '- (Deprecated) The IP of the Database Instance.' endpoint_port: '- (Deprecated) The port of the Database Instance.' @@ -4370,6 +4836,7 @@ resources: region: |- - (Defaults to provider region) The region in which the Database read replica should be created. + same_zone: '- (Defaults to false) Defines whether to create the replica in the same availability zone as the main instance nodes or not.' service_ip: |- - (Optional) The IP network address within the private subnet. This must be an IPv4 address with a CIDR notation. The IP network address within the private subnet is determined by the IP Address Management (IPAM) @@ -4649,13 +5116,25 @@ resources: id: '- The ID of the Transaction Email Domain.' last_error: '- The error message if the last check failed.' last_valid_at: '- The date and time the domain was last found to be valid (RFC 3339 format).' + mx_blackhole: '- The Scaleway''s blackhole MX server to use if you do not have one.' name: |- - (Required) The domain name, must not be used in another Transactional Email Domain. ~> Important: Updates to name will recreate the domain. next_check_at: '- The date and time of the next scheduled check (RFC 3339 format).' + previous_score: '- The previously-calculated domain''s reputation score.' + previous_scored_at: '- The time and date the previous reputation score was calculated.' project_id: '- (Defaults to provider project_id) The ID of the project the domain is associated with.' region: '- (Defaults to provider region). The region in which the domain should be created.' + reputation: '- The domain''s reputation.' revoked_at: '- The date and time of the revocation of the domain (RFC 3339 format).' + score: '- A range from 0 to 100 that determines your domain''s reputation score.' + scored_at: '- The time and date the score was calculated.' + smtp_host: '- The SMTP host to use to send emails.' + smtp_port: '- The SMTP port to use to send emails over TLS.' + smtp_port_alternative: '- The SMTP port to use to send emails over TLS.' + smtp_port_unsecure: '- The SMTP port to use to send emails.' + smtps_port: '- The SMTPS port to use to send emails over TLS Wrapper.' + smtps_port_alternative: '- The SMTPS port to use to send emails over TLS Wrapper.' spf_config: '- The snippet of the SPF record that should be registered in the DNS zone.' status: '- The status of the Transaction Email Domain.' importStatements: [] @@ -4689,6 +5168,87 @@ resources: name: scaleway_vpc_gateway_network title: scaleway_vpc_gateway_network examples: + - name: main + manifest: |- + { + "enable_masquerade": true, + "gateway_id": "${scaleway_vpc_public_gateway.pg01.id}", + "ipam_config": [ + { + "push_default_route": true + } + ], + "private_network_id": "${scaleway_vpc_private_network.pn01.id}" + } + references: + gateway_id: scaleway_vpc_public_gateway.pg01.id + private_network_id: scaleway_vpc_private_network.pn01.id + dependencies: + scaleway_vpc.vpc01: |- + { + "name": "my vpc" + } + scaleway_vpc_private_network.pn01: |- + { + "ipv4_subnet": [ + { + "subnet": "172.16.64.0/22" + } + ], + "name": "pn_test_network", + "vpc_id": "${scaleway_vpc.vpc01.id}" + } + scaleway_vpc_public_gateway.pg01: |- + { + "name": "foobar", + "type": "VPC-GW-S" + } + - name: main + manifest: |- + { + "enable_masquerade": true, + "gateway_id": "${scaleway_vpc_public_gateway.pg01.id}", + "ipam_config": [ + { + "ipam_ip_id": "${scaleway_ipam_ip.ip01.id}", + "push_default_route": true + } + ], + "private_network_id": "${scaleway_vpc_private_network.pn01.id}" + } + references: + gateway_id: scaleway_vpc_public_gateway.pg01.id + ipam_config.ipam_ip_id: scaleway_ipam_ip.ip01.id + private_network_id: scaleway_vpc_private_network.pn01.id + dependencies: + scaleway_ipam_ip.ip01: |- + { + "address": "172.16.64.7/22", + "source": [ + { + "private_network_id": "${scaleway_vpc_private_network.pn01.id}" + } + ] + } + scaleway_vpc.vpc01: |- + { + "name": "my vpc" + } + scaleway_vpc_private_network.pn01: |- + { + "ipv4_subnet": [ + { + "subnet": "172.16.64.0/22" + } + ], + "name": "pn_test_network", + "vpc_id": "${scaleway_vpc.vpc01.id}" + } + scaleway_vpc_public_gateway.pg01: |- + { + "name": "foobar", + "type": "VPC-GW-S" + } - name: main manifest: |- { @@ -4744,14 +5304,18 @@ resources: argumentDocs: cleanup_dhcp: '- (Defaults to false) Remove DHCP config on this network on destroy. It requires DHCP id.' created_at: '- The date and time of the creation of the gateway network.' - dhcp_id: '- (Required) The ID of the public gateway DHCP config. Only one of dhcp_id and static_address should be specified.' + dhcp_id: '- (Required) The ID of the public gateway DHCP config. Only one of dhcp_id, static_address and ipam_config should be specified.' enable_dhcp: '- (Defaults to true) Enable DHCP config on this network. It requires DHCP id.' enable_masquerade: '- (Defaults to true) Enable masquerade on this network' gateway_id: '- (Required) The ID of the public gateway.' id: '- The ID of the gateway network.' + ipam_config: '- Auto-configure the Gateway Network using Scaleway''s IPAM (IP address management service). Only one of dhcp_id, static_address and ipam_config should be specified.' + ipam_ip_id: '- Use this IPAM-booked IP ID as the Gateway''s IP in this Private Network.' mac_address: '- The mac address of the creation of the gateway network.' private_network_id: '- (Required) The ID of the private network.' - static_address: '- Enable DHCP config on this network. Only one of dhcp_id and static_address should be specified.' + push_default_route: '- Defines whether the default route is enabled on that Gateway Network.' + static_address: '- Enable DHCP config on this network. Only one of dhcp_id, static_address and ipam_config should be specified.' + status: '- The status of the Public Gateway''s connection to the Private Network.' updated_at: '- The date and time of the last update of the gateway network.' zone: '- (Defaults to provider zone) The zone in which the gateway network should be created.' importStatements: [] @@ -4835,6 +5399,7 @@ resources: name: '- (Optional) The name of the public gateway. If not provided it will be randomly generated.' organization_id: '- The organization ID the public gateway is associated with.' project_id: '- (Defaults to provider project_id) The ID of the project the public gateway is associated with.' + status: '- The status of the public gateway.' tags: '- (Optional) The tags associated with the public gateway.' type: '- (Required) The gateway type.' updated_at: '- The date and time of the last update of the public gateway.' diff --git a/config/provider.go b/config/provider.go index 5b4f293..2cde61f 100644 --- a/config/provider.go +++ b/config/provider.go @@ -21,7 +21,6 @@ import ( "github.com/scaleway/provider-scaleway/config/iot" "github.com/scaleway/provider-scaleway/config/k8s" "github.com/scaleway/provider-scaleway/config/lb" - "github.com/scaleway/provider-scaleway/config/mnq" "github.com/scaleway/provider-scaleway/config/object" "github.com/scaleway/provider-scaleway/config/rdb" "github.com/scaleway/provider-scaleway/config/redis" @@ -66,7 +65,6 @@ func GetProvider() *ujconfig.Provider { iot.Configure, k8s.Configure, lb.Configure, - mnq.Configure, object.Configure, rdb.Configure, redis.Configure, diff --git a/config/schema.json b/config/schema.json index a17bfca..b262def 100644 --- a/config/schema.json +++ b/config/schema.json @@ -1 +1 @@ -{"format_version":"1.0","provider_schemas":{"registry.terraform.io/scaleway/scaleway":{"provider":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"The Scaleway access key.","description_kind":"plain","optional":true},"api_url":{"type":"string","description":"The Scaleway API URL to use.","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The Scaleway organization ID.","description_kind":"plain","optional":true},"profile":{"type":"string","description":"The Scaleway profile to use.","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The Scaleway project ID.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"secret_key":{"type":"string","description":"The Scaleway secret Key.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"resource_schemas":{"scaleway_account_project":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the Project (Format ISO 8601)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the project","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the project","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Project (Format ISO 8601)","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_account_ssh_key":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the iam SSH Key","description_kind":"plain","computed":true},"disabled":{"type":"bool","description":"The SSH key status","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam SSH key","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"public_key":{"type":"string","description":"The public SSH key","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the iam SSH Key","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_apple_silicon_server":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the server","description_kind":"plain","computed":true},"deletable_at":{"type":"string","description":"The minimal date and time on which you can delete this server due to Apple licence","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"IPv4 address of the server","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the server","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"The state of the server","description_kind":"plain","computed":true},"type":{"type":"string","description":"Type of the server","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the server","description_kind":"plain","computed":true},"vnc_url":{"type":"string","description":"VNC url use to connect remotely to the desktop GUI","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_baremetal_server":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Some description to associate to the server, max 255 characters","description_kind":"plain","optional":true},"domain":{"type":"string","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"Hostname of the server","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"install_config_afterward":{"type":"bool","description":"If True, this boolean allows to create a server without the install config if you want to provide it later","description_kind":"plain","optional":true},"ips":{"type":["list",["object",{"address":"string","id":"string","reverse":"string","version":"string"}]],"description":"IP addresses attached to the server.","description_kind":"plain","computed":true},"ipv4":{"type":["list",["object",{"address":"string","id":"string","reverse":"string","version":"string"}]],"description":"IPv4 addresses attached to the server","description_kind":"plain","computed":true},"ipv6":{"type":["list",["object",{"address":"string","id":"string","reverse":"string","version":"string"}]],"description":"IPv6 addresses attached to the server","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the server","description_kind":"plain","optional":true,"computed":true},"offer":{"type":"string","description":"ID or name of the server offer","description_kind":"plain","required":true},"offer_id":{"type":"string","description":"ID of the server offer","description_kind":"plain","computed":true},"offer_name":{"type":"string","description":"Name of the server offer","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"os":{"type":"string","description":"The base image of the server","description_kind":"plain","optional":true},"os_name":{"type":"string","description":"The base image name of the server","description_kind":"plain","computed":true},"password":{"type":"string","description":"Password used for the installation.","description_kind":"plain","optional":true,"sensitive":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"reinstall_on_config_changes":{"type":"bool","description":"If True, this boolean allows to reinstall the server on SSH key IDs, user or password changes","description_kind":"plain","optional":true},"service_password":{"type":"string","description":"Password used for the service to install.","description_kind":"plain","optional":true,"sensitive":true},"service_user":{"type":"string","description":"User used for the service to install.","description_kind":"plain","optional":true,"computed":true},"ssh_key_ids":{"type":["list","string"],"description":"Array of SSH key IDs allowed to SSH to the server\n\n**NOTE** : If you are attempting to update your SSH key IDs, it will induce the reinstall of your server. \nIf this behaviour is wanted, please set 'reinstall_on_ssh_key_changes' argument to true.","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Array of tags to associate with the server","description_kind":"plain","optional":true,"computed":true},"user":{"type":"string","description":"User used for the installation.","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"options":{"nesting_mode":"set","block":{"attributes":{"expires_at":{"type":"string","description":"Auto expire the option after this date","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"IDs of the options","description_kind":"plain","required":true},"name":{"type":"string","description":"name of the option","description_kind":"plain","computed":true}},"description":"The options to enable on server","description_kind":"plain"}},"private_network":{"nesting_mode":"set","block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the private network","description_kind":"plain","computed":true},"id":{"type":"string","description":"The private network ID","description_kind":"plain","required":true},"status":{"type":"string","description":"The private network status","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the private network","description_kind":"plain","computed":true},"vlan":{"type":"number","description":"The VLAN ID associated to the private network","description_kind":"plain","computed":true}},"description":"The private networks to attach to the server","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"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"}},"scaleway_cockpit":{"version":0,"block":{"attributes":{"endpoints":{"type":["list",["object",{"alertmanager_url":"string","grafana_url":"string","logs_url":"string","metrics_url":"string"}]],"description":"Endpoints","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plan":{"type":"string","description":"Name or ID of the plan","description_kind":"plain","optional":true},"plan_id":{"type":"string","description":"The plan ID of the cockpit","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_cockpit_grafana_user":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"login":{"type":"string","description":"The login of the Grafana user","description_kind":"plain","required":true},"password":{"type":"string","description":"The password of the Grafana user","description_kind":"plain","computed":true,"sensitive":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description":"The role of the Grafana user","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_cockpit_token":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the token","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"secret_key":{"type":"string","description":"The secret key of the token","description_kind":"plain","computed":true,"sensitive":true}},"block_types":{"scopes":{"nesting_mode":"list","block":{"attributes":{"query_logs":{"type":"bool","description":"Query logs","description_kind":"plain","optional":true},"query_metrics":{"type":"bool","description":"Query metrics","description_kind":"plain","optional":true},"setup_alerts":{"type":"bool","description":"Setup alerts","description_kind":"plain","optional":true},"setup_logs_rules":{"type":"bool","description":"Setup logs rules","description_kind":"plain","optional":true},"setup_metrics_rules":{"type":"bool","description":"Setup metrics rules","description_kind":"plain","optional":true},"write_logs":{"type":"bool","description":"Write logs","description_kind":"plain","optional":true},"write_metrics":{"type":"bool","description":"Write metrics","description_kind":"plain","optional":true}},"description":"Endpoints","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_container":{"version":0,"block":{"attributes":{"cpu_limit":{"type":"number","description":"The amount of vCPU computing resources to allocate to each container. Defaults to 70.","description_kind":"plain","optional":true,"computed":true},"cron_status":{"type":"string","description":"The cron status","description_kind":"plain","computed":true},"deploy":{"type":"bool","description":"This allows you to control your production environment","description_kind":"plain","optional":true},"description":{"type":"string","description":"The container description","description_kind":"plain","optional":true},"domain_name":{"type":"string","description":"The native container domain name.","description_kind":"plain","computed":true},"environment_variables":{"type":["map","string"],"description":"The environment variables to be injected into your container at runtime.","description_kind":"plain","optional":true,"computed":true},"error_message":{"type":"string","description":"The error description","description_kind":"plain","computed":true},"http_option":{"type":"string","description":"HTTP traffic configuration","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_concurrency":{"type":"number","description":"The maximum the number of simultaneous requests your container can handle at the same time. Defaults to 50.","description_kind":"plain","optional":true,"computed":true},"max_scale":{"type":"number","description":"The maximum of number of instances this container can scale to. Default to 20.","description_kind":"plain","optional":true,"computed":true},"memory_limit":{"type":"number","description":"The memory computing resources in MB to allocate to each container. Defaults to 128.","description_kind":"plain","optional":true,"computed":true},"min_scale":{"type":"number","description":"The minimum of running container instances continuously. Defaults to 0.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The container name","description_kind":"plain","optional":true,"computed":true},"namespace_id":{"type":"string","description":"The container namespace associated","description_kind":"plain","required":true},"port":{"type":"number","description":"The port to expose the container. Defaults to 8080","description_kind":"plain","optional":true,"computed":true},"privacy":{"type":"string","description":"The privacy type define the way to authenticate to your container","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"The communication protocol http1 or h2c. Defaults to http1.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"registry_image":{"type":"string","description":"The scaleway registry image address","description_kind":"plain","optional":true,"computed":true},"registry_sha256":{"type":"string","description":"The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string","description_kind":"plain","optional":true},"secret_environment_variables":{"type":["map","string"],"description":"The secret environment variables to be injected into your container at runtime.","description_kind":"plain","optional":true,"sensitive":true},"status":{"type":"string","description":"The container status","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"number","description":"The maximum amount of time in seconds during which your container can process a request before we stop it. Defaults to 300s.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_container_cron":{"version":0,"block":{"attributes":{"args":{"type":"string","description":"Cron arguments as json object to pass through during execution.","description_kind":"plain","required":true},"container_id":{"type":"string","description":"The Container ID to link with your trigger.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"schedule":{"type":"string","description":"Cron format string, e.g. 0 * * * * or @hourly, as schedule time of its jobs to be created and executed.","description_kind":"plain","required":true},"status":{"type":"string","description":"Cron job status.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_container_domain":{"version":0,"block":{"attributes":{"container_id":{"type":"string","description":"Container the domain will be bound to","description_kind":"plain","required":true},"hostname":{"type":"string","description":"Domain's hostname","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"url":{"type":"string","description":"URL used to query the container","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_container_namespace":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the container namespace","description_kind":"plain","optional":true},"destroy_registry":{"type":"bool","description":"Destroy registry on deletion","description_kind":"plain","deprecated":true,"optional":true},"environment_variables":{"type":["map","string"],"description":"The environment variables of the container namespace","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the container namespace","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"registry_endpoint":{"type":"string","description":"The endpoint reachable by docker","description_kind":"plain","computed":true},"registry_namespace_id":{"type":"string","description":"The ID of the registry namespace","description_kind":"plain","computed":true},"secret_environment_variables":{"type":["map","string"],"description":"The secret environment variables of the container namespace","description_kind":"plain","optional":true,"sensitive":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_container_token":{"version":0,"block":{"attributes":{"container_id":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"expires_at":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"namespace_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"token":{"type":"string","description_kind":"plain","computed":true,"sensitive":true}},"description_kind":"plain"}},"scaleway_container_trigger":{"version":0,"block":{"attributes":{"container_id":{"type":"string","description":"The ID of the container to create a trigger for","description_kind":"plain","required":true},"description":{"type":"string","description":"The trigger description","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The trigger name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"sqs":{"nesting_mode":"list","block":{"attributes":{"namespace_id":{"type":"string","description":"ID of the mnq namespace","description_kind":"plain","required":true},"project_id":{"type":"string","description":"Project ID of the project where the mnq sqs exists, defaults to provider project_id","description_kind":"plain","optional":true,"computed":true},"queue":{"type":"string","description":"Name of the queue","description_kind":"plain","required":true},"region":{"type":"string","description":"Region where the mnq sqs exists, defaults to function's region","description_kind":"plain","optional":true,"computed":true}},"description":"Config for sqs based trigger using scaleway mnq","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_domain_record":{"version":0,"block":{"attributes":{"data":{"type":"string","description":"The data of the record","description_kind":"plain","required":true},"dns_zone":{"type":"string","description":"The zone you want to add the record in","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keep_empty_zone":{"type":"bool","description":"When destroy a resource record, if a zone have only NS, delete the zone","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the record","description_kind":"plain","optional":true},"priority":{"type":"number","description":"The priority of the record","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"root_zone":{"type":"bool","description":"Does the DNS zone is the root zone or not","description_kind":"plain","computed":true},"ttl":{"type":"number","description":"The ttl of the record","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of the record","description_kind":"plain","required":true}},"block_types":{"geo_ip":{"nesting_mode":"list","block":{"block_types":{"matches":{"nesting_mode":"list","block":{"attributes":{"continents":{"type":["list","string"],"description":"List of continents (eg: EU for Europe, NA for North America, AS for Asia...). List of all continents code: https://api.scaleway.com/domain-private/v2beta1/continents","description_kind":"plain","optional":true},"countries":{"type":["list","string"],"description":"List of countries (eg: FR for France, US for the United States, GB for Great Britain...). List of all countries code: https://api.scaleway.com/domain-private/v2beta1/countries","description_kind":"plain","optional":true},"data":{"type":"string","description":"The data of the match result","description_kind":"plain","required":true}},"description":"The list of matches","description_kind":"plain"},"min_items":1}},"description":"Return record based on client localisation","description_kind":"plain"},"max_items":1},"http_service":{"nesting_mode":"list","block":{"attributes":{"ips":{"type":["list","string"],"description":"IPs to check","description_kind":"plain","required":true},"must_contain":{"type":"string","description":"Text to search","description_kind":"plain","required":true},"strategy":{"type":"string","description":"Strategy to return an IP from the IPs list","description_kind":"plain","required":true},"url":{"type":"string","description":"URL to match the must_contain text to validate an IP","description_kind":"plain","required":true},"user_agent":{"type":"string","description":"User-agent used when checking the URL","description_kind":"plain","optional":true}},"description":"Return record based on client localisation","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"view":{"nesting_mode":"list","block":{"attributes":{"data":{"type":"string","description":"The data of the view record","description_kind":"plain","required":true},"subnet":{"type":"string","description":"The subnet of the view","description_kind":"plain","required":true}},"description":"Return record based on client subnet","description_kind":"plain"}},"weighted":{"nesting_mode":"list","block":{"attributes":{"ip":{"type":"string","description":"The weighted IP","description_kind":"plain","required":true},"weight":{"type":"number","description":"The weight of the IP","description_kind":"plain","required":true}},"description":"Return record based on weight","description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_domain_zone":{"version":0,"block":{"attributes":{"domain":{"type":"string","description":"The domain where the DNS zone will be created.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"message":{"type":"string","description":"Message","description_kind":"plain","computed":true},"ns":{"type":["list","string"],"description":"NameServer list for zone.","description_kind":"plain","computed":true},"ns_default":{"type":["list","string"],"description":"NameServer default list for zone.","description_kind":"plain","computed":true},"ns_master":{"type":["list","string"],"description":"NameServer master list for zone.","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"The domain zone status.","description_kind":"plain","computed":true},"subdomain":{"type":"string","description":"The subdomain of the DNS zone to create.","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the DNS zone.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_flexible_ip":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the Flexible IP (Format ISO 8601)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the flexible IP","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The IP address of the flexible IP","description_kind":"plain","computed":true},"is_ipv6":{"type":"bool","description":"Defines whether the flexible IP has an IPv6 address","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"reverse":{"type":"string","description":"The reverse DNS for this flexible IP","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description":"The baremetal server associated with this flexible IP","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the flexible IP","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the flexible IP","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Flexible IP (Format ISO 8601)","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_flexible_ip_mac_address":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"Virtual MAC address","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the virtual MAC (Format ISO 8601)","description_kind":"plain","computed":true},"flexible_ip_id":{"type":"string","description":"The ID of the flexible IP for which to generate a virtual MAC","description_kind":"plain","required":true},"flexible_ip_ids_to_duplicate":{"type":["set","string"],"description":"The IDs of the flexible IPs on which to duplicate the virtual MAC\n\n**NOTE** : The flexible IPs need to be attached to the same server for the operation to work.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Virtual MAC status","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of the virtual MAC","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the virtual MAC (Format ISO 8601)","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_function":{"version":0,"block":{"attributes":{"cpu_limit":{"type":"number","description":"CPU limit in mCPU for your function","description_kind":"plain","computed":true},"deploy":{"type":"bool","description":"Define if the function should be deployed, terraform will wait for function to be deployed","description_kind":"plain","optional":true},"description":{"type":"string","description":"The description of the function","description_kind":"plain","optional":true},"domain_name":{"type":"string","description":"The native function domain name.","description_kind":"plain","computed":true},"environment_variables":{"type":["map","string"],"description":"The environment variables of the function","description_kind":"plain","optional":true},"handler":{"type":"string","description":"Handler of the function. Depends on the runtime https://developers.scaleway.com/en/products/functions/api/#create-a-function","description_kind":"plain","required":true},"http_option":{"type":"string","description":"HTTP traffic configuration","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_scale":{"type":"number","description":"Maximum replicas for your function (defaults to 20), our system will scale your functions automatically based on incoming workload, but will never scale the number of replicas above the configured max_scale.","description_kind":"plain","optional":true},"memory_limit":{"type":"number","description":"Memory limit in MB for your function, defaults to 128MB","description_kind":"plain","optional":true},"min_scale":{"type":"number","description":"Minimum replicas for your function, defaults to 0, Note that a function is billed when it gets executed, and using a min_scale greater than 0 will cause your function to run all the time.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the function","description_kind":"plain","optional":true,"computed":true},"namespace_id":{"type":"string","description":"The namespace ID associated with this function","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"privacy":{"type":"string","description":"Privacy of the function. Can be either `private` or `public`","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"runtime":{"type":"string","description":"Runtime of the function","description_kind":"plain","required":true},"secret_environment_variables":{"type":["map","string"],"description":"The secret environment variables to be injected into your function at runtime.","description_kind":"plain","optional":true,"sensitive":true},"timeout":{"type":"number","description":"Holds the max duration (in seconds) the function is allowed for responding to a request","description_kind":"plain","optional":true,"computed":true},"zip_file":{"type":"string","description":"Location of the zip file to upload containing your function sources","description_kind":"plain","optional":true},"zip_hash":{"type":"string","description":"The hash of your source zip file, changing it will re-apply function. Can be any string","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_function_cron":{"version":0,"block":{"attributes":{"args":{"type":"string","description":"Functions arguments as json object to pass through during execution.","description_kind":"plain","required":true},"function_id":{"type":"string","description":"The ID of the function to create a cron for.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"schedule":{"type":"string","description":"Cron format string, e.g. 0 * * * * or @hourly, as schedule time of its jobs to be created and executed.","description_kind":"plain","required":true},"status":{"type":"string","description":"Cron job status.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_function_domain":{"version":0,"block":{"attributes":{"function_id":{"type":"string","description":"The ID of the function","description_kind":"plain","required":true},"hostname":{"type":"string","description":"The hostname that should be redirected to the function","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"url":{"type":"string","description":"URL to use to trigger the function","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_function_namespace":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the function namespace","description_kind":"plain","optional":true},"environment_variables":{"type":["map","string"],"description":"The environment variables of the function namespace","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the function namespace","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"registry_endpoint":{"type":"string","description":"The endpoint reachable by docker","description_kind":"plain","computed":true},"registry_namespace_id":{"type":"string","description":"The ID of the registry namespace","description_kind":"plain","computed":true},"secret_environment_variables":{"type":["map","string"],"description":"The environment variables of the function namespace","description_kind":"plain","optional":true,"sensitive":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_function_token":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expires_at":{"type":"string","description_kind":"plain","optional":true},"function_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"namespace_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"token":{"type":"string","description_kind":"plain","computed":true,"sensitive":true}},"description_kind":"plain"}},"scaleway_function_trigger":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The trigger description","description_kind":"plain","optional":true},"function_id":{"type":"string","description":"The ID of the function to create a trigger for","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The trigger name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"sqs":{"nesting_mode":"list","block":{"attributes":{"namespace_id":{"type":"string","description":"ID of the mnq namespace","description_kind":"plain","required":true},"project_id":{"type":"string","description":"Project ID of the project where the mnq sqs exists, defaults to provider project_id","description_kind":"plain","optional":true,"computed":true},"queue":{"type":"string","description":"Name of the queue","description_kind":"plain","required":true},"region":{"type":"string","description":"Region where the mnq sqs exists, defaults to function's region","description_kind":"plain","optional":true,"computed":true}},"description":"Config for sqs based trigger using scaleway mnq","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_iam_api_key":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"The access key of the iam api key","description_kind":"plain","computed":true},"application_id":{"type":"string","description":"ID of the application attached to the api key","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"The date and time of the creation of the iam api key","description_kind":"plain","computed":true},"creation_ip":{"type":"string","description":"The IPv4 Address of the device which created the API key","description_kind":"plain","computed":true},"default_project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description":"The description of the iam api key","description_kind":"plain","optional":true},"editable":{"type":"bool","description":"Whether or not the iam api key is editable","description_kind":"plain","computed":true},"expires_at":{"type":"string","description":"The date and time of the expiration of the iam api key. Cannot be changed afterwards","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret_key":{"type":"string","description":"The secret Key of the iam api key","description_kind":"plain","computed":true,"sensitive":true},"updated_at":{"type":"string","description":"The date and time of the last update of the iam api key","description_kind":"plain","computed":true},"user_id":{"type":"string","description":"ID of the user attached to the api key","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_iam_application":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the application","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the iam application","description_kind":"plain","optional":true},"editable":{"type":"bool","description":"Whether or not the application is editable.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam application","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"ID of organization the resource is associated to.","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the application","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_iam_group":{"version":0,"block":{"attributes":{"application_ids":{"type":["set","string"],"description":"List of IDs of the applications attached to the group","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"The date and time of the creation of the group","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the iam group","description_kind":"plain","optional":true},"external_membership":{"type":"bool","description":"Handle user and application memberships externally","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam group","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"ID of organization the resource is associated to.","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the group","description_kind":"plain","computed":true},"user_ids":{"type":["set","string"],"description":"List of IDs of the users attached to the group","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_iam_group_membership":{"version":0,"block":{"attributes":{"application_id":{"type":"string","description":"The ID of the user","description_kind":"plain","optional":true},"group_id":{"type":"string","description":"The ID of the group to add the user to","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_id":{"type":"string","description":"The ID of the user","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_iam_policy":{"version":0,"block":{"attributes":{"application_id":{"type":"string","description":"Application id","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"The date and time of the creation of the policy","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the iam policy","description_kind":"plain","optional":true},"editable":{"type":"bool","description":"Whether or not the policy is editable.","description_kind":"plain","computed":true},"group_id":{"type":"string","description":"Group id","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam policy","description_kind":"plain","optional":true,"computed":true},"no_principal":{"type":"bool","description":"Deactivate policy to a principal","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"ID of organization the resource is associated to.","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the policy","description_kind":"plain","computed":true},"user_id":{"type":"string","description":"User id","description_kind":"plain","optional":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"attributes":{"organization_id":{"type":"string","description":"ID of organization scoped to the rule. Only one of project_ids and organization_id may be set.","description_kind":"plain","optional":true},"permission_set_names":{"type":["set","string"],"description":"Names of permission sets bound to the rule.","description_kind":"plain","required":true},"project_ids":{"type":["list","string"],"description":"List of project IDs scoped to the rule. Only one of project_ids and organization_id may be set.","description_kind":"plain","optional":true}},"description":"Rules of the policy to create","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"scaleway_iam_ssh_key":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the iam SSH Key","description_kind":"plain","computed":true},"disabled":{"type":"bool","description":"The SSH key status","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam SSH key","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"public_key":{"type":"string","description":"The public SSH key","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the iam SSH Key","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_instance_image":{"version":0,"block":{"attributes":{"additional_volume_ids":{"type":["list","string"],"description":"The IDs of the additional volumes attached to the image","description_kind":"plain","optional":true},"additional_volumes":{"type":["list",["object",{"creation_date":"string","export_uri":"string","id":"string","modification_date":"string","name":"string","organization":"string","project":"string","server":["map","string"],"size":"number","state":"string","tags":["list","string"],"volume_type":"string","zone":"string"}]],"description":"Specs of the additional volumes attached to the image","description_kind":"plain","computed":true},"architecture":{"type":"string","description":"Architecture of the image (default = x86_64)","description_kind":"plain","optional":true},"creation_date":{"type":"string","description":"The date and time of the creation of the image","description_kind":"plain","computed":true},"from_server_id":{"type":"string","description":"The ID of the backed-up server from which the snapshot was taken","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"modification_date":{"type":"string","description":"The date and time of the last modification of the Redis cluster","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the image","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"public":{"type":"bool","description":"If true, the image will be public","description_kind":"plain","optional":true},"root_volume_id":{"type":"string","description":"UUID of the snapshot from which the image is to be created","description_kind":"plain","required":true},"state":{"type":"string","description":"The state of the image [ available | creating | error ]","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] attached to the image","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_ip":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The IP address","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"prefix":{"type":"string","description":"The IP prefix","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"reverse":{"type":"string","description":"The reverse DNS for this IP","description_kind":"plain","computed":true},"server_id":{"type":"string","description":"The server associated with this IP","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the ip","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of instance IP","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_ip_reverse_dns":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_id":{"type":"string","description":"The IP ID or IP address","description_kind":"plain","required":true},"reverse":{"type":"string","description":"The reverse DNS for this IP","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_placement_group":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the placement group","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"policy_mode":{"type":"string","description":"One of the two policy_mode may be selected: enforced or optional.","description_kind":"plain","optional":true},"policy_respected":{"type":"bool","description":"Is true when the policy is respected.","description_kind":"plain","computed":true},"policy_type":{"type":"string","description":"The operating mode is selected by a policy_type","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the placement group","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_private_nic":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_ids":{"type":["list","string"],"description":"IPAM ip list, should be for internal use only","description_kind":"plain","optional":true},"mac_address":{"type":"string","description":"MAC address of the NIC","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"The private network ID","description_kind":"plain","required":true},"server_id":{"type":"string","description":"The server ID","description_kind":"plain","required":true},"tags":{"type":["list","string"],"description":"The tags associated with the private-nic","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_security_group":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the security group","description_kind":"plain","optional":true},"enable_default_security":{"type":"bool","description":"Enable blocking of SMTP on IPv4 and IPv6","description_kind":"plain","optional":true},"external_rules":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inbound_default_policy":{"type":"string","description":"Default inbound traffic policy for this security group","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the security group","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"outbound_default_policy":{"type":"string","description":"Default outbound traffic policy for this security group","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"stateful":{"type":"bool","description":"The stateful value of the security group","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The tags associated with the security group","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"inbound_rule":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Action when rule match request (drop or accept)","description_kind":"plain","required":true},"ip":{"type":"string","description":"Ip address for this rule (e.g: 1.1.1.1). Only one of ip or ip_range should be provided","description_kind":"plain","deprecated":true,"optional":true},"ip_range":{"type":"string","description":"Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or ip_range should be provided","description_kind":"plain","optional":true},"port":{"type":"number","description":"Network port for this rule","description_kind":"plain","optional":true},"port_range":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"Protocol for this rule (TCP, UDP, ICMP or ANY)","description_kind":"plain","optional":true}},"description":"Inbound rules for this security group","description_kind":"plain"}},"outbound_rule":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Action when rule match request (drop or accept)","description_kind":"plain","required":true},"ip":{"type":"string","description":"Ip address for this rule (e.g: 1.1.1.1). Only one of ip or ip_range should be provided","description_kind":"plain","deprecated":true,"optional":true},"ip_range":{"type":"string","description":"Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or ip_range should be provided","description_kind":"plain","optional":true},"port":{"type":"number","description":"Network port for this rule","description_kind":"plain","optional":true},"port_range":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"Protocol for this rule (TCP, UDP, ICMP or ANY)","description_kind":"plain","optional":true}},"description":"Outbound rules for this security group","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_security_group_rules":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description":"The security group associated with this volume","description_kind":"plain","required":true}},"block_types":{"inbound_rule":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Action when rule match request (drop or accept)","description_kind":"plain","required":true},"ip":{"type":"string","description":"Ip address for this rule (e.g: 1.1.1.1). Only one of ip or ip_range should be provided","description_kind":"plain","deprecated":true,"optional":true},"ip_range":{"type":"string","description":"Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or ip_range should be provided","description_kind":"plain","optional":true},"port":{"type":"number","description":"Network port for this rule","description_kind":"plain","optional":true},"port_range":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"Protocol for this rule (TCP, UDP, ICMP or ANY)","description_kind":"plain","optional":true}},"description":"Inbound rules for this set of security group rules","description_kind":"plain"}},"outbound_rule":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Action when rule match request (drop or accept)","description_kind":"plain","required":true},"ip":{"type":"string","description":"Ip address for this rule (e.g: 1.1.1.1). Only one of ip or ip_range should be provided","description_kind":"plain","deprecated":true,"optional":true},"ip_range":{"type":"string","description":"Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or ip_range should be provided","description_kind":"plain","optional":true},"port":{"type":"number","description":"Network port for this rule","description_kind":"plain","optional":true},"port_range":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"Protocol for this rule (TCP, UDP, ICMP or ANY)","description_kind":"plain","optional":true}},"description":"Outbound rules for this set of security group rules","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_server":{"version":0,"block":{"attributes":{"additional_volume_ids":{"type":["list","string"],"description":"The additional volumes attached to the server","description_kind":"plain","optional":true},"boot_type":{"type":"string","description":"The boot type of the server","description_kind":"plain","optional":true},"bootscript_id":{"type":"string","description":"ID of the target bootscript (set boot_type to bootscript)","description_kind":"plain","optional":true,"computed":true},"cloud_init":{"type":"string","description":"The cloud init script associated with this server","description_kind":"plain","optional":true,"computed":true},"enable_dynamic_ip":{"type":"bool","description":"Enable dynamic IP on the server","description_kind":"plain","optional":true},"enable_ipv6":{"type":"bool","description":"Determines if IPv6 is enabled for the server","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image":{"type":"string","description":"The UUID or the label of the base image used by the server","description_kind":"plain","optional":true},"ip_id":{"type":"string","description":"The ID of the reserved IP for the server","description_kind":"plain","optional":true},"ip_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"ipv6_address":{"type":"string","description":"The default public IPv6 address routed to the server.","description_kind":"plain","computed":true},"ipv6_gateway":{"type":"string","description":"The IPv6 gateway address","description_kind":"plain","computed":true},"ipv6_prefix_length":{"type":"number","description":"The IPv6 prefix length routed to the server.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the server","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"placement_group_id":{"type":"string","description":"The placement group the server is attached to","description_kind":"plain","optional":true},"placement_group_policy_respected":{"type":"bool","description":"True when the placement group policy is respected","description_kind":"plain","computed":true},"private_ip":{"type":"string","description":"The Scaleway internal IP address of the server","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"public_ip":{"type":"string","description":"The public IPv4 address of the server","description_kind":"plain","computed":true},"replace_on_type_change":{"type":"bool","description":"Delete and re-create server if type change","description_kind":"plain","optional":true},"routed_ip_enabled":{"type":"bool","description":"If server supports routed IPs, default to true if public_ips is used","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description":"The security group the server is attached to","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"The state of the server should be: started, stopped, standby","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The tags associated with the server","description_kind":"plain","optional":true},"type":{"type":"string","description":"The instance type of the server","description_kind":"plain","required":true},"user_data":{"type":["map","string"],"description":"The user data associated with the server","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"private_network":{"nesting_mode":"list","block":{"attributes":{"mac_address":{"type":"string","description":"MAC address of the NIC","description_kind":"plain","computed":true},"pn_id":{"type":"string","description":"The Private Network ID","description_kind":"plain","required":true},"status":{"type":"string","description":"The private NIC state","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description":"List of private network to connect with your instance","description_kind":"plain"},"max_items":8},"public_ips":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description":"IP Address","description_kind":"plain","computed":true},"id":{"type":"string","description":"ID of the IP","description_kind":"plain","computed":true}},"description":"List of public IPs attached to your instance","description_kind":"plain"}},"root_volume":{"nesting_mode":"list","block":{"attributes":{"boot":{"type":"bool","description":"Set the volume where the boot the server","description_kind":"plain","optional":true},"delete_on_termination":{"type":"bool","description":"Force deletion of the root volume on instance termination","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the root volume","description_kind":"plain","computed":true},"size_in_gb":{"type":"number","description":"Size of the root volume in gigabytes","description_kind":"plain","optional":true,"computed":true},"volume_id":{"type":"string","description":"Volume ID of the root volume","description_kind":"plain","optional":true,"computed":true},"volume_type":{"type":"string","description":"Volume type of the root volume","description_kind":"plain","optional":true,"computed":true}},"description":"Root volume attached to the server on creation","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_snapshot":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the snapshot","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the snapshot","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"size_in_gb":{"type":"number","description":"The size of the snapshot in gigabyte","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the snapshot","description_kind":"plain","optional":true},"type":{"type":"string","description":"The snapshot's volume type","description_kind":"plain","optional":true,"computed":true},"volume_id":{"type":"string","description":"ID of the volume to take a snapshot from","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"import":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Bucket containing qcow","description_kind":"plain","required":true},"key":{"type":"string","description":"Key of the qcow file in the specified bucket","description_kind":"plain","required":true}},"description":"Import snapshot from a qcow","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_user_data":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"The key of the user data to set.","description_kind":"plain","required":true},"server_id":{"type":"string","description":"The ID of the server","description_kind":"plain","required":true},"value":{"type":"string","description":"The value of the user data to set.","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_volume":{"version":0,"block":{"attributes":{"from_snapshot_id":{"type":"string","description":"Create a volume based on a image","description_kind":"plain","optional":true},"from_volume_id":{"type":"string","description":"Create a copy of an existing volume","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the volume","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description":"The server associated with this volume","description_kind":"plain","computed":true},"size_in_gb":{"type":"number","description":"The size of the volume in gigabyte","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The tags associated with the volume","description_kind":"plain","optional":true},"type":{"type":"string","description":"The volume type","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"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"}},"scaleway_iot_device":{"version":0,"block":{"attributes":{"allow_insecure":{"type":"bool","description":"Allow plain and server-authenticated SSL connections in addition to mutually-authenticated ones","description_kind":"plain","optional":true},"allow_multiple_connections":{"type":"bool","description":"Allow multiple connections","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"The date and time of the creation of the device","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the device","description_kind":"plain","optional":true},"hub_id":{"type":"string","description":"The ID of the hub on which this device will be created","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_connected":{"type":"bool","description":"The MQTT connection status of the device","description_kind":"plain","computed":true},"last_activity_at":{"type":"string","description":"The date and time of last MQTT activity of the device","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the device","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"The status of the device","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the device","description_kind":"plain","computed":true}},"block_types":{"certificate":{"nesting_mode":"list","block":{"attributes":{"crt":{"type":"string","description":"X509 PEM encoded certificate of the device","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"key":{"type":"string","description":"X509 PEM encoded key of the device","description_kind":"plain","computed":true,"sensitive":true}},"description":"Certificate section of the device","description_kind":"plain"},"max_items":1},"message_filters":{"nesting_mode":"list","block":{"block_types":{"publish":{"nesting_mode":"list","block":{"attributes":{"policy":{"type":"string","description":"Publish message filter policy","description_kind":"plain","optional":true},"topics":{"type":["list","string"],"description":"List of topics in the set","description_kind":"plain","optional":true}},"description":"Rule to restrict topics the device can publish to","description_kind":"plain"},"max_items":1},"subscribe":{"nesting_mode":"list","block":{"attributes":{"policy":{"type":"string","description":"Subscribe message filter policy","description_kind":"plain","optional":true},"topics":{"type":["list","string"],"description":"List of topics in the set","description_kind":"plain","optional":true}},"description":"Rule to restrict topics the device can subscribe to","description_kind":"plain"},"max_items":1}},"description":"Rules to authorize or deny the device to publish/subscribe to specific topics","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"scaleway_iot_hub":{"version":0,"block":{"attributes":{"connected_device_count":{"type":"number","description":"The current number of connected devices in the Hub","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the IoT Hub","description_kind":"plain","computed":true},"device_auto_provisioning":{"type":"bool","description":"Wether to enable the device auto provisioning or not","description_kind":"plain","optional":true},"device_count":{"type":"number","description":"The number of registered devices in the Hub","description_kind":"plain","computed":true},"disable_events":{"type":"bool","description":"Whether to enable the hub events or not","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"Whether to enable the hub or not","description_kind":"plain","optional":true},"endpoint":{"type":"string","description":"The endpoint to connect the devices to","description_kind":"plain","computed":true},"events_topic_prefix":{"type":"string","description":"Topic prefix for the hub events","description_kind":"plain","optional":true},"hub_ca":{"type":"string","description":"Custom user provided certificate authority","description_kind":"plain","optional":true},"hub_ca_challenge":{"type":"string","description":"Challenge certificate for the user provided hub CA","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the hub","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"product_plan":{"type":"string","description":"The product plan of the hub","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"The status of the hub","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the IoT Hub","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_iot_network":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the network","description_kind":"plain","computed":true},"endpoint":{"type":"string","description":"The endpoint to use when interacting with the network","description_kind":"plain","computed":true},"hub_id":{"type":"string","description":"The ID of the hub on which this network will be created","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the network","description_kind":"plain","required":true},"secret":{"type":"string","description":"The endpoint key to keep secret","description_kind":"plain","computed":true,"sensitive":true},"topic_prefix":{"type":"string","description":"The prefix that will be prepended to all topics for this Network","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of the network","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_iot_route":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the IoT Route","description_kind":"plain","computed":true},"hub_id":{"type":"string","description":"The ID of the route's hub","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the route","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"topic":{"type":"string","description":"The Topic the route subscribes to (wildcards allowed)","description_kind":"plain","required":true}},"block_types":{"database":{"nesting_mode":"list","block":{"attributes":{"dbname":{"type":"string","description":"The database name","description_kind":"plain","required":true},"host":{"type":"string","description":"The database hostname","description_kind":"plain","required":true},"password":{"type":"string","description":"The database password","description_kind":"plain","required":true,"sensitive":true},"port":{"type":"number","description":"The database port","description_kind":"plain","required":true},"query":{"type":"string","description":"SQL query to be executed ($TOPIC and $PAYLOAD variables are available, see documentation)","description_kind":"plain","required":true},"username":{"type":"string","description":"The database username","description_kind":"plain","required":true}},"description":"Database Route parameters","description_kind":"plain"},"max_items":1},"rest":{"nesting_mode":"list","block":{"attributes":{"headers":{"type":["map","string"],"description":"The HTTP call extra headers","description_kind":"plain","required":true},"uri":{"type":"string","description":"The URI of the REST endpoint","description_kind":"plain","required":true},"verb":{"type":"string","description":"The HTTP Verb used to call REST URI","description_kind":"plain","required":true}},"description":"Rest Route parameters","description_kind":"plain"},"max_items":1},"s3":{"nesting_mode":"list","block":{"attributes":{"bucket_name":{"type":"string","description":"The name of the S3 route's destination bucket","description_kind":"plain","required":true},"bucket_region":{"type":"string","description":"The region of the S3 route's destination bucket","description_kind":"plain","required":true},"object_prefix":{"type":"string","description":"The string to prefix object names with","description_kind":"plain","optional":true},"strategy":{"type":"string","description":"How the S3 route's objects will be created: one per topic or one per message","description_kind":"plain","required":true}},"description":"S3 Route parameters","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_k8s_cluster":{"version":0,"block":{"attributes":{"admission_plugins":{"type":["list","string"],"description":"The list of admission plugins to enable on the cluster","description_kind":"plain","optional":true},"apiserver_cert_sans":{"type":["list","string"],"description":"Additional Subject Alternative Names for the Kubernetes API server certificate","description_kind":"plain","optional":true},"apiserver_url":{"type":"string","description":"Kubernetes API server URL","description_kind":"plain","computed":true},"cni":{"type":"string","description":"The CNI plugin of the cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"The date and time of the creation of the Kubernetes cluster","description_kind":"plain","computed":true},"delete_additional_resources":{"type":"bool","description":"Delete additional resources like block volumes and loadbalancers on cluster deletion","description_kind":"plain","required":true},"description":{"type":"string","description":"The description of the cluster","description_kind":"plain","optional":true},"feature_gates":{"type":["list","string"],"description":"The list of feature gates to enable on the cluster","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubeconfig":{"type":["list",["object",{"cluster_ca_certificate":"string","config_file":"string","host":"string","token":"string"}]],"description":"The kubeconfig configuration file of the Kubernetes cluster","description_kind":"plain","computed":true,"sensitive":true},"name":{"type":"string","description":"The name of the cluster","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"The ID of the cluster's private network","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"The status of the cluster","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the cluster","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of cluster","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Kubernetes cluster","description_kind":"plain","computed":true},"upgrade_available":{"type":"bool","description":"True if an upgrade is available","description_kind":"plain","computed":true},"version":{"type":"string","description":"The version of the cluster","description_kind":"plain","required":true},"wildcard_dns":{"type":"string","description":"Wildcard DNS pointing to all the ready nodes","description_kind":"plain","computed":true}},"block_types":{"auto_upgrade":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description":"Enables the Kubernetes patch version auto upgrade","description_kind":"plain","required":true},"maintenance_window_day":{"type":"string","description":"Day of the maintenance window","description_kind":"plain","required":true},"maintenance_window_start_hour":{"type":"number","description":"Start hour of the 2-hour maintenance window","description_kind":"plain","required":true}},"description":"The auto upgrade configuration for the cluster","description_kind":"plain"},"max_items":1},"autoscaler_config":{"nesting_mode":"list","block":{"attributes":{"balance_similar_node_groups":{"type":"bool","description":"Detect similar node groups and balance the number of nodes between them","description_kind":"plain","optional":true},"disable_scale_down":{"type":"bool","description":"Disable the scale down feature of the autoscaler","description_kind":"plain","optional":true},"estimator":{"type":"string","description":"Type of resource estimator to be used in scale up","description_kind":"plain","optional":true},"expander":{"type":"string","description":"Type of node group expander to be used in scale up","description_kind":"plain","optional":true},"expendable_pods_priority_cutoff":{"type":"number","description":"Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable","description_kind":"plain","optional":true},"ignore_daemonsets_utilization":{"type":"bool","description":"Ignore DaemonSet pods when calculating resource utilization for scaling down","description_kind":"plain","optional":true},"max_graceful_termination_sec":{"type":"number","description":"Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node","description_kind":"plain","optional":true},"scale_down_delay_after_add":{"type":"string","description":"How long after scale up that scale down evaluation resumes","description_kind":"plain","optional":true},"scale_down_unneeded_time":{"type":"string","description":"How long a node should be unneeded before it is eligible for scale down","description_kind":"plain","optional":true},"scale_down_utilization_threshold":{"type":"number","description":"Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down","description_kind":"plain","optional":true}},"description":"The autoscaler configuration for the cluster","description_kind":"plain"},"max_items":1},"open_id_connect_config":{"nesting_mode":"list","block":{"attributes":{"client_id":{"type":"string","description":"A client id that all tokens must be issued for","description_kind":"plain","required":true},"groups_claim":{"type":["list","string"],"description":"JWT claim to use as the user's group","description_kind":"plain","optional":true},"groups_prefix":{"type":"string","description":"Prefix prepended to group claims","description_kind":"plain","optional":true},"issuer_url":{"type":"string","description":"URL of the provider which allows the API server to discover public signing keys","description_kind":"plain","required":true},"required_claim":{"type":["list","string"],"description":"Multiple key=value pairs that describes a required claim in the ID Token","description_kind":"plain","optional":true},"username_claim":{"type":"string","description":"JWT claim to use as the user name","description_kind":"plain","optional":true},"username_prefix":{"type":"string","description":"Prefix prepended to username","description_kind":"plain","optional":true}},"description":"The OpenID Connect configuration of the cluster","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_k8s_pool":{"version":0,"block":{"attributes":{"autohealing":{"type":"bool","description":"Enable the autohealing on the pool","description_kind":"plain","optional":true},"autoscaling":{"type":"bool","description":"Enable the autoscaling on the pool","description_kind":"plain","optional":true},"cluster_id":{"type":"string","description":"The ID of the cluster on which this pool will be created","description_kind":"plain","required":true},"container_runtime":{"type":"string","description":"Container runtime for the pool","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"The date and time of the creation of the pool","description_kind":"plain","computed":true},"current_size":{"type":"number","description":"The actual size of the pool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubelet_args":{"type":["map","string"],"description":"The Kubelet arguments to be used by this pool","description_kind":"plain","optional":true},"max_size":{"type":"number","description":"Maximum size of the pool","description_kind":"plain","optional":true,"computed":true},"min_size":{"type":"number","description":"Minimum size of the pool","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the cluster","description_kind":"plain","required":true},"node_type":{"type":"string","description":"Server type of the pool servers","description_kind":"plain","required":true},"nodes":{"type":["list",["object",{"name":"string","public_ip":"string","public_ip_v6":"string","status":"string"}]],"description_kind":"plain","computed":true},"placement_group_id":{"type":"string","description":"ID of the placement group","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"root_volume_size_in_gb":{"type":"number","description":"The size of the system volume of the nodes in gigabyte","description_kind":"plain","optional":true},"root_volume_type":{"type":"string","description":"System volume type of the nodes composing the pool","description_kind":"plain","optional":true},"size":{"type":"number","description":"Size of the pool","description_kind":"plain","required":true},"status":{"type":"string","description":"The status of the pool","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the pool","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the pool","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Kubernetes version of the pool","description_kind":"plain","computed":true},"wait_for_pool_ready":{"type":"bool","description":"Whether to wait for the pool to be ready","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"upgrade_policy":{"nesting_mode":"list","block":{"attributes":{"max_surge":{"type":"number","description":"The maximum number of nodes to be created during the upgrade","description_kind":"plain","optional":true},"max_unavailable":{"type":"number","description":"The maximum number of nodes that can be not ready at the same time","description_kind":"plain","optional":true}},"description":"The Pool upgrade policy","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"scaleway_lb":{"version":1,"block":{"attributes":{"description":{"type":"string","description":"The description of the lb","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The load-balance public IP address","description_kind":"plain","computed":true},"ip_id":{"type":"string","description":"The load-balance public IP ID","description_kind":"plain","required":true},"name":{"type":"string","description":"Name of the lb","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the resource","description_kind":"plain","computed":true},"release_ip":{"type":"bool","description":"Release the IPs related to this load-balancer","description_kind":"plain","deprecated":true,"optional":true},"ssl_compatibility_level":{"type":"string","description":"Enforces minimal SSL version (in SSL/TLS offloading context)","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Array of tags to associate with the load-balancer","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of load-balancer you want to create","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"private_network":{"nesting_mode":"set","block":{"attributes":{"dhcp_config":{"type":"bool","description":"Set to true if you want to let DHCP assign IP addresses","description_kind":"plain","optional":true,"computed":true},"private_network_id":{"type":"string","description":"The Private Network ID","description_kind":"plain","required":true},"static_config":{"type":["list","string"],"description":"Define an IP address in the subnet of your private network that will be assigned to your load balancer instance","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of private network connection","description_kind":"plain","computed":true},"zone":{"type":"string","description_kind":"plain","computed":true}},"description":"List of private network to connect with your load balancer","description_kind":"plain"},"max_items":8},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_lb_acl":{"version":1,"block":{"attributes":{"created_at":{"type":"string","description":"Date and time of ACL's creation (RFC 3339 format)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the ACL","description_kind":"plain","optional":true},"frontend_id":{"type":"string","description":"The frontend ID on which the ACL is applied","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"index":{"type":"number","description":"The priority of the ACL. (ACLs are applied in ascending order, 0 is the first ACL executed)","description_kind":"plain","required":true},"name":{"type":"string","description":"The ACL name","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"Date and time of ACL's update (RFC 3339 format)","description_kind":"plain","computed":true}},"block_types":{"action":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description":"The action type","description_kind":"plain","required":true}},"block_types":{"redirect":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"number","description":"The HTTP redirect code to use","description_kind":"plain","optional":true},"target":{"type":"string","description":"An URL can be used in case of a location redirect ","description_kind":"plain","optional":true},"type":{"type":"string","description":"The redirect type","description_kind":"plain","optional":true}},"description":"Redirect parameters when using an ACL with `redirect` action","description_kind":"plain"}}},"description":"Action to undertake when an ACL filter matches","description_kind":"plain"},"min_items":1,"max_items":1},"match":{"nesting_mode":"list","block":{"attributes":{"http_filter":{"type":"string","description":"The HTTP filter to match","description_kind":"plain","optional":true},"http_filter_option":{"type":"string","description":"You can use this field with http_header_match acl type to set the header name to filter","description_kind":"plain","optional":true},"http_filter_value":{"type":["list","string"],"description":"A list of possible values to match for the given HTTP filter","description_kind":"plain","optional":true},"invert":{"type":"bool","description":"If set to true, the condition will be of type \"unless\"","description_kind":"plain","optional":true},"ip_subnet":{"type":["list","string"],"description":"A list of IPs or CIDR v4/v6 addresses of the client of the session to match","description_kind":"plain","optional":true}},"description":"The ACL match rule","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_lb_backend":{"version":1,"block":{"attributes":{"failover_host":{"type":"string","description":"Scaleway S3 bucket website to be served in case all backend servers are down\n\n**NOTE** : Only the host part of the Scaleway S3 bucket website is expected.\nE.g. 'failover-website.s3-website.fr-par.scw.cloud' if your bucket website URL is 'https://failover-website.s3-website.fr-par.scw.cloud/'.","description_kind":"plain","optional":true},"forward_port":{"type":"number","description":"User sessions will be forwarded to this port of backend servers","description_kind":"plain","required":true},"forward_port_algorithm":{"type":"string","description":"Load balancing algorithm","description_kind":"plain","optional":true},"forward_protocol":{"type":"string","description":"Backend protocol","description_kind":"plain","required":true},"health_check_delay":{"type":"string","description":"Interval between two HC requests","description_kind":"plain","optional":true},"health_check_max_retries":{"type":"number","description":"Number of allowed failed HC requests before the backend server is marked down","description_kind":"plain","optional":true},"health_check_port":{"type":"number","description":"Port the HC requests will be send to. Default to `forward_port`","description_kind":"plain","optional":true,"computed":true},"health_check_send_proxy":{"type":"bool","description":"Defines whether proxy protocol should be activated for the health check","description_kind":"plain","optional":true},"health_check_timeout":{"type":"string","description":"Timeout before we consider a HC request failed","description_kind":"plain","optional":true},"health_check_transient_delay":{"type":"string","description":"Time to wait between two consecutive health checks when a backend server is in a transient state (going UP or DOWN)","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ignore_ssl_server_verify":{"type":"bool","description":"Specifies whether the Load Balancer should check the backend server’s certificate before initiating a connection","description_kind":"plain","optional":true},"lb_id":{"type":"string","description":"The load-balancer ID","description_kind":"plain","required":true},"max_connections":{"type":"number","description":"Maximum number of connections allowed per backend server","description_kind":"plain","optional":true},"max_retries":{"type":"number","description":"Number of retries when a backend server connection failed","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the backend","description_kind":"plain","optional":true,"computed":true},"on_marked_down_action":{"type":"string","description":"Modify what occurs when a backend server is marked down","description_kind":"plain","optional":true},"proxy_protocol":{"type":"string","description":"Type of PROXY protocol to enable","description_kind":"plain","optional":true},"redispatch_attempt_count":{"type":"number","description":"Whether to use another backend server on each attempt","description_kind":"plain","optional":true},"send_proxy_v2":{"type":"bool","description":"Enables PROXY protocol version 2","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"server_ips":{"type":["list","string"],"description":"Backend server IP addresses list (IPv4 or IPv6)","description_kind":"plain","optional":true},"ssl_bridging":{"type":"bool","description":"Enables SSL between load balancer and backend servers","description_kind":"plain","optional":true},"sticky_sessions":{"type":"string","description":"The type of sticky sessions","description_kind":"plain","optional":true},"sticky_sessions_cookie_name":{"type":"string","description":"Cookie name for for sticky sessions","description_kind":"plain","optional":true},"timeout_connect":{"type":"string","description":"Maximum initial server connection establishment time","description_kind":"plain","optional":true},"timeout_queue":{"type":"string","description":"Maximum time (in seconds) for a request to be left pending in queue when `max_connections` is reached","description_kind":"plain","optional":true},"timeout_server":{"type":"string","description":"Maximum server connection inactivity time","description_kind":"plain","optional":true},"timeout_tunnel":{"type":"string","description":"Maximum tunnel inactivity time","description_kind":"plain","optional":true}},"block_types":{"health_check_http":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"number","description":"The expected HTTP status code","description_kind":"plain","optional":true},"host_header":{"type":"string","description":"The HTTP host header to use for HC requests","description_kind":"plain","optional":true},"method":{"type":"string","description":"The HTTP method to use for HC requests","description_kind":"plain","optional":true},"uri":{"type":"string","description":"The HTTP endpoint URL to call for HC requests","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"health_check_https":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"number","description":"The expected HTTP status code","description_kind":"plain","optional":true},"host_header":{"type":"string","description":"The HTTP host header to use for HC requests","description_kind":"plain","optional":true},"method":{"type":"string","description":"The HTTP method to use for HC requests","description_kind":"plain","optional":true},"sni":{"type":"string","description":"The SNI to use for HC requests over SSL","description_kind":"plain","optional":true},"uri":{"type":"string","description":"The HTTPS endpoint URL to call for HC requests","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"health_check_tcp":{"nesting_mode":"list","block":{"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_lb_certificate":{"version":1,"block":{"attributes":{"common_name":{"type":"string","description":"The main domain name of the certificate","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"The identifier (SHA-1) of the certificate","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lb_id":{"type":"string","description":"The load-balancer ID","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the load-balancer certificate","description_kind":"plain","optional":true,"computed":true},"not_valid_after":{"type":"string","description":"The not valid after validity bound timestamp","description_kind":"plain","computed":true},"not_valid_before":{"type":"string","description":"The not valid before validity bound timestamp","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of certificate","description_kind":"plain","computed":true},"subject_alternative_name":{"type":["list","string"],"description":"The alternative domain names of the certificate","description_kind":"plain","computed":true}},"block_types":{"custom_certificate":{"nesting_mode":"list","block":{"attributes":{"certificate_chain":{"type":"string","description":"The full PEM-formatted certificate chain","description_kind":"plain","required":true}},"description":"The custom type certificate type configuration","description_kind":"plain"},"max_items":1},"letsencrypt":{"nesting_mode":"list","block":{"attributes":{"common_name":{"type":"string","description":"The main domain name of the certificate","description_kind":"plain","required":true},"subject_alternative_name":{"type":["list","string"],"description":"The alternative domain names of the certificate","description_kind":"plain","optional":true}},"description":"The Let's Encrypt type certificate configuration","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_lb_frontend":{"version":1,"block":{"attributes":{"backend_id":{"type":"string","description":"The load-balancer backend ID","description_kind":"plain","required":true},"certificate_id":{"type":"string","description":"Certificate ID","description_kind":"plain","deprecated":true,"computed":true},"certificate_ids":{"type":["list","string"],"description":"Collection of Certificate IDs related to the load balancer and domain","description_kind":"plain","optional":true},"enable_http3":{"type":"bool","description":"Activates HTTP/3 protocol","description_kind":"plain","optional":true},"external_acls":{"type":"bool","description":"This boolean determines if ACLs should be managed externally through the 'lb_acl' resource. If set to `true`, `acl` attribute cannot be set directly in the lb frontend","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inbound_port":{"type":"number","description":"TCP port to listen on the front side","description_kind":"plain","required":true},"lb_id":{"type":"string","description":"The load-balancer ID","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the frontend","description_kind":"plain","optional":true,"computed":true},"timeout_client":{"type":"string","description":"Set the maximum inactivity time on the client side","description_kind":"plain","optional":true}},"block_types":{"acl":{"nesting_mode":"list","block":{"attributes":{"created_at":{"type":"string","description":"Date and time of ACL's creation (RFC 3339 format)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the ACL","description_kind":"plain","optional":true},"name":{"type":"string","description":"The ACL name","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"Date and time of ACL's update (RFC 3339 format)","description_kind":"plain","computed":true}},"block_types":{"action":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description":"The action type","description_kind":"plain","required":true}},"block_types":{"redirect":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"number","description":"The HTTP redirect code to use","description_kind":"plain","optional":true},"target":{"type":"string","description":"An URL can be used in case of a location redirect ","description_kind":"plain","optional":true},"type":{"type":"string","description":"The redirect type","description_kind":"plain","optional":true}},"description":"Redirect parameters when using an ACL with `redirect` action","description_kind":"plain"}}},"description":"Action to undertake when an ACL filter matches","description_kind":"plain"},"min_items":1,"max_items":1},"match":{"nesting_mode":"list","block":{"attributes":{"http_filter":{"type":"string","description":"The HTTP filter to match","description_kind":"plain","optional":true},"http_filter_option":{"type":"string","description":"You can use this field with http_header_match acl type to set the header name to filter","description_kind":"plain","optional":true},"http_filter_value":{"type":["list","string"],"description":"A list of possible values to match for the given HTTP filter","description_kind":"plain","optional":true},"invert":{"type":"bool","description":"If set to true, the condition will be of type \"unless\"","description_kind":"plain","optional":true},"ip_subnet":{"type":["list","string"],"description":"A list of IPs or CIDR v4/v6 addresses of the client of the session to match","description_kind":"plain","optional":true}},"description":"The ACL match rule","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"ACL rules","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"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"}},"scaleway_lb_ip":{"version":1,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The load-balancer public IP address","description_kind":"plain","computed":true},"lb_id":{"type":"string","description":"The ID of the load balancer attached to this IP, if any","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the resource","description_kind":"plain","computed":true},"reverse":{"type":"string","description":"The reverse domain name for this IP","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_lb_route":{"version":1,"block":{"attributes":{"backend_id":{"type":"string","description":"The backend ID destination of redirection","description_kind":"plain","required":true},"created_at":{"type":"string","description":"The date at which the route was created (RFC 3339 format)","description_kind":"plain","computed":true},"frontend_id":{"type":"string","description":"The frontend ID origin of redirection","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"match_host_header":{"type":"string","description":"Specifies the host of the server to which the request is being sent","description_kind":"plain","optional":true},"match_sni":{"type":"string","description":"Server Name Indication TLS extension field from an incoming connection made via an SSL/TLS transport layer","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date at which the route was last updated (RFC 3339 format)","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_mnq_credential":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the Credential","description_kind":"plain","optional":true,"computed":true},"namespace_id":{"type":"string","description":"The ID of the Namespace associated to","description_kind":"plain","required":true},"protocol":{"type":"string","description":"The Namespace protocol","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"nats_credentials":{"nesting_mode":"list","block":{"attributes":{"content":{"type":"string","description":"Raw content of the NATS credentials file","description_kind":"plain","computed":true,"sensitive":true}},"description":"credential for NATS protocol","description_kind":"plain"},"max_items":1},"sqs_sns_credentials":{"nesting_mode":"list","block":{"attributes":{"access_key":{"type":"string","description":"The key of the credential","description_kind":"plain","computed":true},"secret_key":{"type":"string","description":"The secret value of the key","description_kind":"plain","computed":true,"sensitive":true}},"block_types":{"permissions":{"nesting_mode":"list","block":{"attributes":{"can_manage":{"type":"bool","description":"Allow manage the associated resource","description_kind":"plain","optional":true},"can_publish":{"type":"bool","description":"Allow publish messages to the service","description_kind":"plain","optional":true},"can_receive":{"type":"bool","description":"Allow receive messages from the service","description_kind":"plain","optional":true}},"description":"The permission associated to this credential.","description_kind":"plain"},"max_items":1}},"description":"The credential used to connect to the SQS/SNS service","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"scaleway_mnq_namespace":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the mnq Namespace","description_kind":"plain","computed":true},"endpoint":{"type":"string","description":"The endpoint of the service matching the Namespace protocol","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the mnq namespace","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"protocol":{"type":"string","description":"The Namespace protocol","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the mnq Namespace","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_mnq_queue":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"message_max_age":{"type":"number","description":"The number of seconds the queue retains a message.","description_kind":"plain","optional":true},"message_max_size":{"type":"number","description":"The maximum size of a message. Should be in bytes.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the queue. Conflicts with name_prefix.","description_kind":"plain","optional":true,"computed":true},"name_prefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with name.","description_kind":"plain","optional":true,"computed":true},"namespace_id":{"type":"string","description":"The ID of the Namespace associated to","description_kind":"plain","required":true}},"block_types":{"nats":{"nesting_mode":"list","block":{"attributes":{"credentials":{"type":"string","description":"Line jump separated key and seed","description_kind":"plain","required":true,"sensitive":true},"endpoint":{"type":"string","description":"The endpoint of the NATS queue. Can contain a {region} placeholder.","description_kind":"plain","optional":true},"retention_policy":{"type":"string","description":"The retention policy of the queue. See https://docs.nats.io/nats-concepts/jetstream/streams#retentionpolicy for more information.","description_kind":"plain","optional":true}},"description":"The NATS attributes of the queue","description_kind":"plain"},"max_items":1},"sqs":{"nesting_mode":"list","block":{"attributes":{"access_key":{"type":"string","description":"The access key of the SQS queue","description_kind":"plain","required":true,"sensitive":true},"content_based_deduplication":{"type":"bool","description_kind":"plain","optional":true},"endpoint":{"type":"string","description":"The endpoint of the SQS queue. Can contain a {region} placeholder.","description_kind":"plain","optional":true},"fifo_queue":{"type":"bool","description":"Whether the queue is a FIFO queue. If true, the queue name must end with .fifo","description_kind":"plain","optional":true},"receive_wait_time_seconds":{"type":"number","description_kind":"plain","optional":true},"secret_key":{"type":"string","description":"The secret key of the SQS queue","description_kind":"plain","required":true,"sensitive":true},"url":{"type":"string","description":"The URL of the queue","description_kind":"plain","computed":true},"visibility_timeout_seconds":{"type":"number","description_kind":"plain","optional":true}},"description":"The SQS attributes of the queue","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"scaleway_object":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the bucket","description_kind":"plain","required":true},"content":{"type":"string","description":"Content of the file to upload","description_kind":"plain","optional":true},"content_base64":{"type":"string","description":"Content of the file to upload, should be base64 encoded","description_kind":"plain","optional":true},"file":{"type":"string","description":"Path of the file to upload, defaults to an empty file","description_kind":"plain","optional":true},"hash":{"type":"string","description":"File hash to trigger upload","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"Key of the object","description_kind":"plain","required":true},"metadata":{"type":["map","string"],"description":"Map of object's metadata, only lower case keys are allowed","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"storage_class":{"type":"string","description":"Specifies the Scaleway Object Storage class to which you want the object to transition","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description":"Map of object's tags","description_kind":"plain","optional":true},"visibility":{"type":"string","description":"Visibility of the object, public-read or private","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_object_bucket":{"version":0,"block":{"attributes":{"acl":{"type":"string","description":"ACL of the bucket: either 'public-read' or 'private'.","description_kind":"plain","deprecated":true,"optional":true},"endpoint":{"type":"string","description":"Endpoint of the bucket","description_kind":"plain","computed":true},"force_destroy":{"type":"bool","description":"Delete objects in bucket","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the bucket","description_kind":"plain","required":true},"object_lock_enabled":{"type":"bool","description":"Enable object lock","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description":"The tags associated with this bucket","description_kind":"plain","optional":true}},"block_types":{"cors_rule":{"nesting_mode":"list","block":{"attributes":{"allowed_headers":{"type":["list","string"],"description_kind":"plain","optional":true},"allowed_methods":{"type":["list","string"],"description_kind":"plain","required":true},"allowed_origins":{"type":["list","string"],"description_kind":"plain","required":true},"expose_headers":{"type":["list","string"],"description_kind":"plain","optional":true},"max_age_seconds":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"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 if the configuration rule is Enabled or Disabled","description_kind":"plain","required":true},"id":{"type":"string","description":"Unique identifier for the rule","description_kind":"plain","optional":true,"computed":true},"prefix":{"type":"string","description":"The prefix identifying one or more objects to which the rule applies","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description":"The tags associated with the bucket lifecycle","description_kind":"plain","optional":true}},"block_types":{"expiration":{"nesting_mode":"list","block":{"attributes":{"days":{"type":"number","description":"Specifies the number of days after object creation when the specific rule action takes effect","description_kind":"plain","required":true}},"description":"Specifies a period in the object's expire","description_kind":"plain"},"max_items":1},"transition":{"nesting_mode":"set","block":{"attributes":{"days":{"type":"number","description":"Specifies the number of days after object creation when the specific rule action takes effect","description_kind":"plain","optional":true},"storage_class":{"type":"string","description":"Specifies the Scaleway Object Storage class to which you want the object to transition","description_kind":"plain","required":true}},"description":"Define when objects transition to another storage class","description_kind":"plain"}}},"description":"Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"versioning":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state","description_kind":"plain","optional":true,"computed":true}},"description":"Allow multiple versions of an object in the same bucket","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"scaleway_object_bucket_acl":{"version":0,"block":{"attributes":{"acl":{"type":"string","description":"ACL of the bucket: either 'public-read' or 'private'.","description_kind":"plain","optional":true},"bucket":{"type":"string","description":"The bucket name.","description_kind":"plain","required":true},"expected_bucket_owner":{"type":"string","description":"The project ID as owner.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"access_control_policy":{"nesting_mode":"list","block":{"block_types":{"grant":{"nesting_mode":"set","block":{"attributes":{"permission":{"type":"string","description":"Logging permissions assigned to the grantee for the bucket.","description_kind":"plain","required":true}},"block_types":{"grantee":{"nesting_mode":"list","block":{"attributes":{"display_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description":"The project ID owner of the grantee.","description_kind":"plain","required":true},"type":{"type":"string","description":"Type of grantee. Valid values: `CanonicalUser`","description_kind":"plain","required":true}},"description":"Configuration block for the project being granted permissions.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"owner":{"nesting_mode":"list","block":{"attributes":{"display_name":{"type":"string","description":"The project ID of the grantee.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"The display ID of the project.","description_kind":"plain","required":true}},"description":"Configuration block of the bucket project owner's display organization ID.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"A configuration block that sets the ACL permissions for an object per grantee.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"scaleway_object_bucket_lock_configuration":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The bucket name.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"block_types":{"default_retention":{"nesting_mode":"list","block":{"attributes":{"days":{"type":"number","description":"The number of days that you want to specify for the default retention period.","description_kind":"plain","optional":true},"mode":{"type":"string","description":"The default Object Lock retention mode you want to apply to new objects placed in the specified bucket.","description_kind":"plain","required":true},"years":{"type":"number","description":"The number of years that you want to specify for the default retention period.","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Specifies the Object Lock rule for the specified object.","description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"scaleway_object_bucket_policy":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The bucket name.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy":{"type":"string","description":"The text of the policy.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_object_bucket_website_configuration":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The bucket name.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"website_domain":{"type":"string","description":"The website endpoint.","description_kind":"plain","computed":true},"website_endpoint":{"type":"string","description":"The domain of the website endpoint.","description_kind":"plain","computed":true}},"block_types":{"error_document":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true}},"description":"The name of the error document for the website.","description_kind":"plain"},"max_items":1},"index_document":{"nesting_mode":"list","block":{"attributes":{"suffix":{"type":"string","description_kind":"plain","required":true}},"description":"The name of the index document for the website.","description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"scaleway_rdb_acl":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the ACL is applied","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"acl_rules":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of the rule","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"Target IP of the rules","description_kind":"plain","required":true}},"description":"List of ACL rules to apply","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_rdb_database":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the database is created","description_kind":"plain","required":true},"managed":{"type":"bool","description":"Whether or not the database is managed","description_kind":"plain","computed":true},"name":{"type":"string","description":"Database name","description_kind":"plain","required":true},"owner":{"type":"string","description":"User that own the database","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"size":{"type":"string","description":"Size of the database","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_rdb_database_backup":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Creation date (Format ISO 8601).","description_kind":"plain","computed":true},"database_name":{"type":"string","description":"Name of the database of this backup.","description_kind":"plain","required":true},"expires_at":{"type":"string","description":"Expiration date (Format ISO 8601). Cannot be removed.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the user is created","description_kind":"plain","required":true},"instance_name":{"type":"string","description":"Name of the instance of the backup.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the backup.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description":"Size of the backup (in bytes).","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Updated date (Format ISO 8601).","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_rdb_instance":{"version":0,"block":{"attributes":{"backup_same_region":{"type":"bool","description":"Boolean to store logical backups in the same region as the database instance","description_kind":"plain","optional":true,"computed":true},"backup_schedule_frequency":{"type":"number","description":"Backup schedule frequency in hours","description_kind":"plain","optional":true,"computed":true},"backup_schedule_retention":{"type":"number","description":"Backup schedule retention in days","description_kind":"plain","optional":true,"computed":true},"certificate":{"type":"string","description":"Certificate of the database instance","description_kind":"plain","computed":true},"disable_backup":{"type":"bool","description":"Disable automated backup for the database instance","description_kind":"plain","optional":true},"endpoint_ip":{"type":"string","description":"Endpoint IP of the database instance","description_kind":"plain","deprecated":true,"computed":true},"endpoint_port":{"type":"number","description":"Endpoint port of the database instance","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Database's engine version id","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"init_settings":{"type":["map","string"],"description":"Map of engine settings to be set at database initialisation.","description_kind":"plain","optional":true},"is_ha_cluster":{"type":"bool","description":"Enable or disable high availability for the database instance","description_kind":"plain","optional":true},"load_balancer":{"type":["list",["object",{"endpoint_id":"string","hostname":"string","ip":"string","name":"string","port":"number"}]],"description":"Load balancer of the database instance","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the database instance","description_kind":"plain","optional":true,"computed":true},"node_type":{"type":"string","description":"The type of database instance you want to create","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"password":{"type":"string","description":"Password for the first user of the database instance","description_kind":"plain","optional":true,"sensitive":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"read_replicas":{"type":["list",["object",{"ip":"string","name":"string","port":"number"}]],"description":"Read replicas of the database instance","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"settings":{"type":["map","string"],"description":"Map of engine settings to be set on a running instance.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] attached to a database instance","description_kind":"plain","optional":true},"user_name":{"type":"string","description":"Identifier for the first user of the database instance","description_kind":"plain","optional":true},"volume_size_in_gb":{"type":"number","description":"Volume size (in GB) when volume_type is not lssd","description_kind":"plain","optional":true,"computed":true},"volume_type":{"type":"string","description":"Type of volume where data are stored","description_kind":"plain","optional":true}},"block_types":{"private_network":{"nesting_mode":"list","block":{"attributes":{"endpoint_id":{"type":"string","description":"The endpoint ID","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"The hostname of your endpoint","description_kind":"plain","computed":true},"ip":{"type":"string","description":"The IP of your Instance within the private service","description_kind":"plain","computed":true},"ip_net":{"type":"string","description":"The IP with the given mask within the private subnet","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of your private service","description_kind":"plain","computed":true},"pn_id":{"type":"string","description":"The private network ID","description_kind":"plain","required":true},"port":{"type":"number","description":"The port of your private service","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description":"List of private network to expose your database instance","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_rdb_privilege":{"version":1,"block":{"attributes":{"database_name":{"type":"string","description":"Database name","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the database is created","description_kind":"plain","required":true},"permission":{"type":"string","description":"Privilege","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"user_name":{"type":"string","description":"User name","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_rdb_read_replica":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Id of the rdb instance to replicate","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"direct_access":{"nesting_mode":"list","block":{"attributes":{"endpoint_id":{"type":"string","description":"UUID of the endpoint (UUID format).","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"Hostname of the endpoint. Only one of ip and hostname may be set.","description_kind":"plain","computed":true},"ip":{"type":"string","description":"IPv4 address of the endpoint (IP address). Only one of ip and hostname may be set.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the endpoint.","description_kind":"plain","computed":true},"port":{"type":"number","description":"TCP port of the endpoint.","description_kind":"plain","computed":true}},"description":"Direct access endpoint, it gives you an IP and a port to access your read-replica","description_kind":"plain"},"max_items":1},"private_network":{"nesting_mode":"list","block":{"attributes":{"endpoint_id":{"type":"string","description":"UUID of the endpoint (UUID format).","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"Hostname of the endpoint. Only one of ip and hostname may be set","description_kind":"plain","computed":true},"ip":{"type":"string","description":"IPv4 address of the endpoint (IP address). Only one of ip and hostname may be set","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the endpoints","description_kind":"plain","computed":true},"port":{"type":"number","description":"TCP port of the endpoint","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"UUID of the private network to be connected to the read replica (UUID format)","description_kind":"plain","required":true},"service_ip":{"type":"string","description":"The IP network address within the private subnet","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"Private network zone","description_kind":"plain","computed":true}},"description":"Private network endpoints","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_rdb_user":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the user is created","description_kind":"plain","required":true},"is_admin":{"type":"bool","description":"Grant admin permissions to database user","description_kind":"plain","optional":true},"name":{"type":"string","description":"Database user name","description_kind":"plain","required":true},"password":{"type":"string","description":"Database user password","description_kind":"plain","required":true,"sensitive":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_redis_cluster":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description":"public TLS certificate used by redis cluster, empty if tls is disabled","description_kind":"plain","computed":true},"cluster_size":{"type":"number","description":"Number of nodes for the cluster.","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the Redis cluster","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the redis cluster","description_kind":"plain","optional":true,"computed":true},"node_type":{"type":"string","description":"Type of node to use for the cluster","description_kind":"plain","required":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","required":true,"sensitive":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"settings":{"type":["map","string"],"description":"Map of settings to define for the cluster.","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] attached to a redis cluster","description_kind":"plain","optional":true},"tls_enabled":{"type":"bool","description":"Whether or not TLS is enabled.","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Redis cluster","description_kind":"plain","computed":true},"user_name":{"type":"string","description":"Name of the user created when the cluster is created","description_kind":"plain","required":true},"version":{"type":"string","description":"Redis version of the cluster","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"acl":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"Description of the rule.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"ID of the rule (UUID format).","description_kind":"plain","computed":true},"ip":{"type":"string","description":"IPv4 network address of the rule (IP network in a CIDR format).","description_kind":"plain","required":true}},"description":"List of acl rules.","description_kind":"plain"}},"private_network":{"nesting_mode":"set","block":{"attributes":{"endpoint_id":{"type":"string","description":"UUID of the endpoint to be connected to the cluster","description_kind":"plain","computed":true},"id":{"type":"string","description":"UUID of the private network to be connected to the cluster","description_kind":"plain","required":true},"service_ips":{"type":["list","string"],"description":"List of IPv4 addresses of the private network with a CIDR notation","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone of the resource","description_kind":"plain","computed":true}},"description":"Private network specs details","description_kind":"plain"}},"public_network":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"ips":{"type":["list","string"],"description_kind":"plain","computed":true},"port":{"type":"number","description":"TCP port of the endpoint","description_kind":"plain","computed":true}},"description":"Public network specs details","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"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"}},"scaleway_registry_namespace":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the container registry namespace","description_kind":"plain","optional":true},"endpoint":{"type":"string","description":"The endpoint reachable by docker","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_public":{"type":"bool","description":"Define the default visibity policy","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the container registry namespace","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_secret":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Date and time of secret's creation (RFC 3339 format)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the secret","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The secret name","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Status of the secret","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] associated to secret","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"Date and time of secret's creation (RFC 3339 format)","description_kind":"plain","computed":true},"version_count":{"type":"number","description":"The number of versions for this Secret","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_secret_version":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Date and time of secret version's creation (RFC 3339 format)","description_kind":"plain","computed":true},"data":{"type":"string","description":"The data payload of your secret version.","description_kind":"plain","required":true,"sensitive":true},"description":{"type":"string","description":"Description of the secret version","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"revision":{"type":"string","description":"The revision of secret version","description_kind":"plain","computed":true},"secret_id":{"type":"string","description":"The secret ID associated with this version","description_kind":"plain","required":true},"status":{"type":"string","description":"Status of the secret version","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Date and time of secret version's creation (RFC 3339 format)","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_tem_domain":{"version":0,"block":{"attributes":{"accept_tos":{"type":"bool","description":"Accept the Scaleway Terms of Service","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date and time of domain's creation (RFC 3339 format)","description_kind":"plain","computed":true},"dkim_config":{"type":"string","description":"DKIM public key, as should be recorded in the DNS zone","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_error":{"type":"string","description":"Error message if the last check failed","description_kind":"plain","computed":true},"last_valid_at":{"type":"string","description":"Date and time the domain was last found to be valid (RFC 3339 format)","description_kind":"plain","computed":true},"name":{"type":"string","description":"The domain name used when sending emails","description_kind":"plain","required":true},"next_check_at":{"type":"string","description":"Date and time of the next scheduled check (RFC 3339 format)","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"revoked_at":{"type":"string","description":"Date and time of the revocation of the domain (RFC 3339 format)","description_kind":"plain","computed":true},"smtp_host":{"type":"string","description":"SMTP host to use to send emails","description_kind":"plain","computed":true},"smtp_port":{"type":"number","description":"SMTP port to use to send emails over TLS. (Port 587)","description_kind":"plain","computed":true},"smtp_port_alternative":{"type":"number","description":"SMTP port to use to send emails over TLS. (Port 2587)","description_kind":"plain","computed":true},"smtp_port_unsecure":{"type":"number","description":"SMTP port to use to send emails. (Port 25)","description_kind":"plain","computed":true},"smtps_port":{"type":"number","description":"SMTPS port to use to send emails over TLS Wrapper. (Port 465)","description_kind":"plain","computed":true},"smtps_port_alternative":{"type":"number","description":"SMTPS port to use to send emails over TLS Wrapper. (Port 2465)","description_kind":"plain","computed":true},"spf_config":{"type":"string","description":"Snippet of the SPF record that should be registered in the DNS zone","description_kind":"plain","computed":true},"status":{"type":"string","description":"Status of the domain","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_vpc":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the private network","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_default":{"type":"bool","description":"Defines whether the VPC is the default one for its Project","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the VPC","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the VPC","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the private network","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_vpc_gateway_network":{"version":0,"block":{"attributes":{"cleanup_dhcp":{"type":"bool","description":"Remove DHCP config on this network on destroy","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"The date and time of the creation of the gateway network","description_kind":"plain","computed":true},"dhcp_id":{"type":"string","description":"The ID of the public gateway DHCP config","description_kind":"plain","optional":true},"enable_dhcp":{"type":"bool","description":"Enable DHCP config on this network","description_kind":"plain","optional":true},"enable_masquerade":{"type":"bool","description":"Enable masquerade on this network","description_kind":"plain","optional":true},"gateway_id":{"type":"string","description":"The ID of the public gateway where connect to","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mac_address":{"type":"string","description":"The mac address on this network","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"The ID of the private network where connect to","description_kind":"plain","required":true},"static_address":{"type":"string","description":"The static IP address in CIDR on this network","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the gateway network","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_vpc_private_network":{"version":1,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the private network","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_regional":{"type":"bool","description":"Defines whether the private network is Regional. By default, it will be Zonal","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"name":{"type":"string","description":"The name of the private network","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The tags associated with private network","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the private network","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description":"The VPC in which to create the private network","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","deprecated":true,"optional":true,"computed":true}},"block_types":{"ipv4_subnet":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description":"The network address of the subnet in dotted decimal notation, e.g., '192.168.0.0' for a '192.168.0.0/24' subnet","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the subnet","description_kind":"plain","computed":true},"id":{"type":"string","description":"The subnet ID","description_kind":"plain","computed":true},"prefix_length":{"type":"number","description":"The length of the network prefix, e.g., 24 for a 255.255.255.0 mask","description_kind":"plain","computed":true},"subnet":{"type":"string","description":"The subnet CIDR","description_kind":"plain","optional":true,"computed":true},"subnet_mask":{"type":"string","description":"The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the subnet","description_kind":"plain","computed":true}},"description":"The IPv4 subnet associated with the private network","description_kind":"plain"},"max_items":1},"ipv6_subnets":{"nesting_mode":"set","block":{"attributes":{"address":{"type":"string","description":"The network address of the subnet in dotted decimal notation, e.g., '192.168.0.0' for a '192.168.0.0/24' subnet","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the subnet","description_kind":"plain","computed":true},"id":{"type":"string","description":"The subnet ID","description_kind":"plain","computed":true},"prefix_length":{"type":"number","description":"The length of the network prefix, e.g., 24 for a 255.255.255.0 mask","description_kind":"plain","computed":true},"subnet":{"type":"string","description":"The subnet CIDR","description_kind":"plain","optional":true,"computed":true},"subnet_mask":{"type":"string","description":"The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the subnet","description_kind":"plain","computed":true}},"description":"The IPv6 subnet associated with the private network","description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_vpc_public_gateway":{"version":0,"block":{"attributes":{"bastion_enabled":{"type":"bool","description":"Enable SSH bastion on the gateway","description_kind":"plain","optional":true},"bastion_port":{"type":"number","description":"Port of the SSH bastion","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the public gateway","description_kind":"plain","computed":true},"enable_smtp":{"type":"bool","description":"Enable SMTP on the gateway","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_id":{"type":"string","description":"attach an existing IP to the gateway","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"name of the gateway","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The tags associated with public gateway","description_kind":"plain","optional":true},"type":{"type":"string","description":"gateway type","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the public gateway","description_kind":"plain","computed":true},"upstream_dns_servers":{"type":["list","string"],"description":"override the gateway's default recursive DNS servers, if DNS features are enabled","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_dhcp":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The address of the DHCP server. This will be the gateway's address in the private network. Defaults to the first address of the subnet","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the public gateway.","description_kind":"plain","computed":true},"dns_local_name":{"type":"string","description":"TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to `priv`.","description_kind":"plain","optional":true,"computed":true},"dns_search":{"type":["list","string"],"description":"Additional DNS search paths.","description_kind":"plain","optional":true,"computed":true},"dns_servers_override":{"type":["list","string"],"description":"Override the DNS server list pushed to DHCP clients, instead of the gateway itself.","description_kind":"plain","optional":true,"computed":true},"enable_dynamic":{"type":"bool","description":"Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to true.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"pool_high":{"type":"string","description":"High IP (included) of the dynamic address pool. Defaults to the last address of the subnet.","description_kind":"plain","optional":true,"computed":true},"pool_low":{"type":"string","description":"Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"push_default_route":{"type":"bool","description":"Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to true.","description_kind":"plain","optional":true,"computed":true},"push_dns_server":{"type":"bool","description":"Whether the gateway should push custom DNS servers to clients. This allows for instance hostname -\u003e IP resolution. Defaults to true.","description_kind":"plain","optional":true,"computed":true},"rebind_timer":{"type":"number","description":"After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. Defaults to 51m (3060s).","description_kind":"plain","optional":true,"computed":true},"renew_timer":{"type":"number","description":"After how long, in seconds, a renew will be attempted. Must be 30s lower than `rebind_timer`. Defaults to 50m (3000s).","description_kind":"plain","optional":true,"computed":true},"subnet":{"type":"string","description":"Subnet for the DHCP server","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the public gateway.","description_kind":"plain","computed":true},"valid_lifetime":{"type":"number","description":"For how long, in seconds, will DHCP entries will be valid. Defaults to 1h (3600s).","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_dhcp_reservation":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The configuration creation date.","description_kind":"plain","computed":true},"gateway_network_id":{"type":"string","description":"The ID of the owning GatewayNetwork (UUID format).","description_kind":"plain","required":true},"hostname":{"type":"string","description":"The Hostname of the client machine.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The IP address to give to the machine (IPv4 address).","description_kind":"plain","required":true},"mac_address":{"type":"string","description":"The MAC address to give a static entry to.","description_kind":"plain","required":true},"type":{"type":"string","description":"The reservation type, either static (DHCP reservation) or dynamic (DHCP lease). Possible values are reservation and lease","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The configuration last modification date.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"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"}},"scaleway_vpc_public_gateway_ip":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"the IP itself","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the public gateway IP","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"reverse":{"type":"string","description":"reverse domain name for the IP address","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The tags associated with public gateway IP","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the public gateway IP","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_ip_reverse_dns":{"version":0,"block":{"attributes":{"gateway_ip_id":{"type":"string","description":"The IP ID","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"reverse":{"type":"string","description":"The reverse DNS for this IP","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_pat_rule":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the PAT rule","description_kind":"plain","computed":true},"gateway_id":{"type":"string","description":"The ID of the gateway this PAT rule is applied to","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"private_ip":{"type":"string","description":"The private IP used in the PAT rule","description_kind":"plain","required":true},"private_port":{"type":"number","description":"The private port used in the PAT rule","description_kind":"plain","required":true},"protocol":{"type":"string","description":"The protocol used in the PAT rule","description_kind":"plain","optional":true},"public_port":{"type":"number","description":"The public port used in the PAT rule","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the PAT rule","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"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"}},"scaleway_webhosting":{"version":0,"block":{"attributes":{"cpanel_urls":{"type":["list",["object",{"dashboard":"string","webmail":"string"}]],"description":"URL to connect to cPanel Dashboard and to Webmail interface","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Date and time of hosting's creation (RFC 3339 format)","description_kind":"plain","computed":true},"dns_status":{"type":"string","description":"DNS status of the hosting","description_kind":"plain","computed":true},"domain":{"type":"string","description":"The domain name of the hosting","description_kind":"plain","required":true},"email":{"type":"string","description":"Contact email of the client for the hosting","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"offer_id":{"type":"string","description":"The ID of the selected offer for the hosting","description_kind":"plain","required":true},"offer_name":{"type":"string","description":"Name of the active offer","description_kind":"plain","computed":true},"option_ids":{"type":["list","string"],"description":"IDs of the selected options for the hosting","description_kind":"plain","optional":true},"options":{"type":["list",["object",{"id":"string","name":"string"}]],"description":"Active options of the hosting","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"platform_hostname":{"type":"string","description":"Hostname of the host platform","description_kind":"plain","computed":true},"platform_number":{"type":"number","description":"Number of the host platform","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"The hosting status","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags of the hosting","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"Date and time of hosting's last update (RFC 3339 format)","description_kind":"plain","computed":true},"username":{"type":"string","description":"Main hosting cPanel username","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"data_source_schemas":{"scaleway_account_project":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the Project (Format ISO 8601)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the project","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the project","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The ID of the SSH key","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Project (Format ISO 8601)","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_account_ssh_key":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the iam SSH Key","description_kind":"plain","computed":true},"disabled":{"type":"bool","description":"The SSH key status","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam SSH key","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"public_key":{"type":"string","description":"The public SSH key","description_kind":"plain","computed":true},"ssh_key_id":{"type":"string","description":"The ID of the SSH key","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the iam SSH Key","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_availability_zones":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region is represented as a Geographical area such as France","description_kind":"plain","optional":true},"zones":{"type":["list","string"],"description":"Availability Zones (AZ)","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_baremetal_offer":{"version":0,"block":{"attributes":{"bandwidth":{"type":"number","description":"Available Bandwidth with the offer","description_kind":"plain","computed":true},"commercial_range":{"type":"string","description":"Commercial range of the offer","description_kind":"plain","computed":true},"cpu":{"type":["list",["object",{"core_count":"number","frequency":"number","name":"string","thread_count":"number"}]],"description":"CPU specifications of the offer","description_kind":"plain","computed":true},"disk":{"type":["list",["object",{"capacity":"number","type":"string"}]],"description":"Disk specifications of the offer","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"include_disabled":{"type":"bool","description":"Include disabled offers","description_kind":"plain","optional":true},"memory":{"type":["list",["object",{"capacity":"number","frequency":"number","is_ecc":"bool","type":"string"}]],"description":"Memory specifications of the offer","description_kind":"plain","computed":true},"name":{"type":"string","description":"Exact name of the desired offer","description_kind":"plain","optional":true},"offer_id":{"type":"string","description":"ID of the desired offer","description_kind":"plain","optional":true},"stock":{"type":"string","description":"Stock status for this offer","description_kind":"plain","computed":true},"subscription_period":{"type":"string","description":"Period of subscription the desired offer","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_baremetal_option":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"manageable":{"type":"bool","description":"Is false if the option could not be added or removed","description_kind":"plain","computed":true},"name":{"type":"string","description":"Exact label of the desired option","description_kind":"plain","optional":true},"option_id":{"type":"string","description":"The ID of the option","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_baremetal_os":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Exact label of the desired image","description_kind":"plain","optional":true},"os_id":{"type":"string","description":"The ID of the os","description_kind":"plain","optional":true},"version":{"type":"string","description":"Version string of the desired OS","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_baremetal_server":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Some description to associate to the server, max 255 characters","description_kind":"plain","computed":true},"domain":{"type":"string","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"Hostname of the server","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"install_config_afterward":{"type":"bool","description":"If True, this boolean allows to create a server without the install config if you want to provide it later","description_kind":"plain","computed":true},"ips":{"type":["list",["object",{"address":"string","id":"string","reverse":"string","version":"string"}]],"description":"IP addresses attached to the server.","description_kind":"plain","computed":true},"ipv4":{"type":["list",["object",{"address":"string","id":"string","reverse":"string","version":"string"}]],"description":"IPv4 addresses attached to the server","description_kind":"plain","computed":true},"ipv6":{"type":["list",["object",{"address":"string","id":"string","reverse":"string","version":"string"}]],"description":"IPv6 addresses attached to the server","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the server","description_kind":"plain","optional":true},"offer":{"type":"string","description":"ID or name of the server offer","description_kind":"plain","computed":true},"offer_id":{"type":"string","description":"ID of the server offer","description_kind":"plain","computed":true},"offer_name":{"type":"string","description":"Name of the server offer","description_kind":"plain","computed":true},"options":{"type":["set",["object",{"expires_at":"string","id":"string","name":"string"}]],"description":"The options to enable on server","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"os":{"type":"string","description":"The base image of the server","description_kind":"plain","computed":true},"os_name":{"type":"string","description":"The base image name of the server","description_kind":"plain","computed":true},"password":{"type":"string","description":"Password used for the installation.","description_kind":"plain","computed":true},"private_network":{"type":["set",["object",{"created_at":"string","id":"string","status":"string","updated_at":"string","vlan":"number"}]],"description":"The private networks to attach to the server","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"reinstall_on_config_changes":{"type":"bool","description":"If True, this boolean allows to reinstall the server on SSH key IDs, user or password changes","description_kind":"plain","computed":true},"server_id":{"type":"string","description":"The ID of the server","description_kind":"plain","optional":true},"service_password":{"type":"string","description":"Password used for the service to install.","description_kind":"plain","computed":true},"service_user":{"type":"string","description":"User used for the service to install.","description_kind":"plain","computed":true},"ssh_key_ids":{"type":["list","string"],"description":"Array of SSH key IDs allowed to SSH to the server\n\n**NOTE** : If you are attempting to update your SSH key IDs, it will induce the reinstall of your server. \nIf this behaviour is wanted, please set 'reinstall_on_ssh_key_changes' argument to true.","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"Array of tags to associate with the server","description_kind":"plain","computed":true},"user":{"type":"string","description":"User used for the installation.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_cockpit":{"version":0,"block":{"attributes":{"endpoints":{"type":["list",["object",{"alertmanager_url":"string","grafana_url":"string","logs_url":"string","metrics_url":"string"}]],"description":"Endpoints","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plan_id":{"type":"string","description":"The plan ID of the cockpit","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_cockpit_plan":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the plan","description_kind":"plain","required":true}},"description_kind":"plain"}},"scaleway_container":{"version":0,"block":{"attributes":{"container_id":{"type":"string","description":"The ID of the Container","description_kind":"plain","optional":true},"cpu_limit":{"type":"number","description":"The amount of vCPU computing resources to allocate to each container. Defaults to 70.","description_kind":"plain","computed":true},"cron_status":{"type":"string","description":"The cron status","description_kind":"plain","computed":true},"deploy":{"type":"bool","description":"This allows you to control your production environment","description_kind":"plain","computed":true},"description":{"type":"string","description":"The container description","description_kind":"plain","computed":true},"domain_name":{"type":"string","description":"The native container domain name.","description_kind":"plain","computed":true},"environment_variables":{"type":["map","string"],"description":"The environment variables to be injected into your container at runtime.","description_kind":"plain","computed":true},"error_message":{"type":"string","description":"The error description","description_kind":"plain","computed":true},"http_option":{"type":"string","description":"HTTP traffic configuration","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_concurrency":{"type":"number","description":"The maximum the number of simultaneous requests your container can handle at the same time. Defaults to 50.","description_kind":"plain","computed":true},"max_scale":{"type":"number","description":"The maximum of number of instances this container can scale to. Default to 20.","description_kind":"plain","computed":true},"memory_limit":{"type":"number","description":"The memory computing resources in MB to allocate to each container. Defaults to 128.","description_kind":"plain","computed":true},"min_scale":{"type":"number","description":"The minimum of running container instances continuously. Defaults to 0.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The container name","description_kind":"plain","optional":true},"namespace_id":{"type":"string","description":"The ID of the Container namespace","description_kind":"plain","required":true},"port":{"type":"number","description":"The port to expose the container. Defaults to 8080","description_kind":"plain","computed":true},"privacy":{"type":"string","description":"The privacy type define the way to authenticate to your container","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The communication protocol http1 or h2c. Defaults to http1.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"registry_image":{"type":"string","description":"The scaleway registry image address","description_kind":"plain","computed":true},"registry_sha256":{"type":"string","description":"The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string","description_kind":"plain","computed":true},"secret_environment_variables":{"type":["map","string"],"description":"The secret environment variables to be injected into your container at runtime.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The container status","description_kind":"plain","computed":true},"timeout":{"type":"number","description":"The maximum amount of time in seconds during which your container can process a request before we stop it. Defaults to 300s.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_container_namespace":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the container namespace","description_kind":"plain","computed":true},"destroy_registry":{"type":"bool","description":"Destroy registry on deletion","description_kind":"plain","computed":true},"environment_variables":{"type":["map","string"],"description":"The environment variables of the container namespace","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the container namespace","description_kind":"plain","optional":true},"namespace_id":{"type":"string","description":"The ID of the Container namespace","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"registry_endpoint":{"type":"string","description":"The endpoint reachable by docker","description_kind":"plain","computed":true},"registry_namespace_id":{"type":"string","description":"The ID of the registry namespace","description_kind":"plain","computed":true},"secret_environment_variables":{"type":["map","string"],"description":"The secret environment variables of the container namespace","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_domain_record":{"version":0,"block":{"attributes":{"data":{"type":"string","description":"The data of the record","description_kind":"plain","optional":true},"dns_zone":{"type":"string","description":"The zone you want to add the record in","description_kind":"plain","optional":true},"geo_ip":{"type":["list",["object",{"matches":["list",["object",{"continents":["list","string"],"countries":["list","string"],"data":"string"}]]}]],"description":"Return record based on client localisation","description_kind":"plain","computed":true},"http_service":{"type":["list",["object",{"ips":["list","string"],"must_contain":"string","strategy":"string","url":"string","user_agent":"string"}]],"description":"Return record based on client localisation","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keep_empty_zone":{"type":"bool","description":"When destroy a resource record, if a zone have only NS, delete the zone","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the record","description_kind":"plain","optional":true},"priority":{"type":"number","description":"The priority of the record","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"record_id":{"type":"string","description":"The ID of the record","description_kind":"plain","optional":true},"root_zone":{"type":"bool","description":"Does the DNS zone is the root zone or not","description_kind":"plain","computed":true},"ttl":{"type":"number","description":"The ttl of the record","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of the record","description_kind":"plain","optional":true},"view":{"type":["list",["object",{"data":"string","subnet":"string"}]],"description":"Return record based on client subnet","description_kind":"plain","computed":true},"weighted":{"type":["list",["object",{"ip":"string","weight":"number"}]],"description":"Return record based on weight","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_domain_zone":{"version":0,"block":{"attributes":{"domain":{"type":"string","description":"The domain where the DNS zone will be created.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"message":{"type":"string","description":"Message","description_kind":"plain","computed":true},"ns":{"type":["list","string"],"description":"NameServer list for zone.","description_kind":"plain","computed":true},"ns_default":{"type":["list","string"],"description":"NameServer default list for zone.","description_kind":"plain","computed":true},"ns_master":{"type":["list","string"],"description":"NameServer master list for zone.","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"status":{"type":"string","description":"The domain zone status.","description_kind":"plain","computed":true},"subdomain":{"type":"string","description":"The subdomain of the DNS zone to create.","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the DNS zone.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_flexible_ip":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the Flexible IP (Format ISO 8601)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the flexible IP","description_kind":"plain","computed":true},"flexible_ip_id":{"type":"string","description":"The ID of the IPv4 address","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The IPv4 address","description_kind":"plain","optional":true},"is_ipv6":{"type":"bool","description":"Defines whether the flexible IP has an IPv6 address","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"reverse":{"type":"string","description":"The reverse DNS for this flexible IP","description_kind":"plain","computed":true},"server_id":{"type":"string","description":"The baremetal server associated with this flexible IP","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the flexible IP","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the flexible IP","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Flexible IP (Format ISO 8601)","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_flexible_ips":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ips":{"type":["list",["object",{"created_at":"string","description":"string","id":"string","ip_address":"string","mac_address":["list",["object",{"created_at":"string","id":"string","mac_address":"string","mac_type":"string","status":"string","updated_at":"string","zone":"string"}]],"organization_id":"string","project_id":"string","reverse":"string","status":"string","tags":["list","string"],"updated_at":"string","zone":"string"}]],"description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"server_ids":{"type":["list","string"],"description":"Flexible IPs that are attached to these server IDs are listed","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Flexible IPs with these exact tags are listed","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_function":{"version":0,"block":{"attributes":{"cpu_limit":{"type":"number","description":"CPU limit in mCPU for your function","description_kind":"plain","computed":true},"deploy":{"type":"bool","description":"Define if the function should be deployed, terraform will wait for function to be deployed","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the function","description_kind":"plain","computed":true},"domain_name":{"type":"string","description":"The native function domain name.","description_kind":"plain","computed":true},"environment_variables":{"type":["map","string"],"description":"The environment variables of the function","description_kind":"plain","computed":true},"function_id":{"type":"string","description":"The ID of the function","description_kind":"plain","optional":true},"handler":{"type":"string","description":"Handler of the function. Depends on the runtime https://developers.scaleway.com/en/products/functions/api/#create-a-function","description_kind":"plain","computed":true},"http_option":{"type":"string","description":"HTTP traffic configuration","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_scale":{"type":"number","description":"Maximum replicas for your function (defaults to 20), our system will scale your functions automatically based on incoming workload, but will never scale the number of replicas above the configured max_scale.","description_kind":"plain","computed":true},"memory_limit":{"type":"number","description":"Memory limit in MB for your function, defaults to 128MB","description_kind":"plain","computed":true},"min_scale":{"type":"number","description":"Minimum replicas for your function, defaults to 0, Note that a function is billed when it gets executed, and using a min_scale greater than 0 will cause your function to run all the time.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the function","description_kind":"plain","optional":true},"namespace_id":{"type":"string","description":"The namespace ID associated with this function","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"privacy":{"type":"string","description":"Privacy of the function. Can be either `private` or `public`","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","computed":true},"runtime":{"type":"string","description":"Runtime of the function","description_kind":"plain","computed":true},"secret_environment_variables":{"type":["map","string"],"description":"The secret environment variables to be injected into your function at runtime.","description_kind":"plain","computed":true},"timeout":{"type":"number","description":"Holds the max duration (in seconds) the function is allowed for responding to a request","description_kind":"plain","computed":true},"zip_file":{"type":"string","description":"Location of the zip file to upload containing your function sources","description_kind":"plain","computed":true},"zip_hash":{"type":"string","description":"The hash of your source zip file, changing it will re-apply function. Can be any string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_function_namespace":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the function namespace","description_kind":"plain","computed":true},"environment_variables":{"type":["map","string"],"description":"The environment variables of the function namespace","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the function namespace","description_kind":"plain","optional":true},"namespace_id":{"type":"string","description":"The ID of the function namespace","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"registry_endpoint":{"type":"string","description":"The endpoint reachable by docker","description_kind":"plain","computed":true},"registry_namespace_id":{"type":"string","description":"The ID of the registry namespace","description_kind":"plain","computed":true},"secret_environment_variables":{"type":["map","string"],"description":"The environment variables of the function namespace","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_iam_application":{"version":0,"block":{"attributes":{"application_id":{"type":"string","description":"The ID of the IAM application","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"The date and time of the creation of the application","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the iam application","description_kind":"plain","computed":true},"editable":{"type":"bool","description":"Whether or not the application is editable.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam application","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id the application is associated to","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the application","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_iam_group":{"version":0,"block":{"attributes":{"application_ids":{"type":["set","string"],"description":"List of IDs of the applications attached to the group","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the group","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the iam group","description_kind":"plain","computed":true},"external_membership":{"type":"bool","description":"Handle user and application memberships externally","description_kind":"plain","computed":true},"group_id":{"type":"string","description":"The ID of the IAM group","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam group","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the group","description_kind":"plain","computed":true},"user_ids":{"type":["set","string"],"description":"List of IDs of the users attached to the group","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_iam_ssh_key":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the iam SSH Key","description_kind":"plain","computed":true},"disabled":{"type":"bool","description":"The SSH key status","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam SSH key","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"public_key":{"type":"string","description":"The public SSH key","description_kind":"plain","computed":true},"ssh_key_id":{"type":"string","description":"The ID of the SSH key","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the iam SSH Key","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_iam_user":{"version":0,"block":{"attributes":{"email":{"type":"string","description":"The email address of the IAM user","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","optional":true},"user_id":{"type":"string","description":"The ID of the IAM user","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_instance_image":{"version":0,"block":{"attributes":{"additional_volume_ids":{"type":["list","string"],"description":"The additional volume IDs attached to the image","description_kind":"plain","computed":true},"architecture":{"type":"string","description":"Architecture of the desired image","description_kind":"plain","optional":true},"creation_date":{"type":"string","description":"Date when the image was created","description_kind":"plain","computed":true},"default_bootscript_id":{"type":"string","description":"ID of the bootscript associated with this image","description_kind":"plain","computed":true},"from_server_id":{"type":"string","description":"ID of the server the image is originated from","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description":"ID of the desired image","description_kind":"plain","optional":true},"latest":{"type":"bool","description":"Select most recent image if multiple match","description_kind":"plain","optional":true},"modification_date":{"type":"string","description":"Date when the image was updated","description_kind":"plain","computed":true},"name":{"type":"string","description":"Exact name of the desired image","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"public":{"type":"bool","description":"Indication if the image is public","description_kind":"plain","computed":true},"root_volume_id":{"type":"string","description":"ID of the root volume associated with this image","description_kind":"plain","computed":true},"state":{"type":"string","description":"State of the image","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_instance_ip":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The IP address","description_kind":"plain","optional":true},"id":{"type":"string","description":"The ID of the IP address","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"prefix":{"type":"string","description":"The IP prefix","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"reverse":{"type":"string","description":"The reverse DNS for this IP","description_kind":"plain","computed":true},"server_id":{"type":"string","description":"The server associated with this IP","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the ip","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of instance IP","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_instance_private_nic":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_ids":{"type":["list","string"],"description":"IPAM ip list, should be for internal use only","description_kind":"plain","computed":true},"mac_address":{"type":"string","description":"MAC address of the NIC","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"The private network ID","description_kind":"plain","optional":true},"private_nic_id":{"type":"string","description":"The ID of the Private NIC","description_kind":"plain","optional":true},"server_id":{"type":"string","description":"The server ID","description_kind":"plain","required":true},"tags":{"type":["list","string"],"description":"The tags associated with the private-nic","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_instance_security_group":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the security group","description_kind":"plain","computed":true},"enable_default_security":{"type":"bool","description":"Enable blocking of SMTP on IPv4 and IPv6","description_kind":"plain","computed":true},"external_rules":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inbound_default_policy":{"type":"string","description":"Default inbound traffic policy for this security group","description_kind":"plain","computed":true},"inbound_rule":{"type":["list",["object",{"action":"string","ip":"string","ip_range":"string","port":"number","port_range":"string","protocol":"string"}]],"description":"Inbound rules for this security group","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the security group","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"outbound_default_policy":{"type":"string","description":"Default outbound traffic policy for this security group","description_kind":"plain","computed":true},"outbound_rule":{"type":["list",["object",{"action":"string","ip":"string","ip_range":"string","port":"number","port_range":"string","protocol":"string"}]],"description":"Outbound rules for this security group","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"security_group_id":{"type":"string","description":"The ID of the security group","description_kind":"plain","optional":true},"stateful":{"type":"bool","description":"The stateful value of the security group","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the security group","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_instance_server":{"version":0,"block":{"attributes":{"additional_volume_ids":{"type":["list","string"],"description":"The additional volumes attached to the server","description_kind":"plain","computed":true},"boot_type":{"type":"string","description":"The boot type of the server","description_kind":"plain","computed":true},"bootscript_id":{"type":"string","description":"ID of the target bootscript (set boot_type to bootscript)","description_kind":"plain","computed":true},"cloud_init":{"type":"string","description":"The cloud init script associated with this server","description_kind":"plain","computed":true},"enable_dynamic_ip":{"type":"bool","description":"Enable dynamic IP on the server","description_kind":"plain","computed":true},"enable_ipv6":{"type":"bool","description":"Determines if IPv6 is enabled for the server","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image":{"type":"string","description":"The UUID or the label of the base image used by the server","description_kind":"plain","computed":true},"ip_id":{"type":"string","description":"The ID of the reserved IP for the server","description_kind":"plain","computed":true},"ip_ids":{"type":["list","string"],"description_kind":"plain","computed":true},"ipv6_address":{"type":"string","description":"The default public IPv6 address routed to the server.","description_kind":"plain","computed":true},"ipv6_gateway":{"type":"string","description":"The IPv6 gateway address","description_kind":"plain","computed":true},"ipv6_prefix_length":{"type":"number","description":"The IPv6 prefix length routed to the server.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the server","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"placement_group_id":{"type":"string","description":"The placement group the server is attached to","description_kind":"plain","computed":true},"placement_group_policy_respected":{"type":"bool","description":"True when the placement group policy is respected","description_kind":"plain","computed":true},"private_ip":{"type":"string","description":"The Scaleway internal IP address of the server","description_kind":"plain","computed":true},"private_network":{"type":["list",["object",{"mac_address":"string","pn_id":"string","status":"string","zone":"string"}]],"description":"List of private network to connect with your instance","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"public_ip":{"type":"string","description":"The public IPv4 address of the server","description_kind":"plain","computed":true},"public_ips":{"type":["list",["object",{"address":"string","id":"string"}]],"description":"List of public IPs attached to your instance","description_kind":"plain","computed":true},"replace_on_type_change":{"type":"bool","description":"Delete and re-create server if type change","description_kind":"plain","computed":true},"root_volume":{"type":["list",["object",{"boot":"bool","delete_on_termination":"bool","name":"string","size_in_gb":"number","volume_id":"string","volume_type":"string"}]],"description":"Root volume attached to the server on creation","description_kind":"plain","computed":true},"routed_ip_enabled":{"type":"bool","description":"If server supports routed IPs, default to true if public_ips is used","description_kind":"plain","computed":true},"security_group_id":{"type":"string","description":"The security group the server is attached to","description_kind":"plain","computed":true},"server_id":{"type":"string","description":"The ID of the server","description_kind":"plain","optional":true},"state":{"type":"string","description":"The state of the server should be: started, stopped, standby","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the server","description_kind":"plain","computed":true},"type":{"type":"string","description":"The instance type of the server","description_kind":"plain","computed":true},"user_data":{"type":["map","string"],"description":"The user data associated with the server","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_instance_servers":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Servers with a name like it are listed.","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"servers":{"type":["list",["object",{"boot_type":"string","bootscript_id":"string","enable_dynamic_ip":"bool","enable_ipv6":"bool","id":"string","image":"string","ipv6_address":"string","ipv6_gateway":"string","ipv6_prefix_length":"number","name":"string","organization_id":"string","placement_group_id":"string","placement_group_policy_respected":"bool","private_ip":"string","project_id":"string","public_ip":"string","public_ips":["list",["object",{"address":"string","id":"string"}]],"routed_ip_enabled":"bool","security_group_id":"string","state":"string","tags":["list","string"],"type":"string","zone":"string"}]],"description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"Servers with these exact tags are listed.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_instance_snapshot":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the snapshot","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"import":{"type":["list",["object",{"bucket":"string","key":"string"}]],"description":"Import snapshot from a qcow","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the snapshot","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"size_in_gb":{"type":"number","description":"The size of the snapshot in gigabyte","description_kind":"plain","computed":true},"snapshot_id":{"type":"string","description":"The ID of the snapshot","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The tags associated with the snapshot","description_kind":"plain","computed":true},"type":{"type":"string","description":"The snapshot's volume type","description_kind":"plain","computed":true},"volume_id":{"type":"string","description":"ID of the volume to take a snapshot from","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_instance_volume":{"version":0,"block":{"attributes":{"from_snapshot_id":{"type":"string","description":"Create a volume based on a image","description_kind":"plain","computed":true},"from_volume_id":{"type":"string","description":"Create a copy of an existing volume","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the volume","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"server_id":{"type":"string","description":"The server associated with this volume","description_kind":"plain","computed":true},"size_in_gb":{"type":"number","description":"The size of the volume in gigabyte","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the volume","description_kind":"plain","computed":true},"type":{"type":"string","description":"The volume type","description_kind":"plain","computed":true},"volume_id":{"type":"string","description":"The ID of the volume","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_iot_device":{"version":0,"block":{"attributes":{"allow_insecure":{"type":"bool","description":"Allow plain and server-authenticated SSL connections in addition to mutually-authenticated ones","description_kind":"plain","computed":true},"allow_multiple_connections":{"type":"bool","description":"Allow multiple connections","description_kind":"plain","computed":true},"certificate":{"type":["list",["object",{"crt":"string","key":"string"}]],"description":"Certificate section of the device","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the device","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the device","description_kind":"plain","computed":true},"device_id":{"type":"string","description":"The ID of the IOT Device","description_kind":"plain","optional":true},"hub_id":{"type":"string","description":"The ID of the hub on which this device will be created","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_connected":{"type":"bool","description":"The MQTT connection status of the device","description_kind":"plain","computed":true},"last_activity_at":{"type":"string","description":"The date and time of last MQTT activity of the device","description_kind":"plain","computed":true},"message_filters":{"type":["list",["object",{"publish":["list",["object",{"policy":"string","topics":["list","string"]}]],"subscribe":["list",["object",{"policy":"string","topics":["list","string"]}]]}]],"description":"Rules to authorize or deny the device to publish/subscribe to specific topics","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the device","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the device","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the device","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_iot_hub":{"version":0,"block":{"attributes":{"connected_device_count":{"type":"number","description":"The current number of connected devices in the Hub","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the IoT Hub","description_kind":"plain","computed":true},"device_auto_provisioning":{"type":"bool","description":"Wether to enable the device auto provisioning or not","description_kind":"plain","computed":true},"device_count":{"type":"number","description":"The number of registered devices in the Hub","description_kind":"plain","computed":true},"disable_events":{"type":"bool","description":"Whether to enable the hub events or not","description_kind":"plain","computed":true},"enabled":{"type":"bool","description":"Whether to enable the hub or not","description_kind":"plain","computed":true},"endpoint":{"type":"string","description":"The endpoint to connect the devices to","description_kind":"plain","computed":true},"events_topic_prefix":{"type":"string","description":"Topic prefix for the hub events","description_kind":"plain","computed":true},"hub_ca":{"type":"string","description":"Custom user provided certificate authority","description_kind":"plain","computed":true},"hub_ca_challenge":{"type":"string","description":"Challenge certificate for the user provided hub CA","description_kind":"plain","computed":true},"hub_id":{"type":"string","description":"The ID of the IOT Hub","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the hub","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"product_plan":{"type":"string","description":"The product plan of the hub","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the hub","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the IoT Hub","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_ipam_ip":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mac_address":{"type":"string","description_kind":"plain","optional":true},"private_network_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"type":{"type":"string","description":"IP Type (ipv4, ipv6)","description_kind":"plain","required":true}},"block_types":{"resource":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true},"type":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"scaleway_k8s_cluster":{"version":0,"block":{"attributes":{"admission_plugins":{"type":["list","string"],"description":"The list of admission plugins to enable on the cluster","description_kind":"plain","computed":true},"apiserver_cert_sans":{"type":["list","string"],"description":"Additional Subject Alternative Names for the Kubernetes API server certificate","description_kind":"plain","computed":true},"apiserver_url":{"type":"string","description":"Kubernetes API server URL","description_kind":"plain","computed":true},"auto_upgrade":{"type":["list",["object",{"enable":"bool","maintenance_window_day":"string","maintenance_window_start_hour":"number"}]],"description":"The auto upgrade configuration for the cluster","description_kind":"plain","computed":true},"autoscaler_config":{"type":["list",["object",{"balance_similar_node_groups":"bool","disable_scale_down":"bool","estimator":"string","expander":"string","expendable_pods_priority_cutoff":"number","ignore_daemonsets_utilization":"bool","max_graceful_termination_sec":"number","scale_down_delay_after_add":"string","scale_down_unneeded_time":"string","scale_down_utilization_threshold":"number"}]],"description":"The autoscaler configuration for the cluster","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"The ID of the cluster","description_kind":"plain","optional":true},"cni":{"type":"string","description":"The CNI plugin of the cluster","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the Kubernetes cluster","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the cluster","description_kind":"plain","computed":true},"feature_gates":{"type":["list","string"],"description":"The list of feature gates to enable on the cluster","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubeconfig":{"type":["list",["object",{"cluster_ca_certificate":"string","config_file":"string","host":"string","token":"string"}]],"description":"The kubeconfig configuration file of the Kubernetes cluster","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the cluster","description_kind":"plain","optional":true},"open_id_connect_config":{"type":["list",["object",{"client_id":"string","groups_claim":["list","string"],"groups_prefix":"string","issuer_url":"string","required_claim":["list","string"],"username_claim":"string","username_prefix":"string"}]],"description":"The OpenID Connect configuration of the cluster","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"The ID of the cluster's private network","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the cluster","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the cluster","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of cluster","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Kubernetes cluster","description_kind":"plain","computed":true},"upgrade_available":{"type":"bool","description":"True if an upgrade is available","description_kind":"plain","computed":true},"version":{"type":"string","description":"The version of the cluster","description_kind":"plain","computed":true},"wildcard_dns":{"type":"string","description":"Wildcard DNS pointing to all the ready nodes","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_k8s_pool":{"version":0,"block":{"attributes":{"autohealing":{"type":"bool","description":"Enable the autohealing on the pool","description_kind":"plain","computed":true},"autoscaling":{"type":"bool","description":"Enable the autoscaling on the pool","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"The ID of the cluster on which this pool will be created","description_kind":"plain","optional":true},"container_runtime":{"type":"string","description":"Container runtime for the pool","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the pool","description_kind":"plain","computed":true},"current_size":{"type":"number","description":"The actual size of the pool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubelet_args":{"type":["map","string"],"description":"The Kubelet arguments to be used by this pool","description_kind":"plain","computed":true},"max_size":{"type":"number","description":"Maximum size of the pool","description_kind":"plain","computed":true},"min_size":{"type":"number","description":"Minimum size of the pool","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the cluster","description_kind":"plain","optional":true},"node_type":{"type":"string","description":"Server type of the pool servers","description_kind":"plain","computed":true},"nodes":{"type":["list",["object",{"name":"string","public_ip":"string","public_ip_v6":"string","status":"string"}]],"description_kind":"plain","computed":true},"placement_group_id":{"type":"string","description":"ID of the placement group","description_kind":"plain","computed":true},"pool_id":{"type":"string","description":"The ID of the pool","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"root_volume_size_in_gb":{"type":"number","description":"The size of the system volume of the nodes in gigabyte","description_kind":"plain","computed":true},"root_volume_type":{"type":"string","description":"System volume type of the nodes composing the pool","description_kind":"plain","computed":true},"size":{"type":"number","description":"Size of the pool","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the pool","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the pool","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the pool","description_kind":"plain","computed":true},"upgrade_policy":{"type":["list",["object",{"max_surge":"number","max_unavailable":"number"}]],"description":"The Pool upgrade policy","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Kubernetes version of the pool","description_kind":"plain","computed":true},"wait_for_pool_ready":{"type":"bool","description":"Whether to wait for the pool to be ready","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_k8s_version":{"version":0,"block":{"attributes":{"available_cnis":{"type":["list","string"],"description":"The list of supported Container Network Interface (CNI) plugins for this version","description_kind":"plain","computed":true},"available_container_runtimes":{"type":["list","string"],"description":"The list of supported container runtimes for this version","description_kind":"plain","computed":true},"available_feature_gates":{"type":["list","string"],"description":"The list of supported feature gates for this version","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the Kubernetes version","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_lb":{"version":1,"block":{"attributes":{"description":{"type":"string","description":"The description of the lb","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The load-balance public IP address","description_kind":"plain","computed":true},"ip_id":{"type":"string","description":"The load-balance public IP ID","description_kind":"plain","computed":true},"lb_id":{"type":"string","description":"The ID of the load-balancer","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the lb","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"private_network":{"type":["set",["object",{"dhcp_config":"bool","private_network_id":"string","static_config":["list","string"],"status":"string","zone":"string"}]],"description":"List of private network to connect with your load balancer","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region of the resource","description_kind":"plain","computed":true},"release_ip":{"type":"bool","description":"Release the IPs related to this load-balancer","description_kind":"plain","optional":true},"ssl_compatibility_level":{"type":"string","description":"Enforces minimal SSL version (in SSL/TLS offloading context)","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"Array of tags to associate with the load-balancer","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of load-balancer you want to create","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_lb_acls":{"version":0,"block":{"attributes":{"acls":{"type":["list",["object",{"action":["list",["object",{"redirect":["list",["object",{"code":"number","target":"string","type":"string"}]],"type":"string"}]],"created_at":"string","description":"string","frontend_id":"string","id":"string","index":"number","match":["list",["object",{"http_filter":"string","http_filter_option":"string","http_filter_value":["list","string"],"invert":"bool","ip_subnet":["list","string"]}]],"name":"string","update_at":"string"}]],"description_kind":"plain","computed":true},"frontend_id":{"type":"string","description":"ACLs with a frontend id like it are listed.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"ACLs with a name like it are listed.","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_lb_backend":{"version":1,"block":{"attributes":{"backend_id":{"type":"string","description":"The ID of the backend","description_kind":"plain","optional":true},"failover_host":{"type":"string","description":"Scaleway S3 bucket website to be served in case all backend servers are down\n\n**NOTE** : Only the host part of the Scaleway S3 bucket website is expected.\nE.g. 'failover-website.s3-website.fr-par.scw.cloud' if your bucket website URL is 'https://failover-website.s3-website.fr-par.scw.cloud/'.","description_kind":"plain","computed":true},"forward_port":{"type":"number","description":"User sessions will be forwarded to this port of backend servers","description_kind":"plain","computed":true},"forward_port_algorithm":{"type":"string","description":"Load balancing algorithm","description_kind":"plain","computed":true},"forward_protocol":{"type":"string","description":"Backend protocol","description_kind":"plain","computed":true},"health_check_delay":{"type":"string","description":"Interval between two HC requests","description_kind":"plain","computed":true},"health_check_http":{"type":["list",["object",{"code":"number","host_header":"string","method":"string","uri":"string"}]],"description_kind":"plain","computed":true},"health_check_https":{"type":["list",["object",{"code":"number","host_header":"string","method":"string","sni":"string","uri":"string"}]],"description_kind":"plain","computed":true},"health_check_max_retries":{"type":"number","description":"Number of allowed failed HC requests before the backend server is marked down","description_kind":"plain","computed":true},"health_check_port":{"type":"number","description":"Port the HC requests will be send to. Default to `forward_port`","description_kind":"plain","computed":true},"health_check_send_proxy":{"type":"bool","description":"Defines whether proxy protocol should be activated for the health check","description_kind":"plain","computed":true},"health_check_tcp":{"type":["list",["object",{}]],"description_kind":"plain","computed":true},"health_check_timeout":{"type":"string","description":"Timeout before we consider a HC request failed","description_kind":"plain","computed":true},"health_check_transient_delay":{"type":"string","description":"Time to wait between two consecutive health checks when a backend server is in a transient state (going UP or DOWN)","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ignore_ssl_server_verify":{"type":"bool","description":"Specifies whether the Load Balancer should check the backend server’s certificate before initiating a connection","description_kind":"plain","computed":true},"lb_id":{"type":"string","description":"The load-balancer ID","description_kind":"plain","optional":true},"max_connections":{"type":"number","description":"Maximum number of connections allowed per backend server","description_kind":"plain","computed":true},"max_retries":{"type":"number","description":"Number of retries when a backend server connection failed","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the backend","description_kind":"plain","optional":true},"on_marked_down_action":{"type":"string","description":"Modify what occurs when a backend server is marked down","description_kind":"plain","computed":true},"proxy_protocol":{"type":"string","description":"Type of PROXY protocol to enable","description_kind":"plain","computed":true},"redispatch_attempt_count":{"type":"number","description":"Whether to use another backend server on each attempt","description_kind":"plain","computed":true},"send_proxy_v2":{"type":"bool","description":"Enables PROXY protocol version 2","description_kind":"plain","computed":true},"server_ips":{"type":["list","string"],"description":"Backend server IP addresses list (IPv4 or IPv6)","description_kind":"plain","computed":true},"ssl_bridging":{"type":"bool","description":"Enables SSL between load balancer and backend servers","description_kind":"plain","computed":true},"sticky_sessions":{"type":"string","description":"The type of sticky sessions","description_kind":"plain","computed":true},"sticky_sessions_cookie_name":{"type":"string","description":"Cookie name for for sticky sessions","description_kind":"plain","computed":true},"timeout_connect":{"type":"string","description":"Maximum initial server connection establishment time","description_kind":"plain","computed":true},"timeout_queue":{"type":"string","description":"Maximum time (in seconds) for a request to be left pending in queue when `max_connections` is reached","description_kind":"plain","computed":true},"timeout_server":{"type":"string","description":"Maximum server connection inactivity time","description_kind":"plain","computed":true},"timeout_tunnel":{"type":"string","description":"Maximum tunnel inactivity time","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_lb_backends":{"version":0,"block":{"attributes":{"backends":{"type":["list",["object",{"created_at":"string","failover_host":"string","forward_port":"number","forward_port_algorithm":"string","forward_protocol":"string","health_check_delay":"string","health_check_http":["list",["object",{"code":"number","host_header":"string","method":"string","uri":"string"}]],"health_check_https":["list",["object",{"code":"number","host_header":"string","method":"string","sni":"string","uri":"string"}]],"health_check_max_retries":"number","health_check_port":"number","health_check_tcp":["list",["object",{}]],"health_check_timeout":"string","id":"string","ignore_ssl_server_verify":"bool","lb_id":"string","name":"string","on_marked_down_action":"string","proxy_protocol":"string","server_ips":["list","string"],"ssl_bridging":"bool","sticky_sessions":"string","sticky_sessions_cookie_name":"string","timeout_connect":"string","timeout_server":"string","timeout_tunnel":"string","update_at":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lb_id":{"type":"string","description":"backends with a lb id like it are listed.","description_kind":"plain","required":true},"name":{"type":"string","description":"Backends with a name like it are listed.","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_lb_certificate":{"version":1,"block":{"attributes":{"certificate_id":{"type":"string","description":"The ID of the certificate","description_kind":"plain","optional":true},"common_name":{"type":"string","description":"The main domain name of the certificate","description_kind":"plain","computed":true},"custom_certificate":{"type":["list",["object",{"certificate_chain":"string"}]],"description":"The custom type certificate type configuration","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"The identifier (SHA-1) of the certificate","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lb_id":{"type":"string","description":"The load-balancer ID","description_kind":"plain","optional":true},"letsencrypt":{"type":["list",["object",{"common_name":"string","subject_alternative_name":["list","string"]}]],"description":"The Let's Encrypt type certificate configuration","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the load-balancer certificate","description_kind":"plain","optional":true},"not_valid_after":{"type":"string","description":"The not valid after validity bound timestamp","description_kind":"plain","computed":true},"not_valid_before":{"type":"string","description":"The not valid before validity bound timestamp","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of certificate","description_kind":"plain","computed":true},"subject_alternative_name":{"type":["list","string"],"description":"The alternative domain names of the certificate","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_lb_frontend":{"version":1,"block":{"attributes":{"acl":{"type":["list",["object",{"action":["list",["object",{"redirect":["list",["object",{"code":"number","target":"string","type":"string"}]],"type":"string"}]],"created_at":"string","description":"string","match":["list",["object",{"http_filter":"string","http_filter_option":"string","http_filter_value":["list","string"],"invert":"bool","ip_subnet":["list","string"]}]],"name":"string","updated_at":"string"}]],"description":"ACL rules","description_kind":"plain","computed":true},"backend_id":{"type":"string","description":"The load-balancer backend ID","description_kind":"plain","computed":true},"certificate_id":{"type":"string","description":"Certificate ID","description_kind":"plain","computed":true},"certificate_ids":{"type":["list","string"],"description":"Collection of Certificate IDs related to the load balancer and domain","description_kind":"plain","computed":true},"enable_http3":{"type":"bool","description":"Activates HTTP/3 protocol","description_kind":"plain","computed":true},"external_acls":{"type":"bool","description":"This boolean determines if ACLs should be managed externally through the 'lb_acl' resource. If set to `true`, `acl` attribute cannot be set directly in the lb frontend","description_kind":"plain","computed":true},"frontend_id":{"type":"string","description":"The ID of the frontend","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inbound_port":{"type":"number","description":"TCP port to listen on the front side","description_kind":"plain","computed":true},"lb_id":{"type":"string","description":"The load-balancer ID","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the frontend","description_kind":"plain","optional":true},"timeout_client":{"type":"string","description":"Set the maximum inactivity time on the client side","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_lb_frontends":{"version":0,"block":{"attributes":{"frontends":{"type":["list",["object",{"backend_id":"string","certificate_ids":["list","string"],"created_at":"string","enable_http3":"bool","id":"string","inbound_port":"number","lb_id":"string","name":"string","timeout_client":"string","update_at":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lb_id":{"type":"string","description":"frontends with a lb id like it are listed.","description_kind":"plain","required":true},"name":{"type":"string","description":"frontends with a name like it are listed.","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_lb_ip":{"version":1,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The IP address","description_kind":"plain","optional":true},"ip_id":{"type":"string","description":"The ID of the IP address","description_kind":"plain","optional":true},"lb_id":{"type":"string","description":"The ID of the load balancer attached to this IP, if any","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region of the resource","description_kind":"plain","computed":true},"reverse":{"type":"string","description":"The reverse domain name for this IP","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_lb_ips":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_cidr_range":{"type":"string","description":"IPs within a CIDR block like it are listed.","description_kind":"plain","optional":true},"ips":{"type":["list",["object",{"id":"string","ip_address":"string","lb_id":"string","organization_id":"string","project_id":"string","reverse":"string","zone":"string"}]],"description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_lb_route":{"version":1,"block":{"attributes":{"backend_id":{"type":"string","description":"The backend ID destination of redirection","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date at which the route was created (RFC 3339 format)","description_kind":"plain","computed":true},"frontend_id":{"type":"string","description":"The frontend ID origin of redirection","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"match_host_header":{"type":"string","description":"Specifies the host of the server to which the request is being sent","description_kind":"plain","computed":true},"match_sni":{"type":"string","description":"Server Name Indication TLS extension field from an incoming connection made via an SSL/TLS transport layer","description_kind":"plain","computed":true},"route_id":{"type":"string","description":"The ID of the route","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date at which the route was last updated (RFC 3339 format)","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_lb_routes":{"version":0,"block":{"attributes":{"frontend_id":{"type":"string","description":"Routes with a frontend id like it are listed.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"routes":{"type":["list",["object",{"backend_id":"string","created_at":"string","frontend_id":"string","id":"string","match_host_header":"string","match_sni":"string","update_at":"string"}]],"description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_lbs":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lbs":{"type":["list",["object",{"backend_count":"number","created_at":"string","description":"string","frontend_count":"number","id":"string","instances":["list",["object",{"created_at":"string","id":"string","ip_address":"string","status":"string","updated_at":"string","zone":"string"}]],"ips":["list",["object",{"id":"string","ip_address":"string","lb_id":"string","organization_id":"string","project_id":"string","reverse":"string","zone":"string"}]],"name":"string","organization_id":"string","private_network_count":"number","project_id":"string","route_count":"number","ssl_compatibility_level":"string","status":"string","subscriber":"string","tags":["list","string"],"type":"string","updated_at":"string","zone":"string"}]],"description_kind":"plain","computed":true},"name":{"type":"string","description":"LBs with a name like it are listed.","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_marketplace_image":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_type":{"type":"string","description":"The instance commercial type of the desired image","description_kind":"plain","optional":true},"label":{"type":"string","description":"Exact label of the desired image","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_object_bucket":{"version":0,"block":{"attributes":{"acl":{"type":"string","description":"ACL of the bucket: either 'public-read' or 'private'.","description_kind":"plain","computed":true},"cors_rule":{"type":["list",["object",{"allowed_headers":["list","string"],"allowed_methods":["list","string"],"allowed_origins":["list","string"],"expose_headers":["list","string"],"max_age_seconds":"number"}]],"description_kind":"plain","computed":true},"endpoint":{"type":"string","description":"Endpoint of the bucket","description_kind":"plain","computed":true},"force_destroy":{"type":"bool","description":"Delete objects in bucket","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_rule":{"type":["list",["object",{"abort_incomplete_multipart_upload_days":"number","enabled":"bool","expiration":["list",["object",{"days":"number"}]],"id":"string","prefix":"string","tags":["map","string"],"transition":["set",["object",{"days":"number","storage_class":"string"}]]}]],"description":"Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the bucket","description_kind":"plain","optional":true},"object_lock_enabled":{"type":"bool","description":"Enable object lock","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description":"The tags associated with this bucket","description_kind":"plain","computed":true},"versioning":{"type":["list",["object",{"enabled":"bool"}]],"description":"Allow multiple versions of an object in the same bucket","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_object_bucket_policy":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The bucket name.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy":{"type":"string","description":"The text of the policy.","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_rdb_acl":{"version":0,"block":{"attributes":{"acl_rules":{"type":["list",["object",{"description":"string","ip":"string"}]],"description":"List of ACL rules to apply","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the ACL is applied","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_rdb_database":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the database is created","description_kind":"plain","required":true},"managed":{"type":"bool","description":"Whether or not the database is managed","description_kind":"plain","computed":true},"name":{"type":"string","description":"Database name","description_kind":"plain","required":true},"owner":{"type":"string","description":"User that own the database","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"size":{"type":"string","description":"Size of the database","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_rdb_database_backup":{"version":0,"block":{"attributes":{"backup_id":{"type":"string","description":"The ID of the Backup","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"Creation date (Format ISO 8601).","description_kind":"plain","computed":true},"database_name":{"type":"string","description":"Name of the database of this backup.","description_kind":"plain","computed":true},"expires_at":{"type":"string","description":"Expiration date (Format ISO 8601). Cannot be removed.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the user is created","description_kind":"plain","optional":true},"instance_name":{"type":"string","description":"Name of the instance of the backup.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the backup.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"size":{"type":"number","description":"Size of the backup (in bytes).","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Updated date (Format ISO 8601).","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_rdb_instance":{"version":0,"block":{"attributes":{"backup_same_region":{"type":"bool","description":"Boolean to store logical backups in the same region as the database instance","description_kind":"plain","computed":true},"backup_schedule_frequency":{"type":"number","description":"Backup schedule frequency in hours","description_kind":"plain","computed":true},"backup_schedule_retention":{"type":"number","description":"Backup schedule retention in days","description_kind":"plain","computed":true},"certificate":{"type":"string","description":"Certificate of the database instance","description_kind":"plain","computed":true},"disable_backup":{"type":"bool","description":"Disable automated backup for the database instance","description_kind":"plain","computed":true},"endpoint_ip":{"type":"string","description":"Endpoint IP of the database instance","description_kind":"plain","computed":true},"endpoint_port":{"type":"number","description":"Endpoint port of the database instance","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Database's engine version id","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"init_settings":{"type":["map","string"],"description":"Map of engine settings to be set at database initialisation.","description_kind":"plain","computed":true},"instance_id":{"type":"string","description":"The ID of the RDB instance","description_kind":"plain","optional":true},"is_ha_cluster":{"type":"bool","description":"Enable or disable high availability for the database instance","description_kind":"plain","computed":true},"load_balancer":{"type":["list",["object",{"endpoint_id":"string","hostname":"string","ip":"string","name":"string","port":"number"}]],"description":"Load balancer of the database instance","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the database instance","description_kind":"plain","optional":true},"node_type":{"type":"string","description":"The type of database instance you want to create","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"password":{"type":"string","description":"Password for the first user of the database instance","description_kind":"plain","computed":true},"private_network":{"type":["list",["object",{"endpoint_id":"string","hostname":"string","ip":"string","ip_net":"string","name":"string","pn_id":"string","port":"number","zone":"string"}]],"description":"List of private network to expose your database instance","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"read_replicas":{"type":["list",["object",{"ip":"string","name":"string","port":"number"}]],"description":"Read replicas of the database instance","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"settings":{"type":["map","string"],"description":"Map of engine settings to be set on a running instance.","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] attached to a database instance","description_kind":"plain","computed":true},"user_name":{"type":"string","description":"Identifier for the first user of the database instance","description_kind":"plain","computed":true},"volume_size_in_gb":{"type":"number","description":"Volume size (in GB) when volume_type is not lssd","description_kind":"plain","computed":true},"volume_type":{"type":"string","description":"Type of volume where data are stored","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_rdb_privilege":{"version":1,"block":{"attributes":{"database_name":{"type":"string","description":"Database name","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the database is created","description_kind":"plain","required":true},"permission":{"type":"string","description":"Privilege","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"user_name":{"type":"string","description":"User name","description_kind":"plain","required":true}},"description_kind":"plain"}},"scaleway_redis_cluster":{"version":0,"block":{"attributes":{"acl":{"type":["set",["object",{"description":"string","id":"string","ip":"string"}]],"description":"List of acl rules.","description_kind":"plain","computed":true},"certificate":{"type":"string","description":"public TLS certificate used by redis cluster, empty if tls is disabled","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"The ID of the Redis cluster","description_kind":"plain","optional":true},"cluster_size":{"type":"number","description":"Number of nodes for the cluster.","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the Redis cluster","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the redis cluster","description_kind":"plain","optional":true},"node_type":{"type":"string","description":"Type of node to use for the cluster","description_kind":"plain","computed":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","computed":true},"private_network":{"type":["set",["object",{"endpoint_id":"string","id":"string","service_ips":["list","string"],"zone":"string"}]],"description":"Private network specs details","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"public_network":{"type":["list",["object",{"id":"string","ips":["list","string"],"port":"number"}]],"description":"Public network specs details","description_kind":"plain","computed":true},"settings":{"type":["map","string"],"description":"Map of settings to define for the cluster.","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] attached to a redis cluster","description_kind":"plain","computed":true},"tls_enabled":{"type":"bool","description":"Whether or not TLS is enabled.","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Redis cluster","description_kind":"plain","computed":true},"user_name":{"type":"string","description":"Name of the user created when the cluster is created","description_kind":"plain","computed":true},"version":{"type":"string","description":"Redis version of the cluster","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_registry_image":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description":"The ID of the registry image","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the registry image","description_kind":"plain","optional":true},"namespace_id":{"type":"string","description":"The namespace ID of the registry image","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description":"The size of the registry image","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the registry image","description_kind":"plain","optional":true,"computed":true},"visibility":{"type":"string","description":"The visibility policy of the registry image","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_registry_namespace":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the container registry namespace","description_kind":"plain","computed":true},"endpoint":{"type":"string","description":"The endpoint reachable by docker","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_public":{"type":"bool","description":"Define the default visibity policy","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the container registry namespace","description_kind":"plain","optional":true},"namespace_id":{"type":"string","description":"The ID of the registry namespace","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_secret":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Date and time of secret's creation (RFC 3339 format)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the secret","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The secret name","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"ID of organization the resource is associated to.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project ID the resource is associated to","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"secret_id":{"type":"string","description":"The ID of the secret","description_kind":"plain","optional":true},"status":{"type":"string","description":"Status of the secret","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] associated to secret","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Date and time of secret's creation (RFC 3339 format)","description_kind":"plain","computed":true},"version_count":{"type":"number","description":"The number of versions for this Secret","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_secret_version":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Date and time of secret version's creation (RFC 3339 format)","description_kind":"plain","computed":true},"data":{"type":"string","description":"The payload of the secret version","description_kind":"plain","computed":true,"sensitive":true},"description":{"type":"string","description":"Description of the secret version","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"revision":{"type":"string","description":"The revision of secret version","description_kind":"plain","optional":true},"secret_id":{"type":"string","description":"The ID of the secret","description_kind":"plain","optional":true},"secret_name":{"type":"string","description":"The Name of the secret","description_kind":"plain","optional":true},"status":{"type":"string","description":"Status of the secret version","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Date and time of secret version's creation (RFC 3339 format)","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_tem_domain":{"version":0,"block":{"attributes":{"accept_tos":{"type":"bool","description":"Accept the Scaleway Terms of Service","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Date and time of domain's creation (RFC 3339 format)","description_kind":"plain","computed":true},"dkim_config":{"type":"string","description":"DKIM public key, as should be recorded in the DNS zone","description_kind":"plain","computed":true},"domain_id":{"type":"string","description":"The ID of the tem domain","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_error":{"type":"string","description":"Error message if the last check failed","description_kind":"plain","computed":true},"last_valid_at":{"type":"string","description":"Date and time the domain was last found to be valid (RFC 3339 format)","description_kind":"plain","computed":true},"name":{"type":"string","description":"The domain name used when sending emails","description_kind":"plain","optional":true},"next_check_at":{"type":"string","description":"Date and time of the next scheduled check (RFC 3339 format)","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"revoked_at":{"type":"string","description":"Date and time of the revocation of the domain (RFC 3339 format)","description_kind":"plain","computed":true},"smtp_host":{"type":"string","description":"SMTP host to use to send emails","description_kind":"plain","computed":true},"smtp_port":{"type":"number","description":"SMTP port to use to send emails over TLS. (Port 587)","description_kind":"plain","computed":true},"smtp_port_alternative":{"type":"number","description":"SMTP port to use to send emails over TLS. (Port 2587)","description_kind":"plain","computed":true},"smtp_port_unsecure":{"type":"number","description":"SMTP port to use to send emails. (Port 25)","description_kind":"plain","computed":true},"smtps_port":{"type":"number","description":"SMTPS port to use to send emails over TLS Wrapper. (Port 465)","description_kind":"plain","computed":true},"smtps_port_alternative":{"type":"number","description":"SMTPS port to use to send emails over TLS Wrapper. (Port 2465)","description_kind":"plain","computed":true},"spf_config":{"type":"string","description":"Snippet of the SPF record that should be registered in the DNS zone","description_kind":"plain","computed":true},"status":{"type":"string","description":"Status of the domain","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_vpc":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the private network","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_default":{"type":"bool","description":"Defines whether the VPC is the default one for its Project","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the VPC","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"ID of organization the resource is associated to.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project ID the resource is associated to","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The tags associated with the VPC","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the private network","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description":"The ID of the VPC","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_vpc_gateway_network":{"version":0,"block":{"attributes":{"cleanup_dhcp":{"type":"bool","description":"Remove DHCP config on this network on destroy","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the gateway network","description_kind":"plain","computed":true},"dhcp_id":{"type":"string","description":"The ID of the public gateway DHCP config","description_kind":"plain","optional":true},"enable_dhcp":{"type":"bool","description":"Enable DHCP config on this network","description_kind":"plain","computed":true},"enable_masquerade":{"type":"bool","description":"Enable masquerade on this network","description_kind":"plain","optional":true},"gateway_id":{"type":"string","description":"The ID of the public gateway where connect to","description_kind":"plain","optional":true},"gateway_network_id":{"type":"string","description":"The ID of the gateway network","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mac_address":{"type":"string","description":"The mac address on this network","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"The ID of the private network where connect to","description_kind":"plain","optional":true},"static_address":{"type":"string","description":"The static IP address in CIDR on this network","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the gateway network","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_vpc_private_network":{"version":1,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the private network","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipv4_subnet":{"type":["list",["object",{"address":"string","created_at":"string","id":"string","prefix_length":"number","subnet":"string","subnet_mask":"string","updated_at":"string"}]],"description":"The IPv4 subnet associated with the private network","description_kind":"plain","computed":true},"ipv6_subnets":{"type":["set",["object",{"address":"string","created_at":"string","id":"string","prefix_length":"number","subnet":"string","subnet_mask":"string","updated_at":"string"}]],"description":"The IPv6 subnet associated with the private network","description_kind":"plain","computed":true},"is_regional":{"type":"bool","description":"Defines whether the private network is Regional. By default, it will be Zonal","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the private network","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"The ID of the private network","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with private network","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the private network","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description":"The VPC in which to create the private network","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_vpc_public_gateway":{"version":0,"block":{"attributes":{"bastion_enabled":{"type":"bool","description":"Enable SSH bastion on the gateway","description_kind":"plain","computed":true},"bastion_port":{"type":"number","description":"Port of the SSH bastion","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the public gateway","description_kind":"plain","computed":true},"enable_smtp":{"type":"bool","description":"Enable SMTP on the gateway","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_id":{"type":"string","description":"attach an existing IP to the gateway","description_kind":"plain","computed":true},"name":{"type":"string","description":"name of the gateway","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"public_gateway_id":{"type":"string","description":"The ID of the public gateway","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The tags associated with public gateway","description_kind":"plain","computed":true},"type":{"type":"string","description":"gateway type","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the public gateway","description_kind":"plain","computed":true},"upstream_dns_servers":{"type":["list","string"],"description":"override the gateway's default recursive DNS servers, if DNS features are enabled","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_dhcp":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The address of the DHCP server. This will be the gateway's address in the private network. Defaults to the first address of the subnet","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the public gateway.","description_kind":"plain","computed":true},"dhcp_id":{"type":"string","description":"The ID of the public gateway DHCP configuration","description_kind":"plain","required":true},"dns_local_name":{"type":"string","description":"TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to `priv`.","description_kind":"plain","computed":true},"dns_search":{"type":["list","string"],"description":"Additional DNS search paths.","description_kind":"plain","computed":true},"dns_servers_override":{"type":["list","string"],"description":"Override the DNS server list pushed to DHCP clients, instead of the gateway itself.","description_kind":"plain","computed":true},"enable_dynamic":{"type":"bool","description":"Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to true.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"pool_high":{"type":"string","description":"High IP (included) of the dynamic address pool. Defaults to the last address of the subnet.","description_kind":"plain","computed":true},"pool_low":{"type":"string","description":"Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"push_default_route":{"type":"bool","description":"Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to true.","description_kind":"plain","computed":true},"push_dns_server":{"type":"bool","description":"Whether the gateway should push custom DNS servers to clients. This allows for instance hostname -\u003e IP resolution. Defaults to true.","description_kind":"plain","computed":true},"rebind_timer":{"type":"number","description":"After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. Defaults to 51m (3060s).","description_kind":"plain","computed":true},"renew_timer":{"type":"number","description":"After how long, in seconds, a renew will be attempted. Must be 30s lower than `rebind_timer`. Defaults to 50m (3000s).","description_kind":"plain","computed":true},"subnet":{"type":"string","description":"Subnet for the DHCP server","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the public gateway.","description_kind":"plain","computed":true},"valid_lifetime":{"type":"number","description":"For how long, in seconds, will DHCP entries will be valid. Defaults to 1h (3600s).","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_dhcp_reservation":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The configuration creation date.","description_kind":"plain","computed":true},"gateway_network_id":{"type":"string","description":"The ID of the owning GatewayNetwork (UUID format).","description_kind":"plain","optional":true},"hostname":{"type":"string","description":"The Hostname of the client machine.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The IP address to give to the machine (IPv4 address).","description_kind":"plain","computed":true},"mac_address":{"type":"string","description":"The MAC address to give a static entry to.","description_kind":"plain","optional":true},"reservation_id":{"type":"string","description":"The ID of dhcp entry reservation","description_kind":"plain","optional":true},"type":{"type":"string","description":"The reservation type, either static (DHCP reservation) or dynamic (DHCP lease). Possible values are reservation and lease","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The configuration last modification date.","description_kind":"plain","computed":true},"wait_for_dhcp":{"type":"bool","description":"Wait the the mac address in dhcp entries","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_ip":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"the IP itself","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the public gateway IP","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_id":{"type":"string","description":"The ID of the IP","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"reverse":{"type":"string","description":"reverse domain name for the IP address","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with public gateway IP","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the public gateway IP","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_pat_rule":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the PAT rule","description_kind":"plain","computed":true},"gateway_id":{"type":"string","description":"The ID of the gateway this PAT rule is applied to","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"pat_rule_id":{"type":"string","description":"The ID of the public gateway PAT rule","description_kind":"plain","required":true},"private_ip":{"type":"string","description":"The private IP used in the PAT rule","description_kind":"plain","computed":true},"private_port":{"type":"number","description":"The private port used in the PAT rule","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The protocol used in the PAT rule","description_kind":"plain","computed":true},"public_port":{"type":"number","description":"The public port used in the PAT rule","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the PAT rule","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_vpcs":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"VPCs with a name like it are listed.","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"VPCs with these exact tags are listed.","description_kind":"plain","optional":true},"vpcs":{"type":["list",["object",{"created_at":"string","id":"string","is_default":"bool","name":"string","organization_id":"string","project_id":"string","region":"string","tags":["list","string"],"update_at":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_webhosting":{"version":0,"block":{"attributes":{"cpanel_urls":{"type":["list",["object",{"dashboard":"string","webmail":"string"}]],"description":"URL to connect to cPanel Dashboard and to Webmail interface","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Date and time of hosting's creation (RFC 3339 format)","description_kind":"plain","computed":true},"dns_status":{"type":"string","description":"DNS status of the hosting","description_kind":"plain","computed":true},"domain":{"type":"string","description":"The domain name of the hosting","description_kind":"plain","optional":true},"email":{"type":"string","description":"Contact email of the client for the hosting","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"offer_id":{"type":"string","description":"The ID of the selected offer for the hosting","description_kind":"plain","computed":true},"offer_name":{"type":"string","description":"Name of the active offer","description_kind":"plain","computed":true},"option_ids":{"type":["list","string"],"description":"IDs of the selected options for the hosting","description_kind":"plain","computed":true},"options":{"type":["list",["object",{"id":"string","name":"string"}]],"description":"Active options of the hosting","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"ID of organization the resource is associated to.","description_kind":"plain","optional":true,"computed":true},"platform_hostname":{"type":"string","description":"Hostname of the host platform","description_kind":"plain","computed":true},"platform_number":{"type":"number","description":"Number of the host platform","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project ID the resource is associated to","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","computed":true},"status":{"type":"string","description":"The hosting status","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags of the hosting","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Date and time of hosting's last update (RFC 3339 format)","description_kind":"plain","computed":true},"username":{"type":"string","description":"Main hosting cPanel username","description_kind":"plain","computed":true},"webhosting_id":{"type":"string","description":"The ID of the Webhosting","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_webhosting_offer":{"version":0,"block":{"attributes":{"billing_operation_path":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Exact name of the desired offer","description_kind":"plain","optional":true},"offer_id":{"type":"string","description":"ID of the desired offer","description_kind":"plain","optional":true},"price":{"type":"string","description_kind":"plain","computed":true},"product":{"type":["list",["object",{"databases_quota":"number","email_accounts_quota":"number","email_storage_quota":"number","hosting_storage_quota":"number","name":"string","option":"bool","ram":"number","support_included":"bool","v_cpu":"number"}]],"description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}}}}} +{"format_version":"1.0","provider_schemas":{"registry.terraform.io/scaleway/scaleway":{"provider":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"The Scaleway access key.","description_kind":"plain","optional":true},"api_url":{"type":"string","description":"The Scaleway API URL to use.","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The Scaleway organization ID.","description_kind":"plain","optional":true},"profile":{"type":"string","description":"The Scaleway profile to use.","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The Scaleway project ID.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"secret_key":{"type":"string","description":"The Scaleway secret Key.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"resource_schemas":{"scaleway_account_project":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the Project (Format ISO 8601)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the project","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the project","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Project (Format ISO 8601)","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_account_ssh_key":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the iam SSH Key","description_kind":"plain","computed":true},"disabled":{"type":"bool","description":"The SSH key status","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam SSH key","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"public_key":{"type":"string","description":"The public SSH key","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the iam SSH Key","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_apple_silicon_server":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the server","description_kind":"plain","computed":true},"deletable_at":{"type":"string","description":"The minimal date and time on which you can delete this server due to Apple licence","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"IPv4 address of the server","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the server","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"The state of the server","description_kind":"plain","computed":true},"type":{"type":"string","description":"Type of the server","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the server","description_kind":"plain","computed":true},"vnc_url":{"type":"string","description":"VNC url use to connect remotely to the desktop GUI","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_baremetal_server":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Some description to associate to the server, max 255 characters","description_kind":"plain","optional":true},"domain":{"type":"string","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"Hostname of the server","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"install_config_afterward":{"type":"bool","description":"If True, this boolean allows to create a server without the install config if you want to provide it later","description_kind":"plain","optional":true},"ips":{"type":["list",["object",{"address":"string","id":"string","reverse":"string","version":"string"}]],"description":"IP addresses attached to the server.","description_kind":"plain","computed":true},"ipv4":{"type":["list",["object",{"address":"string","id":"string","reverse":"string","version":"string"}]],"description":"IPv4 addresses attached to the server","description_kind":"plain","computed":true},"ipv6":{"type":["list",["object",{"address":"string","id":"string","reverse":"string","version":"string"}]],"description":"IPv6 addresses attached to the server","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the server","description_kind":"plain","optional":true,"computed":true},"offer":{"type":"string","description":"ID or name of the server offer","description_kind":"plain","required":true},"offer_id":{"type":"string","description":"ID of the server offer","description_kind":"plain","computed":true},"offer_name":{"type":"string","description":"Name of the server offer","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"os":{"type":"string","description":"The base image of the server","description_kind":"plain","optional":true},"os_name":{"type":"string","description":"The base image name of the server","description_kind":"plain","computed":true},"password":{"type":"string","description":"Password used for the installation.","description_kind":"plain","optional":true,"sensitive":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"reinstall_on_config_changes":{"type":"bool","description":"If True, this boolean allows to reinstall the server on SSH key IDs, user or password changes","description_kind":"plain","optional":true},"service_password":{"type":"string","description":"Password used for the service to install.","description_kind":"plain","optional":true,"sensitive":true},"service_user":{"type":"string","description":"User used for the service to install.","description_kind":"plain","optional":true,"computed":true},"ssh_key_ids":{"type":["list","string"],"description":"Array of SSH key IDs allowed to SSH to the server\n\n**NOTE** : If you are attempting to update your SSH key IDs, it will induce the reinstall of your server. \nIf this behaviour is wanted, please set 'reinstall_on_ssh_key_changes' argument to true.","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Array of tags to associate with the server","description_kind":"plain","optional":true,"computed":true},"user":{"type":"string","description":"User used for the installation.","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"options":{"nesting_mode":"set","block":{"attributes":{"expires_at":{"type":"string","description":"Auto expire the option after this date","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"IDs of the options","description_kind":"plain","required":true},"name":{"type":"string","description":"name of the option","description_kind":"plain","computed":true}},"description":"The options to enable on server","description_kind":"plain"}},"private_network":{"nesting_mode":"set","block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the private network","description_kind":"plain","computed":true},"id":{"type":"string","description":"The private network ID","description_kind":"plain","required":true},"status":{"type":"string","description":"The private network status","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the private network","description_kind":"plain","computed":true},"vlan":{"type":"number","description":"The VLAN ID associated to the private network","description_kind":"plain","computed":true}},"description":"The private networks to attach to the server","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"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"}},"scaleway_block_snapshot":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The snapshot name","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the snapshot","description_kind":"plain","optional":true},"volume_id":{"type":"string","description":"ID of the volume from which creates a snapshot","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_block_volume":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"iops":{"type":"number","description":"The maximum IO/s expected, must match available options","description_kind":"plain","required":true},"name":{"type":"string","description":"The volume name","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"size_in_gb":{"type":"number","description":"The volume size in GB","description_kind":"plain","optional":true,"computed":true},"snapshot_id":{"type":"string","description":"The snapshot to create the volume from","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The tags associated with the volume","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_cockpit":{"version":0,"block":{"attributes":{"endpoints":{"type":["list",["object",{"alertmanager_url":"string","grafana_url":"string","logs_url":"string","metrics_url":"string","traces_url":"string"}]],"description":"Endpoints","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plan":{"type":"string","description":"Name or ID of the plan","description_kind":"plain","optional":true},"plan_id":{"type":"string","description":"The plan ID of the cockpit","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_cockpit_grafana_user":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"login":{"type":"string","description":"The login of the Grafana user","description_kind":"plain","required":true},"password":{"type":"string","description":"The password of the Grafana user","description_kind":"plain","computed":true,"sensitive":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"role":{"type":"string","description":"The role of the Grafana user","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_cockpit_token":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the token","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"secret_key":{"type":"string","description":"The secret key of the token","description_kind":"plain","computed":true,"sensitive":true}},"block_types":{"scopes":{"nesting_mode":"list","block":{"attributes":{"query_logs":{"type":"bool","description":"Query logs","description_kind":"plain","optional":true},"query_metrics":{"type":"bool","description":"Query metrics","description_kind":"plain","optional":true},"query_traces":{"type":"bool","description":"Query traces","description_kind":"plain","optional":true},"setup_alerts":{"type":"bool","description":"Setup alerts","description_kind":"plain","optional":true},"setup_logs_rules":{"type":"bool","description":"Setup logs rules","description_kind":"plain","optional":true},"setup_metrics_rules":{"type":"bool","description":"Setup metrics rules","description_kind":"plain","optional":true},"write_logs":{"type":"bool","description":"Write logs","description_kind":"plain","optional":true},"write_metrics":{"type":"bool","description":"Write metrics","description_kind":"plain","optional":true},"write_traces":{"type":"bool","description":"Write traces","description_kind":"plain","optional":true}},"description":"Endpoints","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_container":{"version":0,"block":{"attributes":{"cpu_limit":{"type":"number","description":"The amount of vCPU computing resources to allocate to each container. Defaults to 70.","description_kind":"plain","optional":true,"computed":true},"cron_status":{"type":"string","description":"The cron status","description_kind":"plain","computed":true},"deploy":{"type":"bool","description":"This allows you to control your production environment","description_kind":"plain","optional":true},"description":{"type":"string","description":"The container description","description_kind":"plain","optional":true},"domain_name":{"type":"string","description":"The native container domain name.","description_kind":"plain","computed":true},"environment_variables":{"type":["map","string"],"description":"The environment variables to be injected into your container at runtime.","description_kind":"plain","optional":true,"computed":true},"error_message":{"type":"string","description":"The error description","description_kind":"plain","computed":true},"http_option":{"type":"string","description":"HTTP traffic configuration","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_concurrency":{"type":"number","description":"The maximum the number of simultaneous requests your container can handle at the same time. Defaults to 50.","description_kind":"plain","optional":true,"computed":true},"max_scale":{"type":"number","description":"The maximum of number of instances this container can scale to. Default to 20.","description_kind":"plain","optional":true,"computed":true},"memory_limit":{"type":"number","description":"The memory computing resources in MB to allocate to each container. Defaults to 128.","description_kind":"plain","optional":true,"computed":true},"min_scale":{"type":"number","description":"The minimum of running container instances continuously. Defaults to 0.","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The container name","description_kind":"plain","optional":true,"computed":true},"namespace_id":{"type":"string","description":"The container namespace associated","description_kind":"plain","required":true},"port":{"type":"number","description":"The port to expose the container. Defaults to 8080","description_kind":"plain","optional":true,"computed":true},"privacy":{"type":"string","description":"The privacy type define the way to authenticate to your container","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"The communication protocol http1 or h2c. Defaults to http1.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"registry_image":{"type":"string","description":"The scaleway registry image address","description_kind":"plain","optional":true,"computed":true},"registry_sha256":{"type":"string","description":"The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string","description_kind":"plain","optional":true},"secret_environment_variables":{"type":["map","string"],"description":"The secret environment variables to be injected into your container at runtime.","description_kind":"plain","optional":true,"sensitive":true},"status":{"type":"string","description":"The container status","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"number","description":"The maximum amount of time in seconds during which your container can process a request before we stop it. Defaults to 300s.","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_container_cron":{"version":0,"block":{"attributes":{"args":{"type":"string","description":"Cron arguments as json object to pass through during execution.","description_kind":"plain","required":true},"container_id":{"type":"string","description":"The Container ID to link with your trigger.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"schedule":{"type":"string","description":"Cron format string, e.g. 0 * * * * or @hourly, as schedule time of its jobs to be created and executed.","description_kind":"plain","required":true},"status":{"type":"string","description":"Cron job status.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_container_domain":{"version":0,"block":{"attributes":{"container_id":{"type":"string","description":"Container the domain will be bound to","description_kind":"plain","required":true},"hostname":{"type":"string","description":"Domain's hostname","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"url":{"type":"string","description":"URL used to query the container","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_container_namespace":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the container namespace","description_kind":"plain","optional":true},"destroy_registry":{"type":"bool","description":"Destroy registry on deletion","description_kind":"plain","deprecated":true,"optional":true},"environment_variables":{"type":["map","string"],"description":"The environment variables of the container namespace","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the container namespace","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"registry_endpoint":{"type":"string","description":"The endpoint reachable by docker","description_kind":"plain","computed":true},"registry_namespace_id":{"type":"string","description":"The ID of the registry namespace","description_kind":"plain","computed":true},"secret_environment_variables":{"type":["map","string"],"description":"The secret environment variables of the container namespace","description_kind":"plain","optional":true,"sensitive":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_container_token":{"version":0,"block":{"attributes":{"container_id":{"type":"string","description_kind":"plain","optional":true},"description":{"type":"string","description_kind":"plain","optional":true},"expires_at":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"namespace_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"token":{"type":"string","description_kind":"plain","computed":true,"sensitive":true}},"description_kind":"plain"}},"scaleway_container_trigger":{"version":0,"block":{"attributes":{"container_id":{"type":"string","description":"The ID of the container to create a trigger for","description_kind":"plain","required":true},"description":{"type":"string","description":"The trigger description","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The trigger name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"nats":{"nesting_mode":"list","block":{"attributes":{"account_id":{"type":"string","description":"ID of the mnq nats account","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"Project ID of the project where the mnq sqs exists, defaults to provider project_id","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the mnq sqs exists, defaults to function's region","description_kind":"plain","optional":true,"computed":true},"subject":{"type":"string","description":"Subject to listen to","description_kind":"plain","required":true}},"description":"Config for nats based trigger using scaleway mnq","description_kind":"plain"},"max_items":1},"sqs":{"nesting_mode":"list","block":{"attributes":{"namespace_id":{"type":"string","description":"ID of the mnq namespace","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"Project ID of the project where the mnq sqs exists, defaults to provider project_id","description_kind":"plain","optional":true,"computed":true},"queue":{"type":"string","description":"Name of the queue","description_kind":"plain","required":true},"region":{"type":"string","description":"Region where the mnq sqs exists, defaults to function's region","description_kind":"plain","optional":true,"computed":true}},"description":"Config for sqs based trigger using scaleway mnq","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_documentdb_database":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the database is created","description_kind":"plain","required":true},"managed":{"type":"bool","description":"Whether or not the database is managed","description_kind":"plain","computed":true},"name":{"type":"string","description":"The database name","description_kind":"plain","optional":true,"computed":true},"owner":{"type":"string","description":"User that own the database","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"size":{"type":"string","description":"Size of the database","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_documentdb_instance":{"version":0,"block":{"attributes":{"engine":{"type":"string","description":"Database's engine version id","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_ha_cluster":{"type":"bool","description":"Enable or disable high availability for the database instance","description_kind":"plain","optional":true},"name":{"type":"string","description":"The document db instance name","description_kind":"plain","optional":true,"computed":true},"node_type":{"type":"string","description":"The type of database instance you want to create","description_kind":"plain","required":true},"password":{"type":"string","description":"Password for the first user of the database instance","description_kind":"plain","optional":true,"sensitive":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] attached to a database instance","description_kind":"plain","optional":true},"telemetry_enabled":{"type":"bool","description":" Enable telemetry to collects basic anonymous usage data and sends them to FerretDB telemetry service","description_kind":"plain","optional":true},"user_name":{"type":"string","description":"Identifier for the first user of the database instance","description_kind":"plain","optional":true},"volume_size_in_gb":{"type":"number","description":"Volume size (in GB) when volume_type is not lssd","description_kind":"plain","optional":true,"computed":true},"volume_type":{"type":"string","description":"Type of volume where data are stored","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_documentdb_private_network_endpoint":{"version":0,"block":{"attributes":{"hostname":{"type":"string","description":"The hostname of your endpoint","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the endpoint is attached","description_kind":"plain","required":true},"ip":{"type":"string","description":"The IP of your private network service","description_kind":"plain","computed":true},"ip_net":{"type":"string","description":"The IP with the given mask within the private subnet","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of your private service","description_kind":"plain","computed":true},"port":{"type":"number","description":"The port of your private service","description_kind":"plain","optional":true,"computed":true},"private_network_id":{"type":"string","description":"The private network ID","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_documentdb_privilege":{"version":0,"block":{"attributes":{"database_name":{"type":"string","description":"Database name","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the database is created","description_kind":"plain","required":true},"permission":{"type":"string","description":"Privilege","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"user_name":{"type":"string","description":"User name","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_documentdb_read_replica":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Id of the rdb instance to replicate","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"direct_access":{"nesting_mode":"list","block":{"attributes":{"endpoint_id":{"type":"string","description":"UUID of the endpoint (UUID format).","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"Hostname of the endpoint. Only one of ip and hostname may be set.","description_kind":"plain","computed":true},"ip":{"type":"string","description":"IPv4 address of the endpoint (IP address). Only one of ip and hostname may be set.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the endpoint.","description_kind":"plain","computed":true},"port":{"type":"number","description":"TCP port of the endpoint.","description_kind":"plain","computed":true}},"description":"Direct access endpoint, it gives you an IP and a port to access your read-replica","description_kind":"plain"},"max_items":1},"private_network":{"nesting_mode":"list","block":{"attributes":{"endpoint_id":{"type":"string","description":"UUID of the endpoint (UUID format).","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"Hostname of the endpoint. Only one of ip and hostname may be set","description_kind":"plain","computed":true},"ip":{"type":"string","description":"IPv4 address of the endpoint (IP address). Only one of ip and hostname may be set","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the endpoints","description_kind":"plain","computed":true},"port":{"type":"number","description":"TCP port of the endpoint","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"UUID of the private network to be connected to the read replica (UUID format)","description_kind":"plain","required":true},"service_ip":{"type":"string","description":"The IP network address within the private subnet","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"Private network zone","description_kind":"plain","computed":true}},"description":"Private network endpoints","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_documentdb_user":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the user is created","description_kind":"plain","required":true},"is_admin":{"type":"bool","description":"Grant admin permissions to database user","description_kind":"plain","optional":true},"name":{"type":"string","description":"Database user name","description_kind":"plain","required":true},"password":{"type":"string","description":"Database user password","description_kind":"plain","required":true,"sensitive":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_domain_record":{"version":0,"block":{"attributes":{"data":{"type":"string","description":"The data of the record","description_kind":"plain","required":true},"dns_zone":{"type":"string","description":"The zone you want to add the record in","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keep_empty_zone":{"type":"bool","description":"When destroy a resource record, if a zone have only NS, delete the zone","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the record","description_kind":"plain","optional":true},"priority":{"type":"number","description":"The priority of the record","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"root_zone":{"type":"bool","description":"Does the DNS zone is the root zone or not","description_kind":"plain","computed":true},"ttl":{"type":"number","description":"The ttl of the record","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of the record","description_kind":"plain","required":true}},"block_types":{"geo_ip":{"nesting_mode":"list","block":{"block_types":{"matches":{"nesting_mode":"list","block":{"attributes":{"continents":{"type":["list","string"],"description":"List of continents (eg: EU for Europe, NA for North America, AS for Asia...). List of all continents code: https://api.scaleway.com/domain-private/v2beta1/continents","description_kind":"plain","optional":true},"countries":{"type":["list","string"],"description":"List of countries (eg: FR for France, US for the United States, GB for Great Britain...). List of all countries code: https://api.scaleway.com/domain-private/v2beta1/countries","description_kind":"plain","optional":true},"data":{"type":"string","description":"The data of the match result","description_kind":"plain","required":true}},"description":"The list of matches","description_kind":"plain"},"min_items":1}},"description":"Return record based on client localisation","description_kind":"plain"},"max_items":1},"http_service":{"nesting_mode":"list","block":{"attributes":{"ips":{"type":["list","string"],"description":"IPs to check","description_kind":"plain","required":true},"must_contain":{"type":"string","description":"Text to search","description_kind":"plain","required":true},"strategy":{"type":"string","description":"Strategy to return an IP from the IPs list","description_kind":"plain","required":true},"url":{"type":"string","description":"URL to match the must_contain text to validate an IP","description_kind":"plain","required":true},"user_agent":{"type":"string","description":"User-agent used when checking the URL","description_kind":"plain","optional":true}},"description":"Return record based on client localisation","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"view":{"nesting_mode":"list","block":{"attributes":{"data":{"type":"string","description":"The data of the view record","description_kind":"plain","required":true},"subnet":{"type":"string","description":"The subnet of the view","description_kind":"plain","required":true}},"description":"Return record based on client subnet","description_kind":"plain"}},"weighted":{"nesting_mode":"list","block":{"attributes":{"ip":{"type":"string","description":"The weighted IP","description_kind":"plain","required":true},"weight":{"type":"number","description":"The weight of the IP","description_kind":"plain","required":true}},"description":"Return record based on weight","description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_domain_zone":{"version":0,"block":{"attributes":{"domain":{"type":"string","description":"The domain where the DNS zone will be created.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"message":{"type":"string","description":"Message","description_kind":"plain","computed":true},"ns":{"type":["list","string"],"description":"NameServer list for zone.","description_kind":"plain","computed":true},"ns_default":{"type":["list","string"],"description":"NameServer default list for zone.","description_kind":"plain","computed":true},"ns_master":{"type":["list","string"],"description":"NameServer master list for zone.","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"The domain zone status.","description_kind":"plain","computed":true},"subdomain":{"type":"string","description":"The subdomain of the DNS zone to create.","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the DNS zone.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_flexible_ip":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the Flexible IP (Format ISO 8601)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the flexible IP","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The IP address of the flexible IP","description_kind":"plain","computed":true},"is_ipv6":{"type":"bool","description":"Defines whether the flexible IP has an IPv6 address","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"reverse":{"type":"string","description":"The reverse DNS for this flexible IP","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description":"The baremetal server associated with this flexible IP","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the flexible IP","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the flexible IP","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Flexible IP (Format ISO 8601)","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_flexible_ip_mac_address":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"Virtual MAC address","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the virtual MAC (Format ISO 8601)","description_kind":"plain","computed":true},"flexible_ip_id":{"type":"string","description":"The ID of the flexible IP for which to generate a virtual MAC","description_kind":"plain","required":true},"flexible_ip_ids_to_duplicate":{"type":["set","string"],"description":"The IDs of the flexible IPs on which to duplicate the virtual MAC\n\n**NOTE** : The flexible IPs need to be attached to the same server for the operation to work.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Virtual MAC status","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of the virtual MAC","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the virtual MAC (Format ISO 8601)","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_function":{"version":0,"block":{"attributes":{"cpu_limit":{"type":"number","description":"CPU limit in mCPU for your function","description_kind":"plain","computed":true},"deploy":{"type":"bool","description":"Define if the function should be deployed, terraform will wait for function to be deployed","description_kind":"plain","optional":true},"description":{"type":"string","description":"The description of the function","description_kind":"plain","optional":true},"domain_name":{"type":"string","description":"The native function domain name.","description_kind":"plain","computed":true},"environment_variables":{"type":["map","string"],"description":"The environment variables of the function","description_kind":"plain","optional":true},"handler":{"type":"string","description":"Handler of the function. Depends on the runtime https://developers.scaleway.com/en/products/functions/api/#create-a-function","description_kind":"plain","required":true},"http_option":{"type":"string","description":"HTTP traffic configuration","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_scale":{"type":"number","description":"Maximum replicas for your function (defaults to 20), our system will scale your functions automatically based on incoming workload, but will never scale the number of replicas above the configured max_scale.","description_kind":"plain","optional":true},"memory_limit":{"type":"number","description":"Memory limit in MB for your function, defaults to 128MB","description_kind":"plain","optional":true},"min_scale":{"type":"number","description":"Minimum replicas for your function, defaults to 0, Note that a function is billed when it gets executed, and using a min_scale greater than 0 will cause your function to run all the time.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the function","description_kind":"plain","optional":true,"computed":true},"namespace_id":{"type":"string","description":"The namespace ID associated with this function","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"privacy":{"type":"string","description":"Privacy of the function. Can be either `private` or `public`","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"runtime":{"type":"string","description":"Runtime of the function","description_kind":"plain","required":true},"secret_environment_variables":{"type":["map","string"],"description":"The secret environment variables to be injected into your function at runtime.","description_kind":"plain","optional":true,"sensitive":true},"timeout":{"type":"number","description":"Holds the max duration (in seconds) the function is allowed for responding to a request","description_kind":"plain","optional":true,"computed":true},"zip_file":{"type":"string","description":"Location of the zip file to upload containing your function sources","description_kind":"plain","optional":true},"zip_hash":{"type":"string","description":"The hash of your source zip file, changing it will re-apply function. Can be any string","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_function_cron":{"version":0,"block":{"attributes":{"args":{"type":"string","description":"Functions arguments as json object to pass through during execution.","description_kind":"plain","required":true},"function_id":{"type":"string","description":"The ID of the function to create a cron for.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"schedule":{"type":"string","description":"Cron format string, e.g. 0 * * * * or @hourly, as schedule time of its jobs to be created and executed.","description_kind":"plain","required":true},"status":{"type":"string","description":"Cron job status.","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_function_domain":{"version":0,"block":{"attributes":{"function_id":{"type":"string","description":"The ID of the function","description_kind":"plain","required":true},"hostname":{"type":"string","description":"The hostname that should be redirected to the function","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"url":{"type":"string","description":"URL to use to trigger the function","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_function_namespace":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the function namespace","description_kind":"plain","optional":true},"environment_variables":{"type":["map","string"],"description":"The environment variables of the function namespace","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the function namespace","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"registry_endpoint":{"type":"string","description":"The endpoint reachable by docker","description_kind":"plain","computed":true},"registry_namespace_id":{"type":"string","description":"The ID of the registry namespace","description_kind":"plain","computed":true},"secret_environment_variables":{"type":["map","string"],"description":"The environment variables of the function namespace","description_kind":"plain","optional":true,"sensitive":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_function_token":{"version":0,"block":{"attributes":{"description":{"type":"string","description_kind":"plain","optional":true},"expires_at":{"type":"string","description_kind":"plain","optional":true},"function_id":{"type":"string","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"namespace_id":{"type":"string","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"token":{"type":"string","description_kind":"plain","computed":true,"sensitive":true}},"description_kind":"plain"}},"scaleway_function_trigger":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The trigger description","description_kind":"plain","optional":true},"function_id":{"type":"string","description":"The ID of the function to create a trigger for","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The trigger name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"nats":{"nesting_mode":"list","block":{"attributes":{"account_id":{"type":"string","description":"ID of the mnq nats account","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"Project ID of the project where the mnq sqs exists, defaults to provider project_id","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region where the mnq sqs exists, defaults to function's region","description_kind":"plain","optional":true,"computed":true},"subject":{"type":"string","description":"Subject to listen to","description_kind":"plain","required":true}},"description":"Config for nats based trigger using scaleway mnq","description_kind":"plain"},"max_items":1},"sqs":{"nesting_mode":"list","block":{"attributes":{"namespace_id":{"type":"string","description":"ID of the mnq namespace","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"Project ID of the project where the mnq sqs exists, defaults to provider project_id","description_kind":"plain","optional":true,"computed":true},"queue":{"type":"string","description":"Name of the queue","description_kind":"plain","required":true},"region":{"type":"string","description":"Region where the mnq sqs exists, defaults to function's region","description_kind":"plain","optional":true,"computed":true}},"description":"Config for sqs based trigger using scaleway mnq","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_iam_api_key":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"The access key of the iam api key","description_kind":"plain","computed":true},"application_id":{"type":"string","description":"ID of the application attached to the api key","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"The date and time of the creation of the iam api key","description_kind":"plain","computed":true},"creation_ip":{"type":"string","description":"The IPv4 Address of the device which created the API key","description_kind":"plain","computed":true},"default_project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"description":{"type":"string","description":"The description of the iam api key","description_kind":"plain","optional":true},"editable":{"type":"bool","description":"Whether or not the iam api key is editable","description_kind":"plain","computed":true},"expires_at":{"type":"string","description":"The date and time of the expiration of the iam api key. Cannot be changed afterwards","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"secret_key":{"type":"string","description":"The secret Key of the iam api key","description_kind":"plain","computed":true,"sensitive":true},"updated_at":{"type":"string","description":"The date and time of the last update of the iam api key","description_kind":"plain","computed":true},"user_id":{"type":"string","description":"ID of the user attached to the api key","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_iam_application":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the application","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the iam application","description_kind":"plain","optional":true},"editable":{"type":"bool","description":"Whether or not the application is editable.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam application","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"ID of organization the resource is associated to.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the application","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the application","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_iam_group":{"version":0,"block":{"attributes":{"application_ids":{"type":["set","string"],"description":"List of IDs of the applications attached to the group","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"The date and time of the creation of the group","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the iam group","description_kind":"plain","optional":true},"external_membership":{"type":"bool","description":"Handle user and application memberships externally","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam group","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"ID of organization the resource is associated to.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the application","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the group","description_kind":"plain","computed":true},"user_ids":{"type":["set","string"],"description":"List of IDs of the users attached to the group","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_iam_group_membership":{"version":0,"block":{"attributes":{"application_id":{"type":"string","description":"The ID of the user","description_kind":"plain","optional":true},"group_id":{"type":"string","description":"The ID of the group to add the user to","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"user_id":{"type":"string","description":"The ID of the user","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_iam_policy":{"version":0,"block":{"attributes":{"application_id":{"type":"string","description":"Application id","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"The date and time of the creation of the policy","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the iam policy","description_kind":"plain","optional":true},"editable":{"type":"bool","description":"Whether or not the policy is editable.","description_kind":"plain","computed":true},"group_id":{"type":"string","description":"Group id","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam policy","description_kind":"plain","optional":true,"computed":true},"no_principal":{"type":"bool","description":"Deactivate policy to a principal","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"ID of organization the resource is associated to.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the policy","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the policy","description_kind":"plain","computed":true},"user_id":{"type":"string","description":"User id","description_kind":"plain","optional":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"attributes":{"organization_id":{"type":"string","description":"ID of organization scoped to the rule. Only one of project_ids and organization_id may be set.","description_kind":"plain","optional":true},"permission_set_names":{"type":["set","string"],"description":"Names of permission sets bound to the rule.","description_kind":"plain","required":true},"project_ids":{"type":["list","string"],"description":"List of project IDs scoped to the rule. Only one of project_ids and organization_id may be set.","description_kind":"plain","optional":true}},"description":"Rules of the policy to create","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"scaleway_iam_ssh_key":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the iam SSH Key","description_kind":"plain","computed":true},"disabled":{"type":"bool","description":"The SSH key status","description_kind":"plain","optional":true},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam SSH key","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"public_key":{"type":"string","description":"The public SSH key","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the iam SSH Key","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_iam_user":{"version":0,"block":{"attributes":{"account_root_user_id":{"type":"string","description":"The ID of the account root user associated with the iam user.","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the iam user","description_kind":"plain","computed":true},"deletable":{"type":"bool","description":"Whether or not the iam user is editable","description_kind":"plain","computed":true},"email":{"type":"string","description":"The description of the iam user","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_login_at":{"type":"string","description":"The date and time of last login of the iam user","description_kind":"plain","computed":true},"mfa":{"type":"bool","description":"Whether or not the MFA is enabled","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"ID of organization the resource is associated to.","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"The status of user invitation.","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of the iam user","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the iam user","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_instance_image":{"version":0,"block":{"attributes":{"additional_volume_ids":{"type":["list","string"],"description":"The IDs of the additional volumes attached to the image","description_kind":"plain","optional":true},"additional_volumes":{"type":["list",["object",{"creation_date":"string","export_uri":"string","id":"string","modification_date":"string","name":"string","organization":"string","project":"string","server":["map","string"],"size":"number","state":"string","tags":["list","string"],"volume_type":"string","zone":"string"}]],"description":"Specs of the additional volumes attached to the image","description_kind":"plain","computed":true},"architecture":{"type":"string","description":"Architecture of the image (default = x86_64)","description_kind":"plain","optional":true},"creation_date":{"type":"string","description":"The date and time of the creation of the image","description_kind":"plain","computed":true},"from_server_id":{"type":"string","description":"The ID of the backed-up server from which the snapshot was taken","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"modification_date":{"type":"string","description":"The date and time of the last modification of the Redis cluster","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the image","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"public":{"type":"bool","description":"If true, the image will be public","description_kind":"plain","optional":true},"root_volume_id":{"type":"string","description":"UUID of the snapshot from which the image is to be created","description_kind":"plain","required":true},"state":{"type":"string","description":"The state of the image [ available | creating | error ]","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] attached to the image","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_ip":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The IP address","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"prefix":{"type":"string","description":"The IP prefix","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"reverse":{"type":"string","description":"The reverse DNS for this IP","description_kind":"plain","computed":true},"server_id":{"type":"string","description":"The server associated with this IP","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the ip","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of instance IP","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_ip_reverse_dns":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_id":{"type":"string","description":"The IP ID or IP address","description_kind":"plain","required":true},"reverse":{"type":"string","description":"The reverse DNS for this IP","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_placement_group":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the placement group","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"policy_mode":{"type":"string","description":"One of the two policy_mode may be selected: enforced or optional.","description_kind":"plain","optional":true},"policy_respected":{"type":"bool","description":"Is true when the policy is respected.","description_kind":"plain","computed":true},"policy_type":{"type":"string","description":"The operating mode is selected by a policy_type","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the placement group","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_private_nic":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_ids":{"type":["list","string"],"description":"IPAM ip list, should be for internal use only","description_kind":"plain","optional":true},"mac_address":{"type":"string","description":"MAC address of the NIC","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"The private network ID","description_kind":"plain","required":true},"server_id":{"type":"string","description":"The server ID","description_kind":"plain","required":true},"tags":{"type":["list","string"],"description":"The tags associated with the private-nic","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_security_group":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the security group","description_kind":"plain","optional":true},"enable_default_security":{"type":"bool","description":"Enable blocking of SMTP on IPv4 and IPv6","description_kind":"plain","optional":true},"external_rules":{"type":"bool","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inbound_default_policy":{"type":"string","description":"Default inbound traffic policy for this security group","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the security group","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"outbound_default_policy":{"type":"string","description":"Default outbound traffic policy for this security group","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"stateful":{"type":"bool","description":"The stateful value of the security group","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The tags associated with the security group","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"inbound_rule":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Action when rule match request (drop or accept)","description_kind":"plain","required":true},"ip":{"type":"string","description":"Ip address for this rule (e.g: 1.1.1.1). Only one of ip or ip_range should be provided","description_kind":"plain","deprecated":true,"optional":true},"ip_range":{"type":"string","description":"Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or ip_range should be provided","description_kind":"plain","optional":true},"port":{"type":"number","description":"Network port for this rule","description_kind":"plain","optional":true},"port_range":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"Protocol for this rule (TCP, UDP, ICMP or ANY)","description_kind":"plain","optional":true}},"description":"Inbound rules for this security group","description_kind":"plain"}},"outbound_rule":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Action when rule match request (drop or accept)","description_kind":"plain","required":true},"ip":{"type":"string","description":"Ip address for this rule (e.g: 1.1.1.1). Only one of ip or ip_range should be provided","description_kind":"plain","deprecated":true,"optional":true},"ip_range":{"type":"string","description":"Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or ip_range should be provided","description_kind":"plain","optional":true},"port":{"type":"number","description":"Network port for this rule","description_kind":"plain","optional":true},"port_range":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"Protocol for this rule (TCP, UDP, ICMP or ANY)","description_kind":"plain","optional":true}},"description":"Outbound rules for this security group","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_security_group_rules":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description":"The security group associated with this volume","description_kind":"plain","required":true}},"block_types":{"inbound_rule":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Action when rule match request (drop or accept)","description_kind":"plain","required":true},"ip":{"type":"string","description":"Ip address for this rule (e.g: 1.1.1.1). Only one of ip or ip_range should be provided","description_kind":"plain","deprecated":true,"optional":true},"ip_range":{"type":"string","description":"Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or ip_range should be provided","description_kind":"plain","optional":true},"port":{"type":"number","description":"Network port for this rule","description_kind":"plain","optional":true},"port_range":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"Protocol for this rule (TCP, UDP, ICMP or ANY)","description_kind":"plain","optional":true}},"description":"Inbound rules for this set of security group rules","description_kind":"plain"}},"outbound_rule":{"nesting_mode":"list","block":{"attributes":{"action":{"type":"string","description":"Action when rule match request (drop or accept)","description_kind":"plain","required":true},"ip":{"type":"string","description":"Ip address for this rule (e.g: 1.1.1.1). Only one of ip or ip_range should be provided","description_kind":"plain","deprecated":true,"optional":true},"ip_range":{"type":"string","description":"Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or ip_range should be provided","description_kind":"plain","optional":true},"port":{"type":"number","description":"Network port for this rule","description_kind":"plain","optional":true},"port_range":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)","description_kind":"plain","optional":true},"protocol":{"type":"string","description":"Protocol for this rule (TCP, UDP, ICMP or ANY)","description_kind":"plain","optional":true}},"description":"Outbound rules for this set of security group rules","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_server":{"version":0,"block":{"attributes":{"additional_volume_ids":{"type":["list","string"],"description":"The additional volumes attached to the server","description_kind":"plain","optional":true},"boot_type":{"type":"string","description":"The boot type of the server","description_kind":"plain","optional":true},"bootscript_id":{"type":"string","description":"ID of the target bootscript (set boot_type to bootscript)","description_kind":"plain","optional":true,"computed":true},"cloud_init":{"type":"string","description":"The cloud init script associated with this server","description_kind":"plain","optional":true,"computed":true},"enable_dynamic_ip":{"type":"bool","description":"Enable dynamic IP on the server","description_kind":"plain","optional":true},"enable_ipv6":{"type":"bool","description":"Determines if IPv6 is enabled for the server","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image":{"type":"string","description":"The UUID or the label of the base image used by the server","description_kind":"plain","optional":true},"ip_id":{"type":"string","description":"The ID of the reserved IP for the server","description_kind":"plain","optional":true},"ip_ids":{"type":["list","string"],"description_kind":"plain","optional":true},"ipv6_address":{"type":"string","description":"The default public IPv6 address routed to the server.","description_kind":"plain","computed":true},"ipv6_gateway":{"type":"string","description":"The IPv6 gateway address","description_kind":"plain","computed":true},"ipv6_prefix_length":{"type":"number","description":"The IPv6 prefix length routed to the server.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the server","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"placement_group_id":{"type":"string","description":"The placement group the server is attached to","description_kind":"plain","optional":true},"placement_group_policy_respected":{"type":"bool","description":"True when the placement group policy is respected","description_kind":"plain","computed":true},"private_ip":{"type":"string","description":"The Scaleway internal IP address of the server","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"public_ip":{"type":"string","description":"The public IPv4 address of the server","description_kind":"plain","computed":true},"replace_on_type_change":{"type":"bool","description":"Delete and re-create server if type change","description_kind":"plain","optional":true},"routed_ip_enabled":{"type":"bool","description":"If server supports routed IPs, default to true if public_ips is used","description_kind":"plain","optional":true,"computed":true},"security_group_id":{"type":"string","description":"The security group the server is attached to","description_kind":"plain","optional":true,"computed":true},"state":{"type":"string","description":"The state of the server should be: started, stopped, standby","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The tags associated with the server","description_kind":"plain","optional":true},"type":{"type":"string","description":"The instance type of the server","description_kind":"plain","required":true},"user_data":{"type":["map","string"],"description":"The user data associated with the server","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"private_network":{"nesting_mode":"list","block":{"attributes":{"mac_address":{"type":"string","description":"MAC address of the NIC","description_kind":"plain","computed":true},"pn_id":{"type":"string","description":"The Private Network ID","description_kind":"plain","required":true},"status":{"type":"string","description":"The private NIC state","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description":"List of private network to connect with your instance","description_kind":"plain"},"max_items":8},"public_ips":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description":"IP Address","description_kind":"plain","computed":true},"id":{"type":"string","description":"ID of the IP","description_kind":"plain","computed":true}},"description":"List of public IPs attached to your instance","description_kind":"plain"}},"root_volume":{"nesting_mode":"list","block":{"attributes":{"boot":{"type":"bool","description":"Set the volume where the boot the server","description_kind":"plain","optional":true},"delete_on_termination":{"type":"bool","description":"Force deletion of the root volume on instance termination","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the root volume","description_kind":"plain","computed":true},"size_in_gb":{"type":"number","description":"Size of the root volume in gigabytes","description_kind":"plain","optional":true,"computed":true},"volume_id":{"type":"string","description":"Volume ID of the root volume","description_kind":"plain","optional":true,"computed":true},"volume_type":{"type":"string","description":"Volume type of the root volume","description_kind":"plain","optional":true,"computed":true}},"description":"Root volume attached to the server on creation","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_snapshot":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the snapshot","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the snapshot","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"size_in_gb":{"type":"number","description":"The size of the snapshot in gigabyte","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the snapshot","description_kind":"plain","optional":true},"type":{"type":"string","description":"The snapshot's volume type","description_kind":"plain","optional":true,"computed":true},"volume_id":{"type":"string","description":"ID of the volume to take a snapshot from","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"import":{"nesting_mode":"list","block":{"attributes":{"bucket":{"type":"string","description":"Bucket containing qcow","description_kind":"plain","required":true},"key":{"type":"string","description":"Key of the qcow file in the specified bucket","description_kind":"plain","required":true}},"description":"Import snapshot from a qcow","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_user_data":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"The key of the user data to set.","description_kind":"plain","required":true},"server_id":{"type":"string","description":"The ID of the server","description_kind":"plain","required":true},"value":{"type":"string","description":"The value of the user data to set.","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_instance_volume":{"version":0,"block":{"attributes":{"from_snapshot_id":{"type":"string","description":"Create a volume based on a image","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the volume","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"server_id":{"type":"string","description":"The server associated with this volume","description_kind":"plain","computed":true},"size_in_gb":{"type":"number","description":"The size of the volume in gigabyte","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The tags associated with the volume","description_kind":"plain","optional":true},"type":{"type":"string","description":"The volume type","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"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"}},"scaleway_iot_device":{"version":0,"block":{"attributes":{"allow_insecure":{"type":"bool","description":"Allow plain and server-authenticated SSL connections in addition to mutually-authenticated ones","description_kind":"plain","optional":true},"allow_multiple_connections":{"type":"bool","description":"Allow multiple connections","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"The date and time of the creation of the device","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the device","description_kind":"plain","optional":true},"hub_id":{"type":"string","description":"The ID of the hub on which this device will be created","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_connected":{"type":"bool","description":"The MQTT connection status of the device","description_kind":"plain","computed":true},"last_activity_at":{"type":"string","description":"The date and time of last MQTT activity of the device","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the device","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"The status of the device","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the device","description_kind":"plain","computed":true}},"block_types":{"certificate":{"nesting_mode":"list","block":{"attributes":{"crt":{"type":"string","description":"X509 PEM encoded certificate of the device","description_kind":"plain","optional":true,"computed":true,"sensitive":true},"key":{"type":"string","description":"X509 PEM encoded key of the device","description_kind":"plain","computed":true,"sensitive":true}},"description":"Certificate section of the device","description_kind":"plain"},"max_items":1},"message_filters":{"nesting_mode":"list","block":{"block_types":{"publish":{"nesting_mode":"list","block":{"attributes":{"policy":{"type":"string","description":"Publish message filter policy","description_kind":"plain","optional":true},"topics":{"type":["list","string"],"description":"List of topics in the set","description_kind":"plain","optional":true}},"description":"Rule to restrict topics the device can publish to","description_kind":"plain"},"max_items":1},"subscribe":{"nesting_mode":"list","block":{"attributes":{"policy":{"type":"string","description":"Subscribe message filter policy","description_kind":"plain","optional":true},"topics":{"type":["list","string"],"description":"List of topics in the set","description_kind":"plain","optional":true}},"description":"Rule to restrict topics the device can subscribe to","description_kind":"plain"},"max_items":1}},"description":"Rules to authorize or deny the device to publish/subscribe to specific topics","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"scaleway_iot_hub":{"version":0,"block":{"attributes":{"connected_device_count":{"type":"number","description":"The current number of connected devices in the Hub","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the IoT Hub","description_kind":"plain","computed":true},"device_auto_provisioning":{"type":"bool","description":"Wether to enable the device auto provisioning or not","description_kind":"plain","optional":true},"device_count":{"type":"number","description":"The number of registered devices in the Hub","description_kind":"plain","computed":true},"disable_events":{"type":"bool","description":"Whether to enable the hub events or not","description_kind":"plain","optional":true},"enabled":{"type":"bool","description":"Whether to enable the hub or not","description_kind":"plain","optional":true},"endpoint":{"type":"string","description":"The endpoint to connect the devices to","description_kind":"plain","computed":true},"events_topic_prefix":{"type":"string","description":"Topic prefix for the hub events","description_kind":"plain","optional":true},"hub_ca":{"type":"string","description":"Custom user provided certificate authority","description_kind":"plain","optional":true},"hub_ca_challenge":{"type":"string","description":"Challenge certificate for the user provided hub CA","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the hub","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"product_plan":{"type":"string","description":"The product plan of the hub","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"The status of the hub","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the IoT Hub","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_iot_network":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the network","description_kind":"plain","computed":true},"endpoint":{"type":"string","description":"The endpoint to use when interacting with the network","description_kind":"plain","computed":true},"hub_id":{"type":"string","description":"The ID of the hub on which this network will be created","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the network","description_kind":"plain","required":true},"secret":{"type":"string","description":"The endpoint key to keep secret","description_kind":"plain","computed":true,"sensitive":true},"topic_prefix":{"type":"string","description":"The prefix that will be prepended to all topics for this Network","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of the network","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_iot_route":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the IoT Route","description_kind":"plain","computed":true},"hub_id":{"type":"string","description":"The ID of the route's hub","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the route","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"topic":{"type":"string","description":"The Topic the route subscribes to (wildcards allowed)","description_kind":"plain","required":true}},"block_types":{"database":{"nesting_mode":"list","block":{"attributes":{"dbname":{"type":"string","description":"The database name","description_kind":"plain","required":true},"host":{"type":"string","description":"The database hostname","description_kind":"plain","required":true},"password":{"type":"string","description":"The database password","description_kind":"plain","required":true,"sensitive":true},"port":{"type":"number","description":"The database port","description_kind":"plain","required":true},"query":{"type":"string","description":"SQL query to be executed ($TOPIC and $PAYLOAD variables are available, see documentation)","description_kind":"plain","required":true},"username":{"type":"string","description":"The database username","description_kind":"plain","required":true}},"description":"Database Route parameters","description_kind":"plain"},"max_items":1},"rest":{"nesting_mode":"list","block":{"attributes":{"headers":{"type":["map","string"],"description":"The HTTP call extra headers","description_kind":"plain","required":true},"uri":{"type":"string","description":"The URI of the REST endpoint","description_kind":"plain","required":true},"verb":{"type":"string","description":"The HTTP Verb used to call REST URI","description_kind":"plain","required":true}},"description":"Rest Route parameters","description_kind":"plain"},"max_items":1},"s3":{"nesting_mode":"list","block":{"attributes":{"bucket_name":{"type":"string","description":"The name of the S3 route's destination bucket","description_kind":"plain","required":true},"bucket_region":{"type":"string","description":"The region of the S3 route's destination bucket","description_kind":"plain","required":true},"object_prefix":{"type":"string","description":"The string to prefix object names with","description_kind":"plain","optional":true},"strategy":{"type":"string","description":"How the S3 route's objects will be created: one per topic or one per message","description_kind":"plain","required":true}},"description":"S3 Route parameters","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_ipam_ip":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"Request a specific IP in the requested source pool","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the IP","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_ipv6":{"type":"bool","description":"Request an IPv6 instead of an IPv4","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"resource":{"type":["list",["object",{"id":"string","mac_address":"string","name":"string","type":"string"}]],"description":"The IP resource","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the IP","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the IP","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone of the resource","description_kind":"plain","computed":true}},"block_types":{"source":{"nesting_mode":"list","block":{"attributes":{"private_network_id":{"type":"string","description":"Private Network the IP lives in if the IP is a private IP","description_kind":"plain","optional":true,"computed":true},"subnet_id":{"type":"string","description":"Private Network subnet the IP lives in if the IP is a private IP in a Private Network","description_kind":"plain","optional":true,"computed":true},"zonal":{"type":"string","description":"Zone the IP lives in if the IP is a public zoned one","description_kind":"plain","optional":true,"computed":true}},"description":"The source in which to book the IP","description_kind":"plain"},"min_items":1}},"description_kind":"plain"}},"scaleway_job_definition":{"version":0,"block":{"attributes":{"command":{"type":"string","description_kind":"plain","optional":true},"cpu_limit":{"type":"number","description_kind":"plain","required":true},"description":{"type":"string","description_kind":"plain","optional":true},"env":{"type":["map","string"],"description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_uri":{"type":"string","description_kind":"plain","optional":true},"memory_limit":{"type":"number","description_kind":"plain","required":true},"name":{"type":"string","description":"The job name","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"timeout":{"type":"string","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_k8s_cluster":{"version":0,"block":{"attributes":{"admission_plugins":{"type":["list","string"],"description":"The list of admission plugins to enable on the cluster","description_kind":"plain","optional":true},"apiserver_cert_sans":{"type":["list","string"],"description":"Additional Subject Alternative Names for the Kubernetes API server certificate","description_kind":"plain","optional":true},"apiserver_url":{"type":"string","description":"Kubernetes API server URL","description_kind":"plain","computed":true},"cni":{"type":"string","description":"The CNI plugin of the cluster","description_kind":"plain","required":true},"created_at":{"type":"string","description":"The date and time of the creation of the Kubernetes cluster","description_kind":"plain","computed":true},"delete_additional_resources":{"type":"bool","description":"Delete additional resources like block volumes and loadbalancers on cluster deletion","description_kind":"plain","required":true},"description":{"type":"string","description":"The description of the cluster","description_kind":"plain","optional":true},"feature_gates":{"type":["list","string"],"description":"The list of feature gates to enable on the cluster","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubeconfig":{"type":["list",["object",{"cluster_ca_certificate":"string","config_file":"string","host":"string","token":"string"}]],"description":"The kubeconfig configuration file of the Kubernetes cluster","description_kind":"plain","computed":true,"sensitive":true},"name":{"type":"string","description":"The name of the cluster","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"The ID of the cluster's private network","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"The status of the cluster","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the cluster","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of cluster","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Kubernetes cluster","description_kind":"plain","computed":true},"upgrade_available":{"type":"bool","description":"True if an upgrade is available","description_kind":"plain","computed":true},"version":{"type":"string","description":"The version of the cluster","description_kind":"plain","required":true},"wildcard_dns":{"type":"string","description":"Wildcard DNS pointing to all the ready nodes","description_kind":"plain","computed":true}},"block_types":{"auto_upgrade":{"nesting_mode":"list","block":{"attributes":{"enable":{"type":"bool","description":"Enables the Kubernetes patch version auto upgrade","description_kind":"plain","required":true},"maintenance_window_day":{"type":"string","description":"Day of the maintenance window","description_kind":"plain","required":true},"maintenance_window_start_hour":{"type":"number","description":"Start hour of the 2-hour maintenance window","description_kind":"plain","required":true}},"description":"The auto upgrade configuration for the cluster","description_kind":"plain"},"max_items":1},"autoscaler_config":{"nesting_mode":"list","block":{"attributes":{"balance_similar_node_groups":{"type":"bool","description":"Detect similar node groups and balance the number of nodes between them","description_kind":"plain","optional":true},"disable_scale_down":{"type":"bool","description":"Disable the scale down feature of the autoscaler","description_kind":"plain","optional":true},"estimator":{"type":"string","description":"Type of resource estimator to be used in scale up","description_kind":"plain","optional":true},"expander":{"type":"string","description":"Type of node group expander to be used in scale up","description_kind":"plain","optional":true},"expendable_pods_priority_cutoff":{"type":"number","description":"Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable","description_kind":"plain","optional":true},"ignore_daemonsets_utilization":{"type":"bool","description":"Ignore DaemonSet pods when calculating resource utilization for scaling down","description_kind":"plain","optional":true},"max_graceful_termination_sec":{"type":"number","description":"Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node","description_kind":"plain","optional":true},"scale_down_delay_after_add":{"type":"string","description":"How long after scale up that scale down evaluation resumes","description_kind":"plain","optional":true},"scale_down_unneeded_time":{"type":"string","description":"How long a node should be unneeded before it is eligible for scale down","description_kind":"plain","optional":true},"scale_down_utilization_threshold":{"type":"number","description":"Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down","description_kind":"plain","optional":true}},"description":"The autoscaler configuration for the cluster","description_kind":"plain"},"max_items":1},"open_id_connect_config":{"nesting_mode":"list","block":{"attributes":{"client_id":{"type":"string","description":"A client id that all tokens must be issued for","description_kind":"plain","required":true},"groups_claim":{"type":["list","string"],"description":"JWT claim to use as the user's group","description_kind":"plain","optional":true},"groups_prefix":{"type":"string","description":"Prefix prepended to group claims","description_kind":"plain","optional":true},"issuer_url":{"type":"string","description":"URL of the provider which allows the API server to discover public signing keys","description_kind":"plain","required":true},"required_claim":{"type":["list","string"],"description":"Multiple key=value pairs that describes a required claim in the ID Token","description_kind":"plain","optional":true},"username_claim":{"type":"string","description":"JWT claim to use as the user name","description_kind":"plain","optional":true},"username_prefix":{"type":"string","description":"Prefix prepended to username","description_kind":"plain","optional":true}},"description":"The OpenID Connect configuration of the cluster","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_k8s_pool":{"version":0,"block":{"attributes":{"autohealing":{"type":"bool","description":"Enable the autohealing on the pool","description_kind":"plain","optional":true},"autoscaling":{"type":"bool","description":"Enable the autoscaling on the pool","description_kind":"plain","optional":true},"cluster_id":{"type":"string","description":"The ID of the cluster on which this pool will be created","description_kind":"plain","required":true},"container_runtime":{"type":"string","description":"Container runtime for the pool","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"The date and time of the creation of the pool","description_kind":"plain","computed":true},"current_size":{"type":"number","description":"The actual size of the pool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubelet_args":{"type":["map","string"],"description":"The Kubelet arguments to be used by this pool","description_kind":"plain","optional":true},"max_size":{"type":"number","description":"Maximum size of the pool","description_kind":"plain","optional":true,"computed":true},"min_size":{"type":"number","description":"Minimum size of the pool","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the cluster","description_kind":"plain","required":true},"node_type":{"type":"string","description":"Server type of the pool servers","description_kind":"plain","required":true},"nodes":{"type":["list",["object",{"name":"string","public_ip":"string","public_ip_v6":"string","status":"string"}]],"description_kind":"plain","computed":true},"placement_group_id":{"type":"string","description":"ID of the placement group","description_kind":"plain","optional":true},"public_ip_disabled":{"type":"bool","description":"Defines if the public IP should be removed from the nodes.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"root_volume_size_in_gb":{"type":"number","description":"The size of the system volume of the nodes in gigabyte","description_kind":"plain","optional":true},"root_volume_type":{"type":"string","description":"System volume type of the nodes composing the pool","description_kind":"plain","optional":true},"size":{"type":"number","description":"Size of the pool","description_kind":"plain","required":true},"status":{"type":"string","description":"The status of the pool","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the pool","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the pool","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Kubernetes version of the pool","description_kind":"plain","computed":true},"wait_for_pool_ready":{"type":"bool","description":"Whether to wait for the pool to be ready","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"upgrade_policy":{"nesting_mode":"list","block":{"attributes":{"max_surge":{"type":"number","description":"The maximum number of nodes to be created during the upgrade","description_kind":"plain","optional":true},"max_unavailable":{"type":"number","description":"The maximum number of nodes that can be not ready at the same time","description_kind":"plain","optional":true}},"description":"The Pool upgrade policy","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"scaleway_lb":{"version":1,"block":{"attributes":{"assign_flexible_ip":{"type":"bool","description":"Defines whether to automatically assign a flexible public IP to the load balancer","description_kind":"plain","optional":true},"description":{"type":"string","description":"The description of the lb","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The load-balance public IP address","description_kind":"plain","computed":true},"ip_id":{"type":"string","description":"The load-balance public IP ID","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the lb","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the resource","description_kind":"plain","computed":true},"release_ip":{"type":"bool","description":"Release the IPs related to this load-balancer","description_kind":"plain","deprecated":true,"optional":true},"ssl_compatibility_level":{"type":"string","description":"Enforces minimal SSL version (in SSL/TLS offloading context)","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Array of tags to associate with the load-balancer","description_kind":"plain","optional":true},"type":{"type":"string","description":"The type of load-balancer you want to create","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"private_network":{"nesting_mode":"set","block":{"attributes":{"dhcp_config":{"type":"bool","description":"Set to true if you want to let DHCP assign IP addresses","description_kind":"plain","optional":true,"computed":true},"private_network_id":{"type":"string","description":"The Private Network ID","description_kind":"plain","required":true},"static_config":{"type":["list","string"],"description":"Define an IP address in the subnet of your private network that will be assigned to your load balancer instance","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of private network connection","description_kind":"plain","computed":true},"zone":{"type":"string","description_kind":"plain","computed":true}},"description":"List of private network to connect with your load balancer","description_kind":"plain"},"max_items":8},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_lb_acl":{"version":1,"block":{"attributes":{"created_at":{"type":"string","description":"Date and time of ACL's creation (RFC 3339 format)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the ACL","description_kind":"plain","optional":true},"frontend_id":{"type":"string","description":"The frontend ID on which the ACL is applied","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"index":{"type":"number","description":"The priority of the ACL. (ACLs are applied in ascending order, 0 is the first ACL executed)","description_kind":"plain","required":true},"name":{"type":"string","description":"The ACL name","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"Date and time of ACL's update (RFC 3339 format)","description_kind":"plain","computed":true}},"block_types":{"action":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description":"The action type","description_kind":"plain","required":true}},"block_types":{"redirect":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"number","description":"The HTTP redirect code to use","description_kind":"plain","optional":true},"target":{"type":"string","description":"An URL can be used in case of a location redirect ","description_kind":"plain","optional":true},"type":{"type":"string","description":"The redirect type","description_kind":"plain","optional":true}},"description":"Redirect parameters when using an ACL with `redirect` action","description_kind":"plain"}}},"description":"Action to undertake when an ACL filter matches","description_kind":"plain"},"min_items":1,"max_items":1},"match":{"nesting_mode":"list","block":{"attributes":{"http_filter":{"type":"string","description":"The HTTP filter to match","description_kind":"plain","optional":true},"http_filter_option":{"type":"string","description":"You can use this field with http_header_match acl type to set the header name to filter","description_kind":"plain","optional":true},"http_filter_value":{"type":["list","string"],"description":"A list of possible values to match for the given HTTP filter","description_kind":"plain","optional":true},"invert":{"type":"bool","description":"If set to true, the condition will be of type \"unless\"","description_kind":"plain","optional":true},"ip_subnet":{"type":["list","string"],"description":"A list of IPs or CIDR v4/v6 addresses of the client of the session to match","description_kind":"plain","optional":true}},"description":"The ACL match rule","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_lb_backend":{"version":1,"block":{"attributes":{"failover_host":{"type":"string","description":"Scaleway S3 bucket website to be served in case all backend servers are down\n\n**NOTE** : Only the host part of the Scaleway S3 bucket website is expected.\nE.g. 'failover-website.s3-website.fr-par.scw.cloud' if your bucket website URL is 'https://failover-website.s3-website.fr-par.scw.cloud/'.","description_kind":"plain","optional":true},"forward_port":{"type":"number","description":"User sessions will be forwarded to this port of backend servers","description_kind":"plain","required":true},"forward_port_algorithm":{"type":"string","description":"Load balancing algorithm","description_kind":"plain","optional":true},"forward_protocol":{"type":"string","description":"Backend protocol","description_kind":"plain","required":true},"health_check_delay":{"type":"string","description":"Interval between two HC requests","description_kind":"plain","optional":true},"health_check_max_retries":{"type":"number","description":"Number of allowed failed HC requests before the backend server is marked down","description_kind":"plain","optional":true},"health_check_port":{"type":"number","description":"Port the HC requests will be send to. Default to `forward_port`","description_kind":"plain","optional":true,"computed":true},"health_check_send_proxy":{"type":"bool","description":"Defines whether proxy protocol should be activated for the health check","description_kind":"plain","optional":true},"health_check_timeout":{"type":"string","description":"Timeout before we consider a HC request failed","description_kind":"plain","optional":true},"health_check_transient_delay":{"type":"string","description":"Time to wait between two consecutive health checks when a backend server is in a transient state (going UP or DOWN)","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ignore_ssl_server_verify":{"type":"bool","description":"Specifies whether the Load Balancer should check the backend server’s certificate before initiating a connection","description_kind":"plain","optional":true},"lb_id":{"type":"string","description":"The load-balancer ID","description_kind":"plain","required":true},"max_connections":{"type":"number","description":"Maximum number of connections allowed per backend server","description_kind":"plain","optional":true},"max_retries":{"type":"number","description":"Number of retries when a backend server connection failed","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the backend","description_kind":"plain","optional":true,"computed":true},"on_marked_down_action":{"type":"string","description":"Modify what occurs when a backend server is marked down","description_kind":"plain","optional":true},"proxy_protocol":{"type":"string","description":"Type of PROXY protocol to enable","description_kind":"plain","optional":true},"redispatch_attempt_count":{"type":"number","description":"Whether to use another backend server on each attempt","description_kind":"plain","optional":true},"send_proxy_v2":{"type":"bool","description":"Enables PROXY protocol version 2","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"server_ips":{"type":["list","string"],"description":"Backend server IP addresses list (IPv4 or IPv6)","description_kind":"plain","optional":true},"ssl_bridging":{"type":"bool","description":"Enables SSL between load balancer and backend servers","description_kind":"plain","optional":true},"sticky_sessions":{"type":"string","description":"The type of sticky sessions","description_kind":"plain","optional":true},"sticky_sessions_cookie_name":{"type":"string","description":"Cookie name for for sticky sessions","description_kind":"plain","optional":true},"timeout_connect":{"type":"string","description":"Maximum initial server connection establishment time","description_kind":"plain","optional":true},"timeout_queue":{"type":"string","description":"Maximum time (in seconds) for a request to be left pending in queue when `max_connections` is reached","description_kind":"plain","optional":true},"timeout_server":{"type":"string","description":"Maximum server connection inactivity time","description_kind":"plain","optional":true},"timeout_tunnel":{"type":"string","description":"Maximum tunnel inactivity time","description_kind":"plain","optional":true}},"block_types":{"health_check_http":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"number","description":"The expected HTTP status code","description_kind":"plain","optional":true},"host_header":{"type":"string","description":"The HTTP host header to use for HC requests","description_kind":"plain","optional":true},"method":{"type":"string","description":"The HTTP method to use for HC requests","description_kind":"plain","optional":true},"uri":{"type":"string","description":"The HTTP endpoint URL to call for HC requests","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"health_check_https":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"number","description":"The expected HTTP status code","description_kind":"plain","optional":true},"host_header":{"type":"string","description":"The HTTP host header to use for HC requests","description_kind":"plain","optional":true},"method":{"type":"string","description":"The HTTP method to use for HC requests","description_kind":"plain","optional":true},"sni":{"type":"string","description":"The SNI to use for HC requests over SSL","description_kind":"plain","optional":true},"uri":{"type":"string","description":"The HTTPS endpoint URL to call for HC requests","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1},"health_check_tcp":{"nesting_mode":"list","block":{"description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_lb_certificate":{"version":1,"block":{"attributes":{"common_name":{"type":"string","description":"The main domain name of the certificate","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"The identifier (SHA-1) of the certificate","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lb_id":{"type":"string","description":"The load-balancer ID","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the load-balancer certificate","description_kind":"plain","optional":true,"computed":true},"not_valid_after":{"type":"string","description":"The not valid after validity bound timestamp","description_kind":"plain","computed":true},"not_valid_before":{"type":"string","description":"The not valid before validity bound timestamp","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of certificate","description_kind":"plain","computed":true},"subject_alternative_name":{"type":["list","string"],"description":"The alternative domain names of the certificate","description_kind":"plain","computed":true}},"block_types":{"custom_certificate":{"nesting_mode":"list","block":{"attributes":{"certificate_chain":{"type":"string","description":"The full PEM-formatted certificate chain","description_kind":"plain","required":true}},"description":"The custom type certificate type configuration","description_kind":"plain"},"max_items":1},"letsencrypt":{"nesting_mode":"list","block":{"attributes":{"common_name":{"type":"string","description":"The main domain name of the certificate","description_kind":"plain","required":true},"subject_alternative_name":{"type":["list","string"],"description":"The alternative domain names of the certificate","description_kind":"plain","optional":true}},"description":"The Let's Encrypt type certificate configuration","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_lb_frontend":{"version":1,"block":{"attributes":{"backend_id":{"type":"string","description":"The load-balancer backend ID","description_kind":"plain","required":true},"certificate_id":{"type":"string","description":"Certificate ID","description_kind":"plain","deprecated":true,"computed":true},"certificate_ids":{"type":["list","string"],"description":"Collection of Certificate IDs related to the load balancer and domain","description_kind":"plain","optional":true},"enable_http3":{"type":"bool","description":"Activates HTTP/3 protocol","description_kind":"plain","optional":true},"external_acls":{"type":"bool","description":"This boolean determines if ACLs should be managed externally through the 'lb_acl' resource. If set to `true`, `acl` attribute cannot be set directly in the lb frontend","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inbound_port":{"type":"number","description":"TCP port to listen on the front side","description_kind":"plain","required":true},"lb_id":{"type":"string","description":"The load-balancer ID","description_kind":"plain","required":true},"name":{"type":"string","description":"The name of the frontend","description_kind":"plain","optional":true,"computed":true},"timeout_client":{"type":"string","description":"Set the maximum inactivity time on the client side","description_kind":"plain","optional":true}},"block_types":{"acl":{"nesting_mode":"list","block":{"attributes":{"created_at":{"type":"string","description":"Date and time of ACL's creation (RFC 3339 format)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the ACL","description_kind":"plain","optional":true},"name":{"type":"string","description":"The ACL name","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"Date and time of ACL's update (RFC 3339 format)","description_kind":"plain","computed":true}},"block_types":{"action":{"nesting_mode":"list","block":{"attributes":{"type":{"type":"string","description":"The action type","description_kind":"plain","required":true}},"block_types":{"redirect":{"nesting_mode":"list","block":{"attributes":{"code":{"type":"number","description":"The HTTP redirect code to use","description_kind":"plain","optional":true},"target":{"type":"string","description":"An URL can be used in case of a location redirect ","description_kind":"plain","optional":true},"type":{"type":"string","description":"The redirect type","description_kind":"plain","optional":true}},"description":"Redirect parameters when using an ACL with `redirect` action","description_kind":"plain"}}},"description":"Action to undertake when an ACL filter matches","description_kind":"plain"},"min_items":1,"max_items":1},"match":{"nesting_mode":"list","block":{"attributes":{"http_filter":{"type":"string","description":"The HTTP filter to match","description_kind":"plain","optional":true},"http_filter_option":{"type":"string","description":"You can use this field with http_header_match acl type to set the header name to filter","description_kind":"plain","optional":true},"http_filter_value":{"type":["list","string"],"description":"A list of possible values to match for the given HTTP filter","description_kind":"plain","optional":true},"invert":{"type":"bool","description":"If set to true, the condition will be of type \"unless\"","description_kind":"plain","optional":true},"ip_subnet":{"type":["list","string"],"description":"A list of IPs or CIDR v4/v6 addresses of the client of the session to match","description_kind":"plain","optional":true}},"description":"The ACL match rule","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"ACL rules","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"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"}},"scaleway_lb_ip":{"version":1,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The load-balancer public IP address","description_kind":"plain","computed":true},"lb_id":{"type":"string","description":"The ID of the load balancer attached to this IP, if any","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region of the resource","description_kind":"plain","computed":true},"reverse":{"type":"string","description":"The reverse domain name for this IP","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_lb_route":{"version":1,"block":{"attributes":{"backend_id":{"type":"string","description":"The backend ID destination of redirection","description_kind":"plain","required":true},"created_at":{"type":"string","description":"The date at which the route was created (RFC 3339 format)","description_kind":"plain","computed":true},"frontend_id":{"type":"string","description":"The frontend ID origin of redirection","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"match_host_header":{"type":"string","description":"Specifies the host of the server to which the request is being sent","description_kind":"plain","optional":true},"match_sni":{"type":"string","description":"Server Name Indication TLS extension field from an incoming connection made via an SSL/TLS transport layer","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date at which the route was last updated (RFC 3339 format)","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_mnq_nats_account":{"version":0,"block":{"attributes":{"endpoint":{"type":"string","description":"The endpoint for interact with Nats","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The nats account name","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_mnq_nats_credentials":{"version":0,"block":{"attributes":{"account_id":{"type":"string","description":"ID of the nats account","description_kind":"plain","required":true},"file":{"type":"string","description":"The credentials file","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The nats credentials name","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_mnq_sqs":{"version":0,"block":{"attributes":{"endpoint":{"type":"string","description":"Endpoint of the SQS service","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_mnq_sqs_credentials":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"SQS credentials access key","description_kind":"plain","computed":true,"sensitive":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The credentials name","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"secret_key":{"type":"string","description":"SQS credentials secret key","description_kind":"plain","computed":true,"sensitive":true}},"block_types":{"permissions":{"nesting_mode":"list","block":{"attributes":{"can_manage":{"type":"bool","description":"Allow manage the associated resource","description_kind":"plain","optional":true,"computed":true},"can_publish":{"type":"bool","description":"Allow publish messages to the service","description_kind":"plain","optional":true,"computed":true},"can_receive":{"type":"bool","description":"Allow receive messages from the service","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"scaleway_mnq_sqs_queue":{"version":0,"block":{"attributes":{"access_key":{"type":"string","description":"SQS access key","description_kind":"plain","required":true,"sensitive":true},"content_based_deduplication":{"type":"bool","description":"Specifies whether to enable content-based deduplication. Allows omitting the deduplication ID","description_kind":"plain","optional":true,"computed":true},"endpoint":{"type":"string","description":"The sqs endpoint","description_kind":"plain","optional":true},"fifo_queue":{"type":"bool","description":"Whether the queue is a FIFO queue. If true, the queue name must end with .fifo","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"message_max_age":{"type":"number","description":"The number of seconds the queue retains a message.","description_kind":"plain","optional":true},"message_max_size":{"type":"number","description":"The maximum size of a message. Should be in bytes.","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the queue. Conflicts with name_prefix.","description_kind":"plain","optional":true,"computed":true},"name_prefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with name.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"receive_wait_time_seconds":{"type":"number","description":"The number of seconds to wait for a message to arrive in the queue before returning.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"secret_key":{"type":"string","description":"SQS secret key","description_kind":"plain","required":true,"sensitive":true},"url":{"type":"string","description":"The URL of the queue","description_kind":"plain","computed":true},"visibility_timeout_seconds":{"type":"number","description":"The number of seconds a message is hidden from other consumers.","description_kind":"plain","optional":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"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"}},"scaleway_object":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The name of the bucket","description_kind":"plain","required":true},"content":{"type":"string","description":"Content of the file to upload","description_kind":"plain","optional":true},"content_base64":{"type":"string","description":"Content of the file to upload, should be base64 encoded","description_kind":"plain","optional":true},"file":{"type":"string","description":"Path of the file to upload, defaults to an empty file","description_kind":"plain","optional":true},"hash":{"type":"string","description":"File hash to trigger upload","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"key":{"type":"string","description":"Key of the object","description_kind":"plain","required":true},"metadata":{"type":["map","string"],"description":"Map of object's metadata, only lower case keys are allowed","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"storage_class":{"type":"string","description":"Specifies the Scaleway Object Storage class to which you want the object to transition","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description":"Map of object's tags","description_kind":"plain","optional":true},"visibility":{"type":"string","description":"Visibility of the object, public-read or private","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_object_bucket":{"version":0,"block":{"attributes":{"acl":{"type":"string","description":"ACL of the bucket: either 'public-read' or 'private'.","description_kind":"plain","deprecated":true,"optional":true},"api_endpoint":{"type":"string","description":"API URL of the bucket","description_kind":"plain","computed":true},"endpoint":{"type":"string","description":"Endpoint of the bucket","description_kind":"plain","computed":true},"force_destroy":{"type":"bool","description":"Delete objects in bucket","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the bucket","description_kind":"plain","required":true},"object_lock_enabled":{"type":"bool","description":"Enable object lock","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["map","string"],"description":"The tags associated with this bucket","description_kind":"plain","optional":true}},"block_types":{"cors_rule":{"nesting_mode":"list","block":{"attributes":{"allowed_headers":{"type":["list","string"],"description_kind":"plain","optional":true},"allowed_methods":{"type":["list","string"],"description_kind":"plain","required":true},"allowed_origins":{"type":["list","string"],"description_kind":"plain","required":true},"expose_headers":{"type":["list","string"],"description_kind":"plain","optional":true},"max_age_seconds":{"type":"number","description_kind":"plain","optional":true}},"description_kind":"plain"}},"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 if the configuration rule is Enabled or Disabled","description_kind":"plain","required":true},"id":{"type":"string","description":"Unique identifier for the rule","description_kind":"plain","optional":true,"computed":true},"prefix":{"type":"string","description":"The prefix identifying one or more objects to which the rule applies","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description":"The tags associated with the bucket lifecycle","description_kind":"plain","optional":true}},"block_types":{"expiration":{"nesting_mode":"list","block":{"attributes":{"days":{"type":"number","description":"Specifies the number of days after object creation when the specific rule action takes effect","description_kind":"plain","required":true}},"description":"Specifies a period in the object's expire","description_kind":"plain"},"max_items":1},"transition":{"nesting_mode":"set","block":{"attributes":{"days":{"type":"number","description":"Specifies the number of days after object creation when the specific rule action takes effect","description_kind":"plain","optional":true},"storage_class":{"type":"string","description":"Specifies the Scaleway Object Storage class to which you want the object to transition","description_kind":"plain","required":true}},"description":"Define when objects transition to another storage class","description_kind":"plain"}}},"description":"Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}},"versioning":{"nesting_mode":"list","block":{"attributes":{"enabled":{"type":"bool","description":"Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state","description_kind":"plain","optional":true,"computed":true}},"description":"Allow multiple versions of an object in the same bucket","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"scaleway_object_bucket_acl":{"version":0,"block":{"attributes":{"acl":{"type":"string","description":"ACL of the bucket: either 'public-read' or 'private'.","description_kind":"plain","optional":true},"bucket":{"type":"string","description":"The bucket name.","description_kind":"plain","required":true},"expected_bucket_owner":{"type":"string","description":"The project ID as owner.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"access_control_policy":{"nesting_mode":"list","block":{"block_types":{"grant":{"nesting_mode":"set","block":{"attributes":{"permission":{"type":"string","description":"Logging permissions assigned to the grantee for the bucket.","description_kind":"plain","required":true}},"block_types":{"grantee":{"nesting_mode":"list","block":{"attributes":{"display_name":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description":"The project ID owner of the grantee.","description_kind":"plain","required":true},"type":{"type":"string","description":"Type of grantee. Valid values: `CanonicalUser`","description_kind":"plain","required":true}},"description":"Configuration block for the project being granted permissions.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"owner":{"nesting_mode":"list","block":{"attributes":{"display_name":{"type":"string","description":"The project ID of the grantee.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"The display ID of the project.","description_kind":"plain","required":true}},"description":"Configuration block of the bucket project owner's display organization ID.","description_kind":"plain"},"min_items":1,"max_items":1}},"description":"A configuration block that sets the ACL permissions for an object per grantee.","description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"scaleway_object_bucket_lock_configuration":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The bucket name.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"rule":{"nesting_mode":"list","block":{"block_types":{"default_retention":{"nesting_mode":"list","block":{"attributes":{"days":{"type":"number","description":"The number of days that you want to specify for the default retention period.","description_kind":"plain","optional":true},"mode":{"type":"string","description":"The default Object Lock retention mode you want to apply to new objects placed in the specified bucket.","description_kind":"plain","required":true},"years":{"type":"number","description":"The number of years that you want to specify for the default retention period.","description_kind":"plain","optional":true}},"description_kind":"plain"},"min_items":1,"max_items":1}},"description":"Specifies the Object Lock rule for the specified object.","description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"scaleway_object_bucket_policy":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The bucket's name or regional ID.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy":{"type":"string","description":"The text of the policy.","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_object_bucket_website_configuration":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The bucket name.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"website_domain":{"type":"string","description":"The website endpoint.","description_kind":"plain","computed":true},"website_endpoint":{"type":"string","description":"The domain of the website endpoint.","description_kind":"plain","computed":true}},"block_types":{"error_document":{"nesting_mode":"list","block":{"attributes":{"key":{"type":"string","description_kind":"plain","required":true}},"description":"The name of the error document for the website.","description_kind":"plain"},"max_items":1},"index_document":{"nesting_mode":"list","block":{"attributes":{"suffix":{"type":"string","description_kind":"plain","required":true}},"description":"The name of the index document for the website.","description_kind":"plain"},"min_items":1,"max_items":1}},"description_kind":"plain"}},"scaleway_rdb_acl":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the ACL is applied","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"acl_rules":{"nesting_mode":"list","block":{"attributes":{"description":{"type":"string","description":"Description of the rule","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"Target IP of the rules","description_kind":"plain","required":true}},"description":"List of ACL rules to apply","description_kind":"plain"},"min_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_rdb_database":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the database is created","description_kind":"plain","required":true},"managed":{"type":"bool","description":"Whether or not the database is managed","description_kind":"plain","computed":true},"name":{"type":"string","description":"Database name","description_kind":"plain","required":true},"owner":{"type":"string","description":"User that own the database","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"size":{"type":"string","description":"Size of the database","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_rdb_database_backup":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Creation date (Format ISO 8601).","description_kind":"plain","computed":true},"database_name":{"type":"string","description":"Name of the database of this backup.","description_kind":"plain","required":true},"expires_at":{"type":"string","description":"Expiration date (Format ISO 8601). Cannot be removed.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the user is created","description_kind":"plain","required":true},"instance_name":{"type":"string","description":"Name of the instance of the backup.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the backup.","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description":"Size of the backup (in bytes).","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Updated date (Format ISO 8601).","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_rdb_instance":{"version":0,"block":{"attributes":{"backup_same_region":{"type":"bool","description":"Boolean to store logical backups in the same region as the database instance","description_kind":"plain","optional":true,"computed":true},"backup_schedule_frequency":{"type":"number","description":"Backup schedule frequency in hours","description_kind":"plain","optional":true,"computed":true},"backup_schedule_retention":{"type":"number","description":"Backup schedule retention in days","description_kind":"plain","optional":true,"computed":true},"certificate":{"type":"string","description":"Certificate of the database instance","description_kind":"plain","computed":true},"disable_backup":{"type":"bool","description":"Disable automated backup for the database instance","description_kind":"plain","optional":true},"disable_public_endpoint":{"type":"bool","description":"Whether the instance should have a public endpoint if it has a Private Network attached","description_kind":"plain","optional":true},"endpoint_ip":{"type":"string","description":"Endpoint IP of the database instance","description_kind":"plain","deprecated":true,"computed":true},"endpoint_port":{"type":"number","description":"Endpoint port of the database instance","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Database's engine version id","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"init_settings":{"type":["map","string"],"description":"Map of engine settings to be set at database initialisation.","description_kind":"plain","optional":true},"is_ha_cluster":{"type":"bool","description":"Enable or disable high availability for the database instance","description_kind":"plain","optional":true},"load_balancer":{"type":["list",["object",{"endpoint_id":"string","hostname":"string","ip":"string","name":"string","port":"number"}]],"description":"Load balancer of the database instance","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the database instance","description_kind":"plain","optional":true,"computed":true},"node_type":{"type":"string","description":"The type of database instance you want to create","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"password":{"type":"string","description":"Password for the first user of the database instance","description_kind":"plain","optional":true,"sensitive":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"read_replicas":{"type":["list",["object",{"ip":"string","name":"string","port":"number"}]],"description":"Read replicas of the database instance","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"settings":{"type":["map","string"],"description":"Map of engine settings to be set on a running instance.","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] attached to a database instance","description_kind":"plain","optional":true},"user_name":{"type":"string","description":"Identifier for the first user of the database instance","description_kind":"plain","optional":true},"volume_size_in_gb":{"type":"number","description":"Volume size (in GB) when volume_type is not lssd","description_kind":"plain","optional":true,"computed":true},"volume_type":{"type":"string","description":"Type of volume where data are stored","description_kind":"plain","optional":true}},"block_types":{"private_network":{"nesting_mode":"list","block":{"attributes":{"endpoint_id":{"type":"string","description":"The endpoint ID","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"The hostname of your endpoint","description_kind":"plain","computed":true},"ip":{"type":"string","description":"The IP of your Instance within the private service","description_kind":"plain","computed":true},"ip_net":{"type":"string","description":"The IP with the given mask within the private subnet","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of your private service","description_kind":"plain","computed":true},"pn_id":{"type":"string","description":"The private network ID","description_kind":"plain","required":true},"port":{"type":"number","description":"The port of your private service","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description":"List of private network to expose your database instance","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_rdb_privilege":{"version":1,"block":{"attributes":{"database_name":{"type":"string","description":"Database name","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the database is created","description_kind":"plain","required":true},"permission":{"type":"string","description":"Privilege","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"user_name":{"type":"string","description":"User name","description_kind":"plain","required":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_rdb_read_replica":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Id of the rdb instance to replicate","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"same_zone":{"type":"bool","description":"Defines whether to create the replica in the same availability zone as the main instance nodes or not.","description_kind":"plain","optional":true}},"block_types":{"direct_access":{"nesting_mode":"list","block":{"attributes":{"endpoint_id":{"type":"string","description":"UUID of the endpoint (UUID format).","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"Hostname of the endpoint. Only one of ip and hostname may be set.","description_kind":"plain","computed":true},"ip":{"type":"string","description":"IPv4 address of the endpoint (IP address). Only one of ip and hostname may be set.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the endpoint.","description_kind":"plain","computed":true},"port":{"type":"number","description":"TCP port of the endpoint.","description_kind":"plain","computed":true}},"description":"Direct access endpoint, it gives you an IP and a port to access your read-replica","description_kind":"plain"},"max_items":1},"private_network":{"nesting_mode":"list","block":{"attributes":{"endpoint_id":{"type":"string","description":"UUID of the endpoint (UUID format).","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"Hostname of the endpoint. Only one of ip and hostname may be set","description_kind":"plain","computed":true},"ip":{"type":"string","description":"IPv4 address of the endpoint (IP address). Only one of ip and hostname may be set","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the endpoints","description_kind":"plain","computed":true},"port":{"type":"number","description":"TCP port of the endpoint","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"UUID of the private network to be connected to the read replica (UUID format)","description_kind":"plain","required":true},"service_ip":{"type":"string","description":"The IP network address within the private subnet","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"Private network zone","description_kind":"plain","computed":true}},"description":"Private network endpoints","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_rdb_user":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the user is created","description_kind":"plain","required":true},"is_admin":{"type":"bool","description":"Grant admin permissions to database user","description_kind":"plain","optional":true},"name":{"type":"string","description":"Database user name","description_kind":"plain","required":true},"password":{"type":"string","description":"Database user password","description_kind":"plain","required":true,"sensitive":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_redis_cluster":{"version":0,"block":{"attributes":{"certificate":{"type":"string","description":"public TLS certificate used by redis cluster, empty if tls is disabled","description_kind":"plain","computed":true},"cluster_size":{"type":"number","description":"Number of nodes for the cluster.","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the Redis cluster","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the redis cluster","description_kind":"plain","optional":true,"computed":true},"node_type":{"type":"string","description":"Type of node to use for the cluster","description_kind":"plain","required":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","required":true,"sensitive":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"settings":{"type":["map","string"],"description":"Map of settings to define for the cluster.","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] attached to a redis cluster","description_kind":"plain","optional":true},"tls_enabled":{"type":"bool","description":"Whether or not TLS is enabled.","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Redis cluster","description_kind":"plain","computed":true},"user_name":{"type":"string","description":"Name of the user created when the cluster is created","description_kind":"plain","required":true},"version":{"type":"string","description":"Redis version of the cluster","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"acl":{"nesting_mode":"set","block":{"attributes":{"description":{"type":"string","description":"Description of the rule.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description":"ID of the rule (UUID format).","description_kind":"plain","computed":true},"ip":{"type":"string","description":"IPv4 network address of the rule (IP network in a CIDR format).","description_kind":"plain","required":true}},"description":"List of acl rules.","description_kind":"plain"}},"private_network":{"nesting_mode":"set","block":{"attributes":{"endpoint_id":{"type":"string","description":"UUID of the endpoint to be connected to the cluster","description_kind":"plain","computed":true},"id":{"type":"string","description":"UUID of the private network to be connected to the cluster","description_kind":"plain","required":true},"service_ips":{"type":["list","string"],"description":"List of IPv4 addresses of the private network with a CIDR notation","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone of the resource","description_kind":"plain","computed":true}},"description":"Private network specs details","description_kind":"plain"}},"public_network":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description_kind":"plain","computed":true},"ips":{"type":["list","string"],"description_kind":"plain","computed":true},"port":{"type":"number","description":"TCP port of the endpoint","description_kind":"plain","computed":true}},"description":"Public network specs details","description_kind":"plain"},"max_items":1},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"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"}},"scaleway_registry_namespace":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the container registry namespace","description_kind":"plain","optional":true},"endpoint":{"type":"string","description":"The endpoint reachable by docker","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_public":{"type":"bool","description":"Define the default visibity policy","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the container registry namespace","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_secret":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Date and time of secret's creation (RFC 3339 format)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the secret","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The secret name","description_kind":"plain","required":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"Status of the secret","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] associated to secret","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"Date and time of secret's creation (RFC 3339 format)","description_kind":"plain","computed":true},"version_count":{"type":"number","description":"The number of versions for this Secret","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_secret_version":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Date and time of secret version's creation (RFC 3339 format)","description_kind":"plain","computed":true},"data":{"type":"string","description":"The data payload of your secret version.","description_kind":"plain","required":true,"sensitive":true},"description":{"type":"string","description":"Description of the secret version","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"revision":{"type":"string","description":"The revision of secret version","description_kind":"plain","computed":true},"secret_id":{"type":"string","description":"The secret ID associated with this version","description_kind":"plain","required":true},"status":{"type":"string","description":"Status of the secret version","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Date and time of secret version's creation (RFC 3339 format)","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_tem_domain":{"version":0,"block":{"attributes":{"accept_tos":{"type":"bool","description":"Accept the Scaleway Terms of Service","description_kind":"plain","required":true},"created_at":{"type":"string","description":"Date and time of domain's creation (RFC 3339 format)","description_kind":"plain","computed":true},"dkim_config":{"type":"string","description":"DKIM public key, as should be recorded in the DNS zone","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_error":{"type":"string","description":"Error message if the last check failed","description_kind":"plain","computed":true},"last_valid_at":{"type":"string","description":"Date and time the domain was last found to be valid (RFC 3339 format)","description_kind":"plain","computed":true},"mx_blackhole":{"type":"string","description":"The Scaleway's blackhole MX server to use","description_kind":"plain","computed":true},"name":{"type":"string","description":"The domain name used when sending emails","description_kind":"plain","required":true},"next_check_at":{"type":"string","description":"Date and time of the next scheduled check (RFC 3339 format)","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"reputation":{"type":["list",["object",{"previous_score":"number","previous_scored_at":"string","score":"number","scored_at":"string","status":"string"}]],"description":"The domain's reputation","description_kind":"plain","computed":true},"revoked_at":{"type":"string","description":"Date and time of the revocation of the domain (RFC 3339 format)","description_kind":"plain","computed":true},"smtp_host":{"type":"string","description":"SMTP host to use to send emails","description_kind":"plain","computed":true},"smtp_port":{"type":"number","description":"SMTP port to use to send emails over TLS. (Port 587)","description_kind":"plain","computed":true},"smtp_port_alternative":{"type":"number","description":"SMTP port to use to send emails over TLS. (Port 2587)","description_kind":"plain","computed":true},"smtp_port_unsecure":{"type":"number","description":"SMTP port to use to send emails. (Port 25)","description_kind":"plain","computed":true},"smtps_port":{"type":"number","description":"SMTPS port to use to send emails over TLS Wrapper. (Port 465)","description_kind":"plain","computed":true},"smtps_port_alternative":{"type":"number","description":"SMTPS port to use to send emails over TLS Wrapper. (Port 2465)","description_kind":"plain","computed":true},"spf_config":{"type":"string","description":"Snippet of the SPF record that should be registered in the DNS zone","description_kind":"plain","computed":true},"status":{"type":"string","description":"Status of the domain","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_vpc":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the private network","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_default":{"type":"bool","description":"Defines whether the VPC is the default one for its Project","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the VPC","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the VPC","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the private network","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_vpc_gateway_network":{"version":0,"block":{"attributes":{"cleanup_dhcp":{"type":"bool","description":"Remove DHCP config on this network on destroy","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"The date and time of the creation of the gateway network","description_kind":"plain","computed":true},"dhcp_id":{"type":"string","description":"The ID of the public gateway DHCP config","description_kind":"plain","optional":true},"enable_dhcp":{"type":"bool","description":"Enable DHCP config on this network","description_kind":"plain","optional":true},"enable_masquerade":{"type":"bool","description":"Enable masquerade on this network","description_kind":"plain","optional":true},"gateway_id":{"type":"string","description":"The ID of the public gateway where connect to","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mac_address":{"type":"string","description":"The mac address on this network","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"The ID of the private network where connect to","description_kind":"plain","required":true},"static_address":{"type":"string","description":"The static IP address in CIDR on this network","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"The status of the Public Gateway's connection to the Private Network","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the gateway network","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"ipam_config":{"nesting_mode":"list","block":{"attributes":{"ipam_ip_id":{"type":"string","description":"Use this IPAM-booked IP ID as the Gateway's IP in this Private Network","description_kind":"plain","optional":true,"computed":true},"push_default_route":{"type":"bool","description":"Defines whether the default route is enabled on that Gateway Network","description_kind":"plain","optional":true}},"description":"Auto-configure the Gateway Network using Scaleway's IPAM (IP address management service)","description_kind":"plain"}},"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_vpc_private_network":{"version":1,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the private network","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_regional":{"type":"bool","description":"Defines whether the private network is Regional. By default, it will be Zonal","description_kind":"plain","deprecated":true,"optional":true,"computed":true},"name":{"type":"string","description":"The name of the private network","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The tags associated with private network","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the private network","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description":"The VPC in which to create the private network","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","deprecated":true,"optional":true,"computed":true}},"block_types":{"ipv4_subnet":{"nesting_mode":"list","block":{"attributes":{"address":{"type":"string","description":"The network address of the subnet in dotted decimal notation, e.g., '192.168.0.0' for a '192.168.0.0/24' subnet","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the subnet","description_kind":"plain","computed":true},"id":{"type":"string","description":"The subnet ID","description_kind":"plain","computed":true},"prefix_length":{"type":"number","description":"The length of the network prefix, e.g., 24 for a 255.255.255.0 mask","description_kind":"plain","computed":true},"subnet":{"type":"string","description":"The subnet CIDR","description_kind":"plain","optional":true,"computed":true},"subnet_mask":{"type":"string","description":"The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the subnet","description_kind":"plain","computed":true}},"description":"The IPv4 subnet associated with the private network","description_kind":"plain"},"max_items":1},"ipv6_subnets":{"nesting_mode":"set","block":{"attributes":{"address":{"type":"string","description":"The network address of the subnet in dotted decimal notation, e.g., '192.168.0.0' for a '192.168.0.0/24' subnet","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the subnet","description_kind":"plain","computed":true},"id":{"type":"string","description":"The subnet ID","description_kind":"plain","computed":true},"prefix_length":{"type":"number","description":"The length of the network prefix, e.g., 24 for a 255.255.255.0 mask","description_kind":"plain","computed":true},"subnet":{"type":"string","description":"The subnet CIDR","description_kind":"plain","optional":true,"computed":true},"subnet_mask":{"type":"string","description":"The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the subnet","description_kind":"plain","computed":true}},"description":"The IPv6 subnet associated with the private network","description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_vpc_public_gateway":{"version":0,"block":{"attributes":{"bastion_enabled":{"type":"bool","description":"Enable SSH bastion on the gateway","description_kind":"plain","optional":true},"bastion_port":{"type":"number","description":"Port of the SSH bastion","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the public gateway","description_kind":"plain","computed":true},"enable_smtp":{"type":"bool","description":"Enable SMTP on the gateway","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_id":{"type":"string","description":"attach an existing IP to the gateway","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"name of the gateway","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"The status of the public gateway","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with public gateway","description_kind":"plain","optional":true},"type":{"type":"string","description":"gateway type","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the public gateway","description_kind":"plain","computed":true},"upstream_dns_servers":{"type":["list","string"],"description":"override the gateway's default recursive DNS servers, if DNS features are enabled","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_dhcp":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The address of the DHCP server. This will be the gateway's address in the private network. Defaults to the first address of the subnet","description_kind":"plain","optional":true,"computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the public gateway.","description_kind":"plain","computed":true},"dns_local_name":{"type":"string","description":"TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to `priv`.","description_kind":"plain","optional":true,"computed":true},"dns_search":{"type":["list","string"],"description":"Additional DNS search paths.","description_kind":"plain","optional":true,"computed":true},"dns_servers_override":{"type":["list","string"],"description":"Override the DNS server list pushed to DHCP clients, instead of the gateway itself.","description_kind":"plain","optional":true,"computed":true},"enable_dynamic":{"type":"bool","description":"Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to true.","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"pool_high":{"type":"string","description":"High IP (included) of the dynamic address pool. Defaults to the last address of the subnet.","description_kind":"plain","optional":true,"computed":true},"pool_low":{"type":"string","description":"Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"push_default_route":{"type":"bool","description":"Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to true.","description_kind":"plain","optional":true,"computed":true},"push_dns_server":{"type":"bool","description":"Whether the gateway should push custom DNS servers to clients. This allows for instance hostname -\u003e IP resolution. Defaults to true.","description_kind":"plain","optional":true,"computed":true},"rebind_timer":{"type":"number","description":"After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. Defaults to 51m (3060s).","description_kind":"plain","optional":true,"computed":true},"renew_timer":{"type":"number","description":"After how long, in seconds, a renew will be attempted. Must be 30s lower than `rebind_timer`. Defaults to 50m (3000s).","description_kind":"plain","optional":true,"computed":true},"subnet":{"type":"string","description":"Subnet for the DHCP server","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the public gateway.","description_kind":"plain","computed":true},"valid_lifetime":{"type":"number","description":"For how long, in seconds, will DHCP entries will be valid. Defaults to 1h (3600s).","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_dhcp_reservation":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The configuration creation date.","description_kind":"plain","computed":true},"gateway_network_id":{"type":"string","description":"The ID of the owning GatewayNetwork (UUID format).","description_kind":"plain","required":true},"hostname":{"type":"string","description":"The Hostname of the client machine.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The IP address to give to the machine (IPv4 address).","description_kind":"plain","required":true},"mac_address":{"type":"string","description":"The MAC address to give a static entry to.","description_kind":"plain","required":true},"type":{"type":"string","description":"The reservation type, either static (DHCP reservation) or dynamic (DHCP lease). Possible values are reservation and lease","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The configuration last modification date.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"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"}},"scaleway_vpc_public_gateway_ip":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"the IP itself","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the public gateway IP","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"reverse":{"type":"string","description":"reverse domain name for the IP address","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The tags associated with public gateway IP","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the public gateway IP","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_ip_reverse_dns":{"version":0,"block":{"attributes":{"gateway_ip_id":{"type":"string","description":"The IP ID","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"reverse":{"type":"string","description":"The reverse DNS for this IP","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"update":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_pat_rule":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the PAT rule","description_kind":"plain","computed":true},"gateway_id":{"type":"string","description":"The ID of the gateway this PAT rule is applied to","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"private_ip":{"type":"string","description":"The private IP used in the PAT rule","description_kind":"plain","required":true},"private_port":{"type":"number","description":"The private port used in the PAT rule","description_kind":"plain","required":true},"protocol":{"type":"string","description":"The protocol used in the PAT rule","description_kind":"plain","optional":true},"public_port":{"type":"number","description":"The public port used in the PAT rule","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date and time of the last update of the PAT rule","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"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"}},"scaleway_webhosting":{"version":0,"block":{"attributes":{"cpanel_urls":{"type":["list",["object",{"dashboard":"string","webmail":"string"}]],"description":"URL to connect to cPanel Dashboard and to Webmail interface","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Date and time of hosting's creation (RFC 3339 format)","description_kind":"plain","computed":true},"dns_status":{"type":"string","description":"DNS status of the hosting","description_kind":"plain","computed":true},"domain":{"type":"string","description":"The domain name of the hosting","description_kind":"plain","required":true},"email":{"type":"string","description":"Contact email of the client for the hosting","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"offer_id":{"type":"string","description":"The ID of the selected offer for the hosting","description_kind":"plain","required":true},"offer_name":{"type":"string","description":"Name of the active offer","description_kind":"plain","computed":true},"option_ids":{"type":["list","string"],"description":"IDs of the selected options for the hosting","description_kind":"plain","optional":true},"options":{"type":["list",["object",{"id":"string","name":"string"}]],"description":"Active options of the hosting","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"platform_hostname":{"type":"string","description":"Hostname of the host platform","description_kind":"plain","computed":true},"platform_number":{"type":"number","description":"Number of the host platform","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"status":{"type":"string","description":"The hosting status","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags of the hosting","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"Date and time of hosting's last update (RFC 3339 format)","description_kind":"plain","computed":true},"username":{"type":"string","description":"Main hosting cPanel username","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"create":{"type":"string","description_kind":"plain","optional":true},"default":{"type":"string","description_kind":"plain","optional":true},"delete":{"type":"string","description_kind":"plain","optional":true},"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}}},"data_source_schemas":{"scaleway_account_project":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the Project (Format ISO 8601)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the project","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the project","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The ID of the SSH key","description_kind":"plain","optional":true,"computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Project (Format ISO 8601)","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_account_ssh_key":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the iam SSH Key","description_kind":"plain","computed":true},"disabled":{"type":"bool","description":"The SSH key status","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam SSH key","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"public_key":{"type":"string","description":"The public SSH key","description_kind":"plain","computed":true},"ssh_key_id":{"type":"string","description":"The ID of the SSH key","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the iam SSH Key","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_availability_zones":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"Region is represented as a Geographical area such as France","description_kind":"plain","optional":true},"zones":{"type":["list","string"],"description":"Availability Zones (AZ)","description_kind":"plain","computed":true}},"block_types":{"timeouts":{"nesting_mode":"single","block":{"attributes":{"read":{"type":"string","description_kind":"plain","optional":true}},"description_kind":"plain"}}},"description_kind":"plain"}},"scaleway_baremetal_offer":{"version":0,"block":{"attributes":{"bandwidth":{"type":"number","description":"Available Bandwidth with the offer","description_kind":"plain","computed":true},"commercial_range":{"type":"string","description":"Commercial range of the offer","description_kind":"plain","computed":true},"cpu":{"type":["list",["object",{"core_count":"number","frequency":"number","name":"string","thread_count":"number"}]],"description":"CPU specifications of the offer","description_kind":"plain","computed":true},"disk":{"type":["list",["object",{"capacity":"number","type":"string"}]],"description":"Disk specifications of the offer","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"include_disabled":{"type":"bool","description":"Include disabled offers","description_kind":"plain","optional":true},"memory":{"type":["list",["object",{"capacity":"number","frequency":"number","is_ecc":"bool","type":"string"}]],"description":"Memory specifications of the offer","description_kind":"plain","computed":true},"name":{"type":"string","description":"Exact name of the desired offer","description_kind":"plain","optional":true},"offer_id":{"type":"string","description":"ID of the desired offer","description_kind":"plain","optional":true},"stock":{"type":"string","description":"Stock status for this offer","description_kind":"plain","computed":true},"subscription_period":{"type":"string","description":"Period of subscription the desired offer","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_baremetal_option":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"manageable":{"type":"bool","description":"Is false if the option could not be added or removed","description_kind":"plain","computed":true},"name":{"type":"string","description":"Exact label of the desired option","description_kind":"plain","optional":true},"option_id":{"type":"string","description":"The ID of the option","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_baremetal_os":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Exact label of the desired image","description_kind":"plain","optional":true},"os_id":{"type":"string","description":"The ID of the os","description_kind":"plain","optional":true},"version":{"type":"string","description":"Version string of the desired OS","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_baremetal_server":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"Some description to associate to the server, max 255 characters","description_kind":"plain","computed":true},"domain":{"type":"string","description_kind":"plain","computed":true},"hostname":{"type":"string","description":"Hostname of the server","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"install_config_afterward":{"type":"bool","description":"If True, this boolean allows to create a server without the install config if you want to provide it later","description_kind":"plain","computed":true},"ips":{"type":["list",["object",{"address":"string","id":"string","reverse":"string","version":"string"}]],"description":"IP addresses attached to the server.","description_kind":"plain","computed":true},"ipv4":{"type":["list",["object",{"address":"string","id":"string","reverse":"string","version":"string"}]],"description":"IPv4 addresses attached to the server","description_kind":"plain","computed":true},"ipv6":{"type":["list",["object",{"address":"string","id":"string","reverse":"string","version":"string"}]],"description":"IPv6 addresses attached to the server","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the server","description_kind":"plain","optional":true},"offer":{"type":"string","description":"ID or name of the server offer","description_kind":"plain","computed":true},"offer_id":{"type":"string","description":"ID of the server offer","description_kind":"plain","computed":true},"offer_name":{"type":"string","description":"Name of the server offer","description_kind":"plain","computed":true},"options":{"type":["set",["object",{"expires_at":"string","id":"string","name":"string"}]],"description":"The options to enable on server","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"os":{"type":"string","description":"The base image of the server","description_kind":"plain","computed":true},"os_name":{"type":"string","description":"The base image name of the server","description_kind":"plain","computed":true},"password":{"type":"string","description":"Password used for the installation.","description_kind":"plain","computed":true},"private_network":{"type":["set",["object",{"created_at":"string","id":"string","status":"string","updated_at":"string","vlan":"number"}]],"description":"The private networks to attach to the server","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"reinstall_on_config_changes":{"type":"bool","description":"If True, this boolean allows to reinstall the server on SSH key IDs, user or password changes","description_kind":"plain","computed":true},"server_id":{"type":"string","description":"The ID of the server","description_kind":"plain","optional":true},"service_password":{"type":"string","description":"Password used for the service to install.","description_kind":"plain","computed":true},"service_user":{"type":"string","description":"User used for the service to install.","description_kind":"plain","computed":true},"ssh_key_ids":{"type":["list","string"],"description":"Array of SSH key IDs allowed to SSH to the server\n\n**NOTE** : If you are attempting to update your SSH key IDs, it will induce the reinstall of your server. \nIf this behaviour is wanted, please set 'reinstall_on_ssh_key_changes' argument to true.","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"Array of tags to associate with the server","description_kind":"plain","computed":true},"user":{"type":"string","description":"User used for the installation.","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_billing_consumptions":{"version":0,"block":{"attributes":{"consumptions":{"type":["list",["object",{"category":"string","description":"string","operation_path":"string","project_id":"string","value":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"updated_at":{"type":"string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_billing_invoices":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"invoice_type":{"type":"string","description":"The invoice type. It can either be `periodic` or `purchase`","description_kind":"plain","optional":true},"invoices":{"type":["list",["object",{"due_date":"string","id":"string","invoice_type":"string","issued_date":"string","number":"number","start_date":"string","total_taxed":"string","total_untaxed":"string"}]],"description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"started_after":{"type":"string","description":"Invoice's start date is greater or equal to `started_after`","description_kind":"plain","optional":true},"started_before":{"type":"string","description":"Invoice's start date precedes `started_before`","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_block_snapshot":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The snapshot name","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"snapshot_id":{"type":"string","description":"The ID of the snapshot","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The tags associated with the snapshot","description_kind":"plain","computed":true},"volume_id":{"type":"string","description":"ID of the volume from which creates a snapshot","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_block_volume":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"iops":{"type":"number","description":"The maximum IO/s expected, must match available options","description_kind":"plain","computed":true},"name":{"type":"string","description":"The volume name","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"size_in_gb":{"type":"number","description":"The volume size in GB","description_kind":"plain","computed":true},"snapshot_id":{"type":"string","description":"The snapshot to create the volume from","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the volume","description_kind":"plain","computed":true},"volume_id":{"type":"string","description":"The ID of the volume","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_cockpit":{"version":0,"block":{"attributes":{"endpoints":{"type":["list",["object",{"alertmanager_url":"string","grafana_url":"string","logs_url":"string","metrics_url":"string","traces_url":"string"}]],"description":"Endpoints","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"plan_id":{"type":"string","description":"The plan ID of the cockpit","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_cockpit_plan":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the plan","description_kind":"plain","required":true}},"description_kind":"plain"}},"scaleway_container":{"version":0,"block":{"attributes":{"container_id":{"type":"string","description":"The ID of the Container","description_kind":"plain","optional":true},"cpu_limit":{"type":"number","description":"The amount of vCPU computing resources to allocate to each container. Defaults to 70.","description_kind":"plain","computed":true},"cron_status":{"type":"string","description":"The cron status","description_kind":"plain","computed":true},"deploy":{"type":"bool","description":"This allows you to control your production environment","description_kind":"plain","computed":true},"description":{"type":"string","description":"The container description","description_kind":"plain","computed":true},"domain_name":{"type":"string","description":"The native container domain name.","description_kind":"plain","computed":true},"environment_variables":{"type":["map","string"],"description":"The environment variables to be injected into your container at runtime.","description_kind":"plain","computed":true},"error_message":{"type":"string","description":"The error description","description_kind":"plain","computed":true},"http_option":{"type":"string","description":"HTTP traffic configuration","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_concurrency":{"type":"number","description":"The maximum the number of simultaneous requests your container can handle at the same time. Defaults to 50.","description_kind":"plain","computed":true},"max_scale":{"type":"number","description":"The maximum of number of instances this container can scale to. Default to 20.","description_kind":"plain","computed":true},"memory_limit":{"type":"number","description":"The memory computing resources in MB to allocate to each container. Defaults to 128.","description_kind":"plain","computed":true},"min_scale":{"type":"number","description":"The minimum of running container instances continuously. Defaults to 0.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The container name","description_kind":"plain","optional":true},"namespace_id":{"type":"string","description":"The ID of the Container namespace","description_kind":"plain","required":true},"port":{"type":"number","description":"The port to expose the container. Defaults to 8080","description_kind":"plain","computed":true},"privacy":{"type":"string","description":"The privacy type define the way to authenticate to your container","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The communication protocol http1 or h2c. Defaults to http1.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"registry_image":{"type":"string","description":"The scaleway registry image address","description_kind":"plain","computed":true},"registry_sha256":{"type":"string","description":"The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string","description_kind":"plain","computed":true},"secret_environment_variables":{"type":["map","string"],"description":"The secret environment variables to be injected into your container at runtime.","description_kind":"plain","computed":true},"status":{"type":"string","description":"The container status","description_kind":"plain","computed":true},"timeout":{"type":"number","description":"The maximum amount of time in seconds during which your container can process a request before we stop it. Defaults to 300s.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_container_namespace":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the container namespace","description_kind":"plain","computed":true},"destroy_registry":{"type":"bool","description":"Destroy registry on deletion","description_kind":"plain","computed":true},"environment_variables":{"type":["map","string"],"description":"The environment variables of the container namespace","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the container namespace","description_kind":"plain","optional":true},"namespace_id":{"type":"string","description":"The ID of the Container namespace","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"registry_endpoint":{"type":"string","description":"The endpoint reachable by docker","description_kind":"plain","computed":true},"registry_namespace_id":{"type":"string","description":"The ID of the registry namespace","description_kind":"plain","computed":true},"secret_environment_variables":{"type":["map","string"],"description":"The secret environment variables of the container namespace","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_documentdb_database":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the database is created","description_kind":"plain","required":true},"managed":{"type":"bool","description":"Whether or not the database is managed","description_kind":"plain","computed":true},"name":{"type":"string","description":"The database name","description_kind":"plain","optional":true},"owner":{"type":"string","description":"User that own the database","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"size":{"type":"string","description":"Size of the database","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_documentdb_instance":{"version":0,"block":{"attributes":{"engine":{"type":"string","description":"Database's engine version id","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"The ID of the instance","description_kind":"plain","optional":true},"is_ha_cluster":{"type":"bool","description":"Enable or disable high availability for the database instance","description_kind":"plain","computed":true},"name":{"type":"string","description":"The document db instance name","description_kind":"plain","optional":true},"node_type":{"type":"string","description":"The type of database instance you want to create","description_kind":"plain","computed":true},"password":{"type":"string","description":"Password for the first user of the database instance","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] attached to a database instance","description_kind":"plain","computed":true},"telemetry_enabled":{"type":"bool","description":" Enable telemetry to collects basic anonymous usage data and sends them to FerretDB telemetry service","description_kind":"plain","computed":true},"user_name":{"type":"string","description":"Identifier for the first user of the database instance","description_kind":"plain","computed":true},"volume_size_in_gb":{"type":"number","description":"Volume size (in GB) when volume_type is not lssd","description_kind":"plain","computed":true},"volume_type":{"type":"string","description":"Type of volume where data are stored","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_documentdb_load_balancer_endpoint":{"version":0,"block":{"attributes":{"hostname":{"type":"string","description":"The hostname of your endpoint","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the endpoint is attached","description_kind":"plain","optional":true,"computed":true},"instance_name":{"type":"string","description":"Instance Name on which the endpoint is attached","description_kind":"plain","optional":true,"computed":true},"ip":{"type":"string","description":"The IP of your load balancer service","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of your load balancer service","description_kind":"plain","computed":true},"port":{"type":"number","description":"The port of your load balancer service","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_domain_record":{"version":0,"block":{"attributes":{"data":{"type":"string","description":"The data of the record","description_kind":"plain","optional":true},"dns_zone":{"type":"string","description":"The zone you want to add the record in","description_kind":"plain","optional":true},"geo_ip":{"type":["list",["object",{"matches":["list",["object",{"continents":["list","string"],"countries":["list","string"],"data":"string"}]]}]],"description":"Return record based on client localisation","description_kind":"plain","computed":true},"http_service":{"type":["list",["object",{"ips":["list","string"],"must_contain":"string","strategy":"string","url":"string","user_agent":"string"}]],"description":"Return record based on client localisation","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"keep_empty_zone":{"type":"bool","description":"When destroy a resource record, if a zone have only NS, delete the zone","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the record","description_kind":"plain","optional":true},"priority":{"type":"number","description":"The priority of the record","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"record_id":{"type":"string","description":"The ID of the record","description_kind":"plain","optional":true},"root_zone":{"type":"bool","description":"Does the DNS zone is the root zone or not","description_kind":"plain","computed":true},"ttl":{"type":"number","description":"The ttl of the record","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of the record","description_kind":"plain","optional":true},"view":{"type":["list",["object",{"data":"string","subnet":"string"}]],"description":"Return record based on client subnet","description_kind":"plain","computed":true},"weighted":{"type":["list",["object",{"ip":"string","weight":"number"}]],"description":"Return record based on weight","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_domain_zone":{"version":0,"block":{"attributes":{"domain":{"type":"string","description":"The domain where the DNS zone will be created.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"message":{"type":"string","description":"Message","description_kind":"plain","computed":true},"ns":{"type":["list","string"],"description":"NameServer list for zone.","description_kind":"plain","computed":true},"ns_default":{"type":["list","string"],"description":"NameServer default list for zone.","description_kind":"plain","computed":true},"ns_master":{"type":["list","string"],"description":"NameServer master list for zone.","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"status":{"type":"string","description":"The domain zone status.","description_kind":"plain","computed":true},"subdomain":{"type":"string","description":"The subdomain of the DNS zone to create.","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the DNS zone.","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_flexible_ip":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the Flexible IP (Format ISO 8601)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the flexible IP","description_kind":"plain","computed":true},"flexible_ip_id":{"type":"string","description":"The ID of the IPv4 address","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The IPv4 address","description_kind":"plain","optional":true},"is_ipv6":{"type":"bool","description":"Defines whether the flexible IP has an IPv6 address","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"reverse":{"type":"string","description":"The reverse DNS for this flexible IP","description_kind":"plain","computed":true},"server_id":{"type":"string","description":"The baremetal server associated with this flexible IP","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the flexible IP","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the flexible IP","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Flexible IP (Format ISO 8601)","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_flexible_ips":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ips":{"type":["list",["object",{"created_at":"string","description":"string","id":"string","ip_address":"string","mac_address":["list",["object",{"created_at":"string","id":"string","mac_address":"string","mac_type":"string","status":"string","updated_at":"string","zone":"string"}]],"organization_id":"string","project_id":"string","reverse":"string","status":"string","tags":["list","string"],"updated_at":"string","zone":"string"}]],"description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"server_ids":{"type":["list","string"],"description":"Flexible IPs that are attached to these server IDs are listed","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"Flexible IPs with these exact tags are listed","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_function":{"version":0,"block":{"attributes":{"cpu_limit":{"type":"number","description":"CPU limit in mCPU for your function","description_kind":"plain","computed":true},"deploy":{"type":"bool","description":"Define if the function should be deployed, terraform will wait for function to be deployed","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the function","description_kind":"plain","computed":true},"domain_name":{"type":"string","description":"The native function domain name.","description_kind":"plain","computed":true},"environment_variables":{"type":["map","string"],"description":"The environment variables of the function","description_kind":"plain","computed":true},"function_id":{"type":"string","description":"The ID of the function","description_kind":"plain","optional":true},"handler":{"type":"string","description":"Handler of the function. Depends on the runtime https://developers.scaleway.com/en/products/functions/api/#create-a-function","description_kind":"plain","computed":true},"http_option":{"type":"string","description":"HTTP traffic configuration","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"max_scale":{"type":"number","description":"Maximum replicas for your function (defaults to 20), our system will scale your functions automatically based on incoming workload, but will never scale the number of replicas above the configured max_scale.","description_kind":"plain","computed":true},"memory_limit":{"type":"number","description":"Memory limit in MB for your function, defaults to 128MB","description_kind":"plain","computed":true},"min_scale":{"type":"number","description":"Minimum replicas for your function, defaults to 0, Note that a function is billed when it gets executed, and using a min_scale greater than 0 will cause your function to run all the time.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the function","description_kind":"plain","optional":true},"namespace_id":{"type":"string","description":"The namespace ID associated with this function","description_kind":"plain","required":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"privacy":{"type":"string","description":"Privacy of the function. Can be either `private` or `public`","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","computed":true},"runtime":{"type":"string","description":"Runtime of the function","description_kind":"plain","computed":true},"secret_environment_variables":{"type":["map","string"],"description":"The secret environment variables to be injected into your function at runtime.","description_kind":"plain","computed":true},"timeout":{"type":"number","description":"Holds the max duration (in seconds) the function is allowed for responding to a request","description_kind":"plain","computed":true},"zip_file":{"type":"string","description":"Location of the zip file to upload containing your function sources","description_kind":"plain","computed":true},"zip_hash":{"type":"string","description":"The hash of your source zip file, changing it will re-apply function. Can be any string","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_function_namespace":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the function namespace","description_kind":"plain","computed":true},"environment_variables":{"type":["map","string"],"description":"The environment variables of the function namespace","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the function namespace","description_kind":"plain","optional":true},"namespace_id":{"type":"string","description":"The ID of the function namespace","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"registry_endpoint":{"type":"string","description":"The endpoint reachable by docker","description_kind":"plain","computed":true},"registry_namespace_id":{"type":"string","description":"The ID of the registry namespace","description_kind":"plain","computed":true},"secret_environment_variables":{"type":["map","string"],"description":"The environment variables of the function namespace","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_iam_application":{"version":0,"block":{"attributes":{"application_id":{"type":"string","description":"The ID of the IAM application","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"The date and time of the creation of the application","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the iam application","description_kind":"plain","computed":true},"editable":{"type":"bool","description":"Whether or not the application is editable.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam application","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id the application is associated to","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The tags associated with the application","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the application","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_iam_group":{"version":0,"block":{"attributes":{"application_ids":{"type":["set","string"],"description":"List of IDs of the applications attached to the group","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the group","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the iam group","description_kind":"plain","computed":true},"external_membership":{"type":"bool","description":"Handle user and application memberships externally","description_kind":"plain","computed":true},"group_id":{"type":"string","description":"The ID of the IAM group","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam group","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The tags associated with the application","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the group","description_kind":"plain","computed":true},"user_ids":{"type":["set","string"],"description":"List of IDs of the users attached to the group","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_iam_ssh_key":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the iam SSH Key","description_kind":"plain","computed":true},"disabled":{"type":"bool","description":"The SSH key status","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the iam SSH key","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"public_key":{"type":"string","description":"The public SSH key","description_kind":"plain","computed":true},"ssh_key_id":{"type":"string","description":"The ID of the SSH key","description_kind":"plain","optional":true},"updated_at":{"type":"string","description":"The date and time of the last update of the iam SSH Key","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_iam_user":{"version":0,"block":{"attributes":{"email":{"type":"string","description":"The email address of the IAM user","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","optional":true},"user_id":{"type":"string","description":"The ID of the IAM user","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_instance_image":{"version":0,"block":{"attributes":{"additional_volume_ids":{"type":["list","string"],"description":"The additional volume IDs attached to the image","description_kind":"plain","computed":true},"architecture":{"type":"string","description":"Architecture of the desired image","description_kind":"plain","optional":true},"creation_date":{"type":"string","description":"Date when the image was created","description_kind":"plain","computed":true},"default_bootscript_id":{"type":"string","description":"ID of the bootscript associated with this image","description_kind":"plain","computed":true},"from_server_id":{"type":"string","description":"ID of the server the image is originated from","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description":"ID of the desired image","description_kind":"plain","optional":true},"latest":{"type":"bool","description":"Select most recent image if multiple match","description_kind":"plain","optional":true},"modification_date":{"type":"string","description":"Date when the image was updated","description_kind":"plain","computed":true},"name":{"type":"string","description":"Exact name of the desired image","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"public":{"type":"bool","description":"Indication if the image is public","description_kind":"plain","computed":true},"root_volume_id":{"type":"string","description":"ID of the root volume associated with this image","description_kind":"plain","computed":true},"state":{"type":"string","description":"State of the image","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_instance_ip":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The IP address","description_kind":"plain","optional":true},"id":{"type":"string","description":"The ID of the IP address","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"prefix":{"type":"string","description":"The IP prefix","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"reverse":{"type":"string","description":"The reverse DNS for this IP","description_kind":"plain","computed":true},"server_id":{"type":"string","description":"The server associated with this IP","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the ip","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of instance IP","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_instance_private_nic":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_ids":{"type":["list","string"],"description":"IPAM ip list, should be for internal use only","description_kind":"plain","computed":true},"mac_address":{"type":"string","description":"MAC address of the NIC","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"The private network ID","description_kind":"plain","optional":true},"private_nic_id":{"type":"string","description":"The ID of the Private NIC","description_kind":"plain","optional":true},"server_id":{"type":"string","description":"The server ID","description_kind":"plain","required":true},"tags":{"type":["list","string"],"description":"The tags associated with the private-nic","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_instance_security_group":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the security group","description_kind":"plain","computed":true},"enable_default_security":{"type":"bool","description":"Enable blocking of SMTP on IPv4 and IPv6","description_kind":"plain","computed":true},"external_rules":{"type":"bool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inbound_default_policy":{"type":"string","description":"Default inbound traffic policy for this security group","description_kind":"plain","computed":true},"inbound_rule":{"type":["list",["object",{"action":"string","ip":"string","ip_range":"string","port":"number","port_range":"string","protocol":"string"}]],"description":"Inbound rules for this security group","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the security group","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"outbound_default_policy":{"type":"string","description":"Default outbound traffic policy for this security group","description_kind":"plain","computed":true},"outbound_rule":{"type":["list",["object",{"action":"string","ip":"string","ip_range":"string","port":"number","port_range":"string","protocol":"string"}]],"description":"Outbound rules for this security group","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"security_group_id":{"type":"string","description":"The ID of the security group","description_kind":"plain","optional":true},"stateful":{"type":"bool","description":"The stateful value of the security group","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the security group","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_instance_server":{"version":0,"block":{"attributes":{"additional_volume_ids":{"type":["list","string"],"description":"The additional volumes attached to the server","description_kind":"plain","computed":true},"boot_type":{"type":"string","description":"The boot type of the server","description_kind":"plain","computed":true},"bootscript_id":{"type":"string","description":"ID of the target bootscript (set boot_type to bootscript)","description_kind":"plain","computed":true},"cloud_init":{"type":"string","description":"The cloud init script associated with this server","description_kind":"plain","computed":true},"enable_dynamic_ip":{"type":"bool","description":"Enable dynamic IP on the server","description_kind":"plain","computed":true},"enable_ipv6":{"type":"bool","description":"Determines if IPv6 is enabled for the server","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image":{"type":"string","description":"The UUID or the label of the base image used by the server","description_kind":"plain","computed":true},"ip_id":{"type":"string","description":"The ID of the reserved IP for the server","description_kind":"plain","computed":true},"ip_ids":{"type":["list","string"],"description_kind":"plain","computed":true},"ipv6_address":{"type":"string","description":"The default public IPv6 address routed to the server.","description_kind":"plain","computed":true},"ipv6_gateway":{"type":"string","description":"The IPv6 gateway address","description_kind":"plain","computed":true},"ipv6_prefix_length":{"type":"number","description":"The IPv6 prefix length routed to the server.","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the server","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"placement_group_id":{"type":"string","description":"The placement group the server is attached to","description_kind":"plain","computed":true},"placement_group_policy_respected":{"type":"bool","description":"True when the placement group policy is respected","description_kind":"plain","computed":true},"private_ip":{"type":"string","description":"The Scaleway internal IP address of the server","description_kind":"plain","computed":true},"private_network":{"type":["list",["object",{"mac_address":"string","pn_id":"string","status":"string","zone":"string"}]],"description":"List of private network to connect with your instance","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"public_ip":{"type":"string","description":"The public IPv4 address of the server","description_kind":"plain","computed":true},"public_ips":{"type":["list",["object",{"address":"string","id":"string"}]],"description":"List of public IPs attached to your instance","description_kind":"plain","computed":true},"replace_on_type_change":{"type":"bool","description":"Delete and re-create server if type change","description_kind":"plain","computed":true},"root_volume":{"type":["list",["object",{"boot":"bool","delete_on_termination":"bool","name":"string","size_in_gb":"number","volume_id":"string","volume_type":"string"}]],"description":"Root volume attached to the server on creation","description_kind":"plain","computed":true},"routed_ip_enabled":{"type":"bool","description":"If server supports routed IPs, default to true if public_ips is used","description_kind":"plain","computed":true},"security_group_id":{"type":"string","description":"The security group the server is attached to","description_kind":"plain","computed":true},"server_id":{"type":"string","description":"The ID of the server","description_kind":"plain","optional":true},"state":{"type":"string","description":"The state of the server should be: started, stopped, standby","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the server","description_kind":"plain","computed":true},"type":{"type":"string","description":"The instance type of the server","description_kind":"plain","computed":true},"user_data":{"type":["map","string"],"description":"The user data associated with the server","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_instance_servers":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Servers with a name like it are listed.","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"servers":{"type":["list",["object",{"boot_type":"string","bootscript_id":"string","enable_dynamic_ip":"bool","enable_ipv6":"bool","id":"string","image":"string","ipv6_address":"string","ipv6_gateway":"string","ipv6_prefix_length":"number","name":"string","organization_id":"string","placement_group_id":"string","placement_group_policy_respected":"bool","private_ip":"string","project_id":"string","public_ip":"string","public_ips":["list",["object",{"address":"string","id":"string"}]],"routed_ip_enabled":"bool","security_group_id":"string","state":"string","tags":["list","string"],"type":"string","zone":"string"}]],"description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"Servers with these exact tags are listed.","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_instance_snapshot":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the snapshot","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"import":{"type":["list",["object",{"bucket":"string","key":"string"}]],"description":"Import snapshot from a qcow","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the snapshot","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"size_in_gb":{"type":"number","description":"The size of the snapshot in gigabyte","description_kind":"plain","computed":true},"snapshot_id":{"type":"string","description":"The ID of the snapshot","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The tags associated with the snapshot","description_kind":"plain","computed":true},"type":{"type":"string","description":"The snapshot's volume type","description_kind":"plain","computed":true},"volume_id":{"type":"string","description":"ID of the volume to take a snapshot from","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_instance_volume":{"version":0,"block":{"attributes":{"from_snapshot_id":{"type":"string","description":"Create a volume based on a image","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the volume","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"server_id":{"type":"string","description":"The server associated with this volume","description_kind":"plain","computed":true},"size_in_gb":{"type":"number","description":"The size of the volume in gigabyte","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the volume","description_kind":"plain","computed":true},"type":{"type":"string","description":"The volume type","description_kind":"plain","computed":true},"volume_id":{"type":"string","description":"The ID of the volume","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_iot_device":{"version":0,"block":{"attributes":{"allow_insecure":{"type":"bool","description":"Allow plain and server-authenticated SSL connections in addition to mutually-authenticated ones","description_kind":"plain","computed":true},"allow_multiple_connections":{"type":"bool","description":"Allow multiple connections","description_kind":"plain","computed":true},"certificate":{"type":["list",["object",{"crt":"string","key":"string"}]],"description":"Certificate section of the device","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the device","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the device","description_kind":"plain","computed":true},"device_id":{"type":"string","description":"The ID of the IOT Device","description_kind":"plain","optional":true},"hub_id":{"type":"string","description":"The ID of the hub on which this device will be created","description_kind":"plain","optional":true,"computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_connected":{"type":"bool","description":"The MQTT connection status of the device","description_kind":"plain","computed":true},"last_activity_at":{"type":"string","description":"The date and time of last MQTT activity of the device","description_kind":"plain","computed":true},"message_filters":{"type":["list",["object",{"publish":["list",["object",{"policy":"string","topics":["list","string"]}]],"subscribe":["list",["object",{"policy":"string","topics":["list","string"]}]]}]],"description":"Rules to authorize or deny the device to publish/subscribe to specific topics","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the device","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the device","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the device","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_iot_hub":{"version":0,"block":{"attributes":{"connected_device_count":{"type":"number","description":"The current number of connected devices in the Hub","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the IoT Hub","description_kind":"plain","computed":true},"device_auto_provisioning":{"type":"bool","description":"Wether to enable the device auto provisioning or not","description_kind":"plain","computed":true},"device_count":{"type":"number","description":"The number of registered devices in the Hub","description_kind":"plain","computed":true},"disable_events":{"type":"bool","description":"Whether to enable the hub events or not","description_kind":"plain","computed":true},"enabled":{"type":"bool","description":"Whether to enable the hub or not","description_kind":"plain","computed":true},"endpoint":{"type":"string","description":"The endpoint to connect the devices to","description_kind":"plain","computed":true},"events_topic_prefix":{"type":"string","description":"Topic prefix for the hub events","description_kind":"plain","computed":true},"hub_ca":{"type":"string","description":"Custom user provided certificate authority","description_kind":"plain","computed":true},"hub_ca_challenge":{"type":"string","description":"Challenge certificate for the user provided hub CA","description_kind":"plain","computed":true},"hub_id":{"type":"string","description":"The ID of the IOT Hub","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The name of the hub","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"product_plan":{"type":"string","description":"The product plan of the hub","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the hub","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the IoT Hub","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_ipam_ip":{"version":0,"block":{"attributes":{"address":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"mac_address":{"type":"string","description":"The MAC address to filter for","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"The private Network to filter for","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the IP","description_kind":"plain","optional":true},"type":{"type":"string","description":"IP Type (ipv4, ipv6)","description_kind":"plain","required":true},"zonal":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"block_types":{"resource":{"nesting_mode":"list","block":{"attributes":{"id":{"type":"string","description":"ID of the resource to filter for","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the resource to filter for","description_kind":"plain","optional":true},"type":{"type":"string","description":"Type of resource to filter for","description_kind":"plain","required":true}},"description_kind":"plain"},"max_items":1}},"description_kind":"plain"}},"scaleway_k8s_cluster":{"version":0,"block":{"attributes":{"admission_plugins":{"type":["list","string"],"description":"The list of admission plugins to enable on the cluster","description_kind":"plain","computed":true},"apiserver_cert_sans":{"type":["list","string"],"description":"Additional Subject Alternative Names for the Kubernetes API server certificate","description_kind":"plain","computed":true},"apiserver_url":{"type":"string","description":"Kubernetes API server URL","description_kind":"plain","computed":true},"auto_upgrade":{"type":["list",["object",{"enable":"bool","maintenance_window_day":"string","maintenance_window_start_hour":"number"}]],"description":"The auto upgrade configuration for the cluster","description_kind":"plain","computed":true},"autoscaler_config":{"type":["list",["object",{"balance_similar_node_groups":"bool","disable_scale_down":"bool","estimator":"string","expander":"string","expendable_pods_priority_cutoff":"number","ignore_daemonsets_utilization":"bool","max_graceful_termination_sec":"number","scale_down_delay_after_add":"string","scale_down_unneeded_time":"string","scale_down_utilization_threshold":"number"}]],"description":"The autoscaler configuration for the cluster","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"The ID of the cluster","description_kind":"plain","optional":true},"cni":{"type":"string","description":"The CNI plugin of the cluster","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the Kubernetes cluster","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the cluster","description_kind":"plain","computed":true},"feature_gates":{"type":["list","string"],"description":"The list of feature gates to enable on the cluster","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubeconfig":{"type":["list",["object",{"cluster_ca_certificate":"string","config_file":"string","host":"string","token":"string"}]],"description":"The kubeconfig configuration file of the Kubernetes cluster","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the cluster","description_kind":"plain","optional":true},"open_id_connect_config":{"type":["list",["object",{"client_id":"string","groups_claim":["list","string"],"groups_prefix":"string","issuer_url":"string","required_claim":["list","string"],"username_claim":"string","username_prefix":"string"}]],"description":"The OpenID Connect configuration of the cluster","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"The ID of the cluster's private network","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the cluster","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the cluster","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of cluster","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Kubernetes cluster","description_kind":"plain","computed":true},"upgrade_available":{"type":"bool","description":"True if an upgrade is available","description_kind":"plain","computed":true},"version":{"type":"string","description":"The version of the cluster","description_kind":"plain","computed":true},"wildcard_dns":{"type":"string","description":"Wildcard DNS pointing to all the ready nodes","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_k8s_pool":{"version":0,"block":{"attributes":{"autohealing":{"type":"bool","description":"Enable the autohealing on the pool","description_kind":"plain","computed":true},"autoscaling":{"type":"bool","description":"Enable the autoscaling on the pool","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"The ID of the cluster on which this pool will be created","description_kind":"plain","optional":true},"container_runtime":{"type":"string","description":"Container runtime for the pool","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the pool","description_kind":"plain","computed":true},"current_size":{"type":"number","description":"The actual size of the pool","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"kubelet_args":{"type":["map","string"],"description":"The Kubelet arguments to be used by this pool","description_kind":"plain","computed":true},"max_size":{"type":"number","description":"Maximum size of the pool","description_kind":"plain","computed":true},"min_size":{"type":"number","description":"Minimum size of the pool","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the cluster","description_kind":"plain","optional":true},"node_type":{"type":"string","description":"Server type of the pool servers","description_kind":"plain","computed":true},"nodes":{"type":["list",["object",{"name":"string","public_ip":"string","public_ip_v6":"string","status":"string"}]],"description_kind":"plain","computed":true},"placement_group_id":{"type":"string","description":"ID of the placement group","description_kind":"plain","computed":true},"pool_id":{"type":"string","description":"The ID of the pool","description_kind":"plain","optional":true},"public_ip_disabled":{"type":"bool","description":"Defines if the public IP should be removed from the nodes.","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"root_volume_size_in_gb":{"type":"number","description":"The size of the system volume of the nodes in gigabyte","description_kind":"plain","computed":true},"root_volume_type":{"type":"string","description":"System volume type of the nodes composing the pool","description_kind":"plain","computed":true},"size":{"type":"number","description":"Size of the pool","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the pool","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the pool","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the pool","description_kind":"plain","computed":true},"upgrade_policy":{"type":["list",["object",{"max_surge":"number","max_unavailable":"number"}]],"description":"The Pool upgrade policy","description_kind":"plain","computed":true},"version":{"type":"string","description":"The Kubernetes version of the pool","description_kind":"plain","computed":true},"wait_for_pool_ready":{"type":"bool","description":"Whether to wait for the pool to be ready","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_k8s_version":{"version":0,"block":{"attributes":{"available_cnis":{"type":["list","string"],"description":"The list of supported Container Network Interface (CNI) plugins for this version","description_kind":"plain","computed":true},"available_container_runtimes":{"type":["list","string"],"description":"The list of supported container runtimes for this version","description_kind":"plain","computed":true},"available_feature_gates":{"type":["list","string"],"description":"The list of supported feature gates for this version","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the Kubernetes version","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_lb":{"version":1,"block":{"attributes":{"assign_flexible_ip":{"type":"bool","description":"Defines whether to automatically assign a flexible public IP to the load balancer","description_kind":"plain","computed":true},"description":{"type":"string","description":"The description of the lb","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The load-balance public IP address","description_kind":"plain","computed":true},"ip_id":{"type":"string","description":"The load-balance public IP ID","description_kind":"plain","computed":true},"lb_id":{"type":"string","description":"The ID of the load-balancer","description_kind":"plain","optional":true},"name":{"type":"string","description":"Name of the lb","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"private_network":{"type":["set",["object",{"dhcp_config":"bool","private_network_id":"string","static_config":["list","string"],"status":"string","zone":"string"}]],"description":"List of private network to connect with your load balancer","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region of the resource","description_kind":"plain","computed":true},"release_ip":{"type":"bool","description":"Release the IPs related to this load-balancer","description_kind":"plain","optional":true},"ssl_compatibility_level":{"type":"string","description":"Enforces minimal SSL version (in SSL/TLS offloading context)","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"Array of tags to associate with the load-balancer","description_kind":"plain","computed":true},"type":{"type":"string","description":"The type of load-balancer you want to create","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_lb_acls":{"version":0,"block":{"attributes":{"acls":{"type":["list",["object",{"action":["list",["object",{"redirect":["list",["object",{"code":"number","target":"string","type":"string"}]],"type":"string"}]],"created_at":"string","description":"string","frontend_id":"string","id":"string","index":"number","match":["list",["object",{"http_filter":"string","http_filter_option":"string","http_filter_value":["list","string"],"invert":"bool","ip_subnet":["list","string"]}]],"name":"string","update_at":"string"}]],"description_kind":"plain","computed":true},"frontend_id":{"type":"string","description":"ACLs with a frontend id like it are listed.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"ACLs with a name like it are listed.","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_lb_backend":{"version":1,"block":{"attributes":{"backend_id":{"type":"string","description":"The ID of the backend","description_kind":"plain","optional":true},"failover_host":{"type":"string","description":"Scaleway S3 bucket website to be served in case all backend servers are down\n\n**NOTE** : Only the host part of the Scaleway S3 bucket website is expected.\nE.g. 'failover-website.s3-website.fr-par.scw.cloud' if your bucket website URL is 'https://failover-website.s3-website.fr-par.scw.cloud/'.","description_kind":"plain","computed":true},"forward_port":{"type":"number","description":"User sessions will be forwarded to this port of backend servers","description_kind":"plain","computed":true},"forward_port_algorithm":{"type":"string","description":"Load balancing algorithm","description_kind":"plain","computed":true},"forward_protocol":{"type":"string","description":"Backend protocol","description_kind":"plain","computed":true},"health_check_delay":{"type":"string","description":"Interval between two HC requests","description_kind":"plain","computed":true},"health_check_http":{"type":["list",["object",{"code":"number","host_header":"string","method":"string","uri":"string"}]],"description_kind":"plain","computed":true},"health_check_https":{"type":["list",["object",{"code":"number","host_header":"string","method":"string","sni":"string","uri":"string"}]],"description_kind":"plain","computed":true},"health_check_max_retries":{"type":"number","description":"Number of allowed failed HC requests before the backend server is marked down","description_kind":"plain","computed":true},"health_check_port":{"type":"number","description":"Port the HC requests will be send to. Default to `forward_port`","description_kind":"plain","computed":true},"health_check_send_proxy":{"type":"bool","description":"Defines whether proxy protocol should be activated for the health check","description_kind":"plain","computed":true},"health_check_tcp":{"type":["list",["object",{}]],"description_kind":"plain","computed":true},"health_check_timeout":{"type":"string","description":"Timeout before we consider a HC request failed","description_kind":"plain","computed":true},"health_check_transient_delay":{"type":"string","description":"Time to wait between two consecutive health checks when a backend server is in a transient state (going UP or DOWN)","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ignore_ssl_server_verify":{"type":"bool","description":"Specifies whether the Load Balancer should check the backend server’s certificate before initiating a connection","description_kind":"plain","computed":true},"lb_id":{"type":"string","description":"The load-balancer ID","description_kind":"plain","optional":true},"max_connections":{"type":"number","description":"Maximum number of connections allowed per backend server","description_kind":"plain","computed":true},"max_retries":{"type":"number","description":"Number of retries when a backend server connection failed","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the backend","description_kind":"plain","optional":true},"on_marked_down_action":{"type":"string","description":"Modify what occurs when a backend server is marked down","description_kind":"plain","computed":true},"proxy_protocol":{"type":"string","description":"Type of PROXY protocol to enable","description_kind":"plain","computed":true},"redispatch_attempt_count":{"type":"number","description":"Whether to use another backend server on each attempt","description_kind":"plain","computed":true},"send_proxy_v2":{"type":"bool","description":"Enables PROXY protocol version 2","description_kind":"plain","computed":true},"server_ips":{"type":["list","string"],"description":"Backend server IP addresses list (IPv4 or IPv6)","description_kind":"plain","computed":true},"ssl_bridging":{"type":"bool","description":"Enables SSL between load balancer and backend servers","description_kind":"plain","computed":true},"sticky_sessions":{"type":"string","description":"The type of sticky sessions","description_kind":"plain","computed":true},"sticky_sessions_cookie_name":{"type":"string","description":"Cookie name for for sticky sessions","description_kind":"plain","computed":true},"timeout_connect":{"type":"string","description":"Maximum initial server connection establishment time","description_kind":"plain","computed":true},"timeout_queue":{"type":"string","description":"Maximum time (in seconds) for a request to be left pending in queue when `max_connections` is reached","description_kind":"plain","computed":true},"timeout_server":{"type":"string","description":"Maximum server connection inactivity time","description_kind":"plain","computed":true},"timeout_tunnel":{"type":"string","description":"Maximum tunnel inactivity time","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_lb_backends":{"version":0,"block":{"attributes":{"backends":{"type":["list",["object",{"created_at":"string","failover_host":"string","forward_port":"number","forward_port_algorithm":"string","forward_protocol":"string","health_check_delay":"string","health_check_http":["list",["object",{"code":"number","host_header":"string","method":"string","uri":"string"}]],"health_check_https":["list",["object",{"code":"number","host_header":"string","method":"string","sni":"string","uri":"string"}]],"health_check_max_retries":"number","health_check_port":"number","health_check_tcp":["list",["object",{}]],"health_check_timeout":"string","id":"string","ignore_ssl_server_verify":"bool","lb_id":"string","name":"string","on_marked_down_action":"string","proxy_protocol":"string","server_ips":["list","string"],"ssl_bridging":"bool","sticky_sessions":"string","sticky_sessions_cookie_name":"string","timeout_connect":"string","timeout_server":"string","timeout_tunnel":"string","update_at":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lb_id":{"type":"string","description":"backends with a lb id like it are listed.","description_kind":"plain","required":true},"name":{"type":"string","description":"Backends with a name like it are listed.","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_lb_certificate":{"version":1,"block":{"attributes":{"certificate_id":{"type":"string","description":"The ID of the certificate","description_kind":"plain","optional":true},"common_name":{"type":"string","description":"The main domain name of the certificate","description_kind":"plain","computed":true},"custom_certificate":{"type":["list",["object",{"certificate_chain":"string"}]],"description":"The custom type certificate type configuration","description_kind":"plain","computed":true},"fingerprint":{"type":"string","description":"The identifier (SHA-1) of the certificate","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lb_id":{"type":"string","description":"The load-balancer ID","description_kind":"plain","optional":true},"letsencrypt":{"type":["list",["object",{"common_name":"string","subject_alternative_name":["list","string"]}]],"description":"The Let's Encrypt type certificate configuration","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the load-balancer certificate","description_kind":"plain","optional":true},"not_valid_after":{"type":"string","description":"The not valid after validity bound timestamp","description_kind":"plain","computed":true},"not_valid_before":{"type":"string","description":"The not valid before validity bound timestamp","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of certificate","description_kind":"plain","computed":true},"subject_alternative_name":{"type":["list","string"],"description":"The alternative domain names of the certificate","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_lb_frontend":{"version":1,"block":{"attributes":{"acl":{"type":["list",["object",{"action":["list",["object",{"redirect":["list",["object",{"code":"number","target":"string","type":"string"}]],"type":"string"}]],"created_at":"string","description":"string","match":["list",["object",{"http_filter":"string","http_filter_option":"string","http_filter_value":["list","string"],"invert":"bool","ip_subnet":["list","string"]}]],"name":"string","updated_at":"string"}]],"description":"ACL rules","description_kind":"plain","computed":true},"backend_id":{"type":"string","description":"The load-balancer backend ID","description_kind":"plain","computed":true},"certificate_id":{"type":"string","description":"Certificate ID","description_kind":"plain","computed":true},"certificate_ids":{"type":["list","string"],"description":"Collection of Certificate IDs related to the load balancer and domain","description_kind":"plain","computed":true},"enable_http3":{"type":"bool","description":"Activates HTTP/3 protocol","description_kind":"plain","computed":true},"external_acls":{"type":"bool","description":"This boolean determines if ACLs should be managed externally through the 'lb_acl' resource. If set to `true`, `acl` attribute cannot be set directly in the lb frontend","description_kind":"plain","computed":true},"frontend_id":{"type":"string","description":"The ID of the frontend","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"inbound_port":{"type":"number","description":"TCP port to listen on the front side","description_kind":"plain","computed":true},"lb_id":{"type":"string","description":"The load-balancer ID","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the frontend","description_kind":"plain","optional":true},"timeout_client":{"type":"string","description":"Set the maximum inactivity time on the client side","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_lb_frontends":{"version":0,"block":{"attributes":{"frontends":{"type":["list",["object",{"backend_id":"string","certificate_ids":["list","string"],"created_at":"string","enable_http3":"bool","id":"string","inbound_port":"number","lb_id":"string","name":"string","timeout_client":"string","update_at":"string"}]],"description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lb_id":{"type":"string","description":"frontends with a lb id like it are listed.","description_kind":"plain","required":true},"name":{"type":"string","description":"frontends with a name like it are listed.","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_lb_ip":{"version":1,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The IP address","description_kind":"plain","optional":true},"ip_id":{"type":"string","description":"The ID of the IP address","description_kind":"plain","optional":true},"lb_id":{"type":"string","description":"The ID of the load balancer attached to this IP, if any","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region of the resource","description_kind":"plain","computed":true},"reverse":{"type":"string","description":"The reverse domain name for this IP","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_lb_ips":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_cidr_range":{"type":"string","description":"IPs within a CIDR block like it are listed.","description_kind":"plain","optional":true},"ips":{"type":["list",["object",{"id":"string","ip_address":"string","lb_id":"string","organization_id":"string","project_id":"string","reverse":"string","zone":"string"}]],"description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_lb_route":{"version":1,"block":{"attributes":{"backend_id":{"type":"string","description":"The backend ID destination of redirection","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date at which the route was created (RFC 3339 format)","description_kind":"plain","computed":true},"frontend_id":{"type":"string","description":"The frontend ID origin of redirection","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"match_host_header":{"type":"string","description":"Specifies the host of the server to which the request is being sent","description_kind":"plain","computed":true},"match_sni":{"type":"string","description":"Server Name Indication TLS extension field from an incoming connection made via an SSL/TLS transport layer","description_kind":"plain","computed":true},"route_id":{"type":"string","description":"The ID of the route","description_kind":"plain","required":true},"updated_at":{"type":"string","description":"The date at which the route was last updated (RFC 3339 format)","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_lb_routes":{"version":0,"block":{"attributes":{"frontend_id":{"type":"string","description":"Routes with a frontend id like it are listed.","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"routes":{"type":["list",["object",{"backend_id":"string","created_at":"string","frontend_id":"string","id":"string","match_host_header":"string","match_sni":"string","update_at":"string"}]],"description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_lbs":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lbs":{"type":["list",["object",{"backend_count":"number","created_at":"string","description":"string","frontend_count":"number","id":"string","instances":["list",["object",{"created_at":"string","id":"string","ip_address":"string","status":"string","updated_at":"string","zone":"string"}]],"ips":["list",["object",{"id":"string","ip_address":"string","lb_id":"string","organization_id":"string","project_id":"string","reverse":"string","zone":"string"}]],"name":"string","organization_id":"string","private_network_count":"number","project_id":"string","route_count":"number","ssl_compatibility_level":"string","status":"string","subscriber":"string","tags":["list","string"],"type":"string","updated_at":"string","zone":"string"}]],"description_kind":"plain","computed":true},"name":{"type":"string","description":"LBs with a name like it are listed.","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_marketplace_image":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_type":{"type":"string","description":"The instance commercial type of the desired image","description_kind":"plain","optional":true},"label":{"type":"string","description":"Exact label of the desired image","description_kind":"plain","required":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}},"scaleway_mnq_sqs":{"version":0,"block":{"attributes":{"endpoint":{"type":"string","description":"Endpoint of the SQS service","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_object_bucket":{"version":0,"block":{"attributes":{"acl":{"type":"string","description":"ACL of the bucket: either 'public-read' or 'private'.","description_kind":"plain","computed":true},"api_endpoint":{"type":"string","description":"API URL of the bucket","description_kind":"plain","computed":true},"cors_rule":{"type":["list",["object",{"allowed_headers":["list","string"],"allowed_methods":["list","string"],"allowed_origins":["list","string"],"expose_headers":["list","string"],"max_age_seconds":"number"}]],"description_kind":"plain","computed":true},"endpoint":{"type":"string","description":"Endpoint of the bucket","description_kind":"plain","computed":true},"force_destroy":{"type":"bool","description":"Delete objects in bucket","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"lifecycle_rule":{"type":["list",["object",{"abort_incomplete_multipart_upload_days":"number","enabled":"bool","expiration":["list",["object",{"days":"number"}]],"id":"string","prefix":"string","tags":["map","string"],"transition":["set",["object",{"days":"number","storage_class":"string"}]]}]],"description":"Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the bucket","description_kind":"plain","optional":true},"object_lock_enabled":{"type":"bool","description":"Enable object lock","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"tags":{"type":["map","string"],"description":"The tags associated with this bucket","description_kind":"plain","computed":true},"versioning":{"type":["list",["object",{"enabled":"bool"}]],"description":"Allow multiple versions of an object in the same bucket","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_object_bucket_policy":{"version":0,"block":{"attributes":{"bucket":{"type":"string","description":"The bucket's name or regional ID.","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"policy":{"type":"string","description":"The text of the policy.","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_rdb_acl":{"version":0,"block":{"attributes":{"acl_rules":{"type":["list",["object",{"description":"string","ip":"string"}]],"description":"List of ACL rules to apply","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the ACL is applied","description_kind":"plain","required":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_rdb_database":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the database is created","description_kind":"plain","required":true},"managed":{"type":"bool","description":"Whether or not the database is managed","description_kind":"plain","computed":true},"name":{"type":"string","description":"Database name","description_kind":"plain","required":true},"owner":{"type":"string","description":"User that own the database","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"size":{"type":"string","description":"Size of the database","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_rdb_database_backup":{"version":0,"block":{"attributes":{"backup_id":{"type":"string","description":"The ID of the Backup","description_kind":"plain","optional":true},"created_at":{"type":"string","description":"Creation date (Format ISO 8601).","description_kind":"plain","computed":true},"database_name":{"type":"string","description":"Name of the database of this backup.","description_kind":"plain","computed":true},"expires_at":{"type":"string","description":"Expiration date (Format ISO 8601). Cannot be removed.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the user is created","description_kind":"plain","optional":true},"instance_name":{"type":"string","description":"Name of the instance of the backup.","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the backup.","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"size":{"type":"number","description":"Size of the backup (in bytes).","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Updated date (Format ISO 8601).","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_rdb_instance":{"version":0,"block":{"attributes":{"backup_same_region":{"type":"bool","description":"Boolean to store logical backups in the same region as the database instance","description_kind":"plain","computed":true},"backup_schedule_frequency":{"type":"number","description":"Backup schedule frequency in hours","description_kind":"plain","computed":true},"backup_schedule_retention":{"type":"number","description":"Backup schedule retention in days","description_kind":"plain","computed":true},"certificate":{"type":"string","description":"Certificate of the database instance","description_kind":"plain","computed":true},"disable_backup":{"type":"bool","description":"Disable automated backup for the database instance","description_kind":"plain","computed":true},"disable_public_endpoint":{"type":"bool","description":"Whether the instance should have a public endpoint if it has a Private Network attached","description_kind":"plain","computed":true},"endpoint_ip":{"type":"string","description":"Endpoint IP of the database instance","description_kind":"plain","computed":true},"endpoint_port":{"type":"number","description":"Endpoint port of the database instance","description_kind":"plain","computed":true},"engine":{"type":"string","description":"Database's engine version id","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"init_settings":{"type":["map","string"],"description":"Map of engine settings to be set at database initialisation.","description_kind":"plain","computed":true},"instance_id":{"type":"string","description":"The ID of the RDB instance","description_kind":"plain","optional":true},"is_ha_cluster":{"type":"bool","description":"Enable or disable high availability for the database instance","description_kind":"plain","computed":true},"load_balancer":{"type":["list",["object",{"endpoint_id":"string","hostname":"string","ip":"string","name":"string","port":"number"}]],"description":"Load balancer of the database instance","description_kind":"plain","computed":true},"name":{"type":"string","description":"Name of the database instance","description_kind":"plain","optional":true},"node_type":{"type":"string","description":"The type of database instance you want to create","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"password":{"type":"string","description":"Password for the first user of the database instance","description_kind":"plain","computed":true},"private_network":{"type":["list",["object",{"endpoint_id":"string","hostname":"string","ip":"string","ip_net":"string","name":"string","pn_id":"string","port":"number","zone":"string"}]],"description":"List of private network to expose your database instance","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"read_replicas":{"type":["list",["object",{"ip":"string","name":"string","port":"number"}]],"description":"Read replicas of the database instance","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"settings":{"type":["map","string"],"description":"Map of engine settings to be set on a running instance.","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] attached to a database instance","description_kind":"plain","computed":true},"user_name":{"type":"string","description":"Identifier for the first user of the database instance","description_kind":"plain","computed":true},"volume_size_in_gb":{"type":"number","description":"Volume size (in GB) when volume_type is not lssd","description_kind":"plain","computed":true},"volume_type":{"type":"string","description":"Type of volume where data are stored","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_rdb_privilege":{"version":1,"block":{"attributes":{"database_name":{"type":"string","description":"Database name","description_kind":"plain","required":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"instance_id":{"type":"string","description":"Instance on which the database is created","description_kind":"plain","required":true},"permission":{"type":"string","description":"Privilege","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"user_name":{"type":"string","description":"User name","description_kind":"plain","required":true}},"description_kind":"plain"}},"scaleway_redis_cluster":{"version":0,"block":{"attributes":{"acl":{"type":["set",["object",{"description":"string","id":"string","ip":"string"}]],"description":"List of acl rules.","description_kind":"plain","computed":true},"certificate":{"type":"string","description":"public TLS certificate used by redis cluster, empty if tls is disabled","description_kind":"plain","computed":true},"cluster_id":{"type":"string","description":"The ID of the Redis cluster","description_kind":"plain","optional":true},"cluster_size":{"type":"number","description":"Number of nodes for the cluster.","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the Redis cluster","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Name of the redis cluster","description_kind":"plain","optional":true},"node_type":{"type":"string","description":"Type of node to use for the cluster","description_kind":"plain","computed":true},"password":{"type":"string","description":"Password of the user","description_kind":"plain","computed":true},"private_network":{"type":["set",["object",{"endpoint_id":"string","id":"string","service_ips":["list","string"],"zone":"string"}]],"description":"Private network specs details","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"public_network":{"type":["list",["object",{"id":"string","ips":["list","string"],"port":"number"}]],"description":"Public network specs details","description_kind":"plain","computed":true},"settings":{"type":["map","string"],"description":"Map of settings to define for the cluster.","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] attached to a redis cluster","description_kind":"plain","computed":true},"tls_enabled":{"type":"bool","description":"Whether or not TLS is enabled.","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the Redis cluster","description_kind":"plain","computed":true},"user_name":{"type":"string","description":"Name of the user created when the cluster is created","description_kind":"plain","computed":true},"version":{"type":"string","description":"Redis version of the cluster","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_registry_image":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"image_id":{"type":"string","description":"The ID of the registry image","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the registry image","description_kind":"plain","optional":true},"namespace_id":{"type":"string","description":"The namespace ID of the registry image","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"size":{"type":"number","description":"The size of the registry image","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with the registry image","description_kind":"plain","optional":true,"computed":true},"visibility":{"type":"string","description":"The visibility policy of the registry image","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_registry_namespace":{"version":0,"block":{"attributes":{"description":{"type":"string","description":"The description of the container registry namespace","description_kind":"plain","computed":true},"endpoint":{"type":"string","description":"The endpoint reachable by docker","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_public":{"type":"bool","description":"Define the default visibity policy","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the container registry namespace","description_kind":"plain","optional":true},"namespace_id":{"type":"string","description":"The ID of the registry namespace","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_secret":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Date and time of secret's creation (RFC 3339 format)","description_kind":"plain","computed":true},"description":{"type":"string","description":"Description of the secret","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"The secret name","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"ID of organization the resource is associated to.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project ID the resource is associated to","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"secret_id":{"type":"string","description":"The ID of the secret","description_kind":"plain","optional":true},"status":{"type":"string","description":"Status of the secret","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"List of tags [\"tag1\", \"tag2\", ...] associated to secret","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Date and time of secret's creation (RFC 3339 format)","description_kind":"plain","computed":true},"version_count":{"type":"number","description":"The number of versions for this Secret","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_secret_version":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"Date and time of secret version's creation (RFC 3339 format)","description_kind":"plain","computed":true},"data":{"type":"string","description":"The payload of the secret version","description_kind":"plain","computed":true,"sensitive":true},"description":{"type":"string","description":"Description of the secret version","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"revision":{"type":"string","description":"The revision of secret version","description_kind":"plain","optional":true},"secret_id":{"type":"string","description":"The ID of the secret","description_kind":"plain","optional":true},"secret_name":{"type":"string","description":"The Name of the secret","description_kind":"plain","optional":true},"status":{"type":"string","description":"Status of the secret version","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Date and time of secret version's creation (RFC 3339 format)","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_tem_domain":{"version":0,"block":{"attributes":{"accept_tos":{"type":"bool","description":"Accept the Scaleway Terms of Service","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Date and time of domain's creation (RFC 3339 format)","description_kind":"plain","computed":true},"dkim_config":{"type":"string","description":"DKIM public key, as should be recorded in the DNS zone","description_kind":"plain","computed":true},"domain_id":{"type":"string","description":"The ID of the tem domain","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"last_error":{"type":"string","description":"Error message if the last check failed","description_kind":"plain","computed":true},"last_valid_at":{"type":"string","description":"Date and time the domain was last found to be valid (RFC 3339 format)","description_kind":"plain","computed":true},"mx_blackhole":{"type":"string","description":"The Scaleway's blackhole MX server to use","description_kind":"plain","computed":true},"name":{"type":"string","description":"The domain name used when sending emails","description_kind":"plain","optional":true},"next_check_at":{"type":"string","description":"Date and time of the next scheduled check (RFC 3339 format)","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"reputation":{"type":["list",["object",{"previous_score":"number","previous_scored_at":"string","score":"number","scored_at":"string","status":"string"}]],"description":"The domain's reputation","description_kind":"plain","computed":true},"revoked_at":{"type":"string","description":"Date and time of the revocation of the domain (RFC 3339 format)","description_kind":"plain","computed":true},"smtp_host":{"type":"string","description":"SMTP host to use to send emails","description_kind":"plain","computed":true},"smtp_port":{"type":"number","description":"SMTP port to use to send emails over TLS. (Port 587)","description_kind":"plain","computed":true},"smtp_port_alternative":{"type":"number","description":"SMTP port to use to send emails over TLS. (Port 2587)","description_kind":"plain","computed":true},"smtp_port_unsecure":{"type":"number","description":"SMTP port to use to send emails. (Port 25)","description_kind":"plain","computed":true},"smtps_port":{"type":"number","description":"SMTPS port to use to send emails over TLS Wrapper. (Port 465)","description_kind":"plain","computed":true},"smtps_port_alternative":{"type":"number","description":"SMTPS port to use to send emails over TLS Wrapper. (Port 2465)","description_kind":"plain","computed":true},"spf_config":{"type":"string","description":"Snippet of the SPF record that should be registered in the DNS zone","description_kind":"plain","computed":true},"status":{"type":"string","description":"Status of the domain","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_vpc":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the private network","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"is_default":{"type":"bool","description":"Defines whether the VPC is the default one for its Project","description_kind":"plain","optional":true},"name":{"type":"string","description":"The name of the VPC","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"ID of organization the resource is associated to.","description_kind":"plain","optional":true,"computed":true},"project_id":{"type":"string","description":"The project ID the resource is associated to","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true},"tags":{"type":["list","string"],"description":"The tags associated with the VPC","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the private network","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description":"The ID of the VPC","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_vpc_gateway_network":{"version":0,"block":{"attributes":{"cleanup_dhcp":{"type":"bool","description":"Remove DHCP config on this network on destroy","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the gateway network","description_kind":"plain","computed":true},"dhcp_id":{"type":"string","description":"The ID of the public gateway DHCP config","description_kind":"plain","optional":true},"enable_dhcp":{"type":"bool","description":"Enable DHCP config on this network","description_kind":"plain","computed":true},"enable_masquerade":{"type":"bool","description":"Enable masquerade on this network","description_kind":"plain","optional":true},"gateway_id":{"type":"string","description":"The ID of the public gateway where connect to","description_kind":"plain","optional":true},"gateway_network_id":{"type":"string","description":"The ID of the gateway network","description_kind":"plain","optional":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipam_config":{"type":["list",["object",{"ipam_ip_id":"string","push_default_route":"bool"}]],"description":"Auto-configure the Gateway Network using Scaleway's IPAM (IP address management service)","description_kind":"plain","computed":true},"mac_address":{"type":"string","description":"The mac address on this network","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"The ID of the private network where connect to","description_kind":"plain","optional":true},"static_address":{"type":"string","description":"The static IP address in CIDR on this network","description_kind":"plain","computed":true},"status":{"type":"string","description":"The status of the Public Gateway's connection to the Private Network","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the gateway network","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_vpc_private_network":{"version":1,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the private network","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ipv4_subnet":{"type":["list",["object",{"address":"string","created_at":"string","id":"string","prefix_length":"number","subnet":"string","subnet_mask":"string","updated_at":"string"}]],"description":"The IPv4 subnet associated with the private network","description_kind":"plain","computed":true},"ipv6_subnets":{"type":["set",["object",{"address":"string","created_at":"string","id":"string","prefix_length":"number","subnet":"string","subnet_mask":"string","updated_at":"string"}]],"description":"The IPv6 subnet associated with the private network","description_kind":"plain","computed":true},"is_regional":{"type":"bool","description":"Defines whether the private network is Regional. By default, it will be Zonal","description_kind":"plain","computed":true},"name":{"type":"string","description":"The name of the private network","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"private_network_id":{"type":"string","description":"The ID of the private network","description_kind":"plain","optional":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with private network","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the private network","description_kind":"plain","computed":true},"vpc_id":{"type":"string","description":"The VPC in which to create the private network","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_vpc_public_gateway":{"version":0,"block":{"attributes":{"bastion_enabled":{"type":"bool","description":"Enable SSH bastion on the gateway","description_kind":"plain","computed":true},"bastion_port":{"type":"number","description":"Port of the SSH bastion","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the public gateway","description_kind":"plain","computed":true},"enable_smtp":{"type":"bool","description":"Enable SMTP on the gateway","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_id":{"type":"string","description":"attach an existing IP to the gateway","description_kind":"plain","computed":true},"name":{"type":"string","description":"name of the gateway","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"public_gateway_id":{"type":"string","description":"The ID of the public gateway","description_kind":"plain","optional":true},"status":{"type":"string","description":"The status of the public gateway","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with public gateway","description_kind":"plain","computed":true},"type":{"type":"string","description":"gateway type","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the public gateway","description_kind":"plain","computed":true},"upstream_dns_servers":{"type":["list","string"],"description":"override the gateway's default recursive DNS servers, if DNS features are enabled","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_dhcp":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"The address of the DHCP server. This will be the gateway's address in the private network. Defaults to the first address of the subnet","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the public gateway.","description_kind":"plain","computed":true},"dhcp_id":{"type":"string","description":"The ID of the public gateway DHCP configuration","description_kind":"plain","required":true},"dns_local_name":{"type":"string","description":"TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to `priv`.","description_kind":"plain","computed":true},"dns_search":{"type":["list","string"],"description":"Additional DNS search paths.","description_kind":"plain","computed":true},"dns_servers_override":{"type":["list","string"],"description":"Override the DNS server list pushed to DHCP clients, instead of the gateway itself.","description_kind":"plain","computed":true},"enable_dynamic":{"type":"bool","description":"Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to true.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"pool_high":{"type":"string","description":"High IP (included) of the dynamic address pool. Defaults to the last address of the subnet.","description_kind":"plain","computed":true},"pool_low":{"type":"string","description":"Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"push_default_route":{"type":"bool","description":"Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to true.","description_kind":"plain","computed":true},"push_dns_server":{"type":"bool","description":"Whether the gateway should push custom DNS servers to clients. This allows for instance hostname -\u003e IP resolution. Defaults to true.","description_kind":"plain","computed":true},"rebind_timer":{"type":"number","description":"After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than `valid_lifetime`. Defaults to 51m (3060s).","description_kind":"plain","computed":true},"renew_timer":{"type":"number","description":"After how long, in seconds, a renew will be attempted. Must be 30s lower than `rebind_timer`. Defaults to 50m (3000s).","description_kind":"plain","computed":true},"subnet":{"type":"string","description":"Subnet for the DHCP server","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the public gateway.","description_kind":"plain","computed":true},"valid_lifetime":{"type":"number","description":"For how long, in seconds, will DHCP entries will be valid. Defaults to 1h (3600s).","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_dhcp_reservation":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The configuration creation date.","description_kind":"plain","computed":true},"gateway_network_id":{"type":"string","description":"The ID of the owning GatewayNetwork (UUID format).","description_kind":"plain","optional":true},"hostname":{"type":"string","description":"The Hostname of the client machine.","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_address":{"type":"string","description":"The IP address to give to the machine (IPv4 address).","description_kind":"plain","computed":true},"mac_address":{"type":"string","description":"The MAC address to give a static entry to.","description_kind":"plain","optional":true},"reservation_id":{"type":"string","description":"The ID of dhcp entry reservation","description_kind":"plain","optional":true},"type":{"type":"string","description":"The reservation type, either static (DHCP reservation) or dynamic (DHCP lease). Possible values are reservation and lease","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The configuration last modification date.","description_kind":"plain","computed":true},"wait_for_dhcp":{"type":"bool","description":"Wait the the mac address in dhcp entries","description_kind":"plain","optional":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_ip":{"version":0,"block":{"attributes":{"address":{"type":"string","description":"the IP itself","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"The date and time of the creation of the public gateway IP","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"ip_id":{"type":"string","description":"The ID of the IP","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","computed":true},"reverse":{"type":"string","description":"reverse domain name for the IP address","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags associated with public gateway IP","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the public gateway IP","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_vpc_public_gateway_pat_rule":{"version":0,"block":{"attributes":{"created_at":{"type":"string","description":"The date and time of the creation of the PAT rule","description_kind":"plain","computed":true},"gateway_id":{"type":"string","description":"The ID of the gateway this PAT rule is applied to","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"pat_rule_id":{"type":"string","description":"The ID of the public gateway PAT rule","description_kind":"plain","required":true},"private_ip":{"type":"string","description":"The private IP used in the PAT rule","description_kind":"plain","computed":true},"private_port":{"type":"number","description":"The private port used in the PAT rule","description_kind":"plain","computed":true},"protocol":{"type":"string","description":"The protocol used in the PAT rule","description_kind":"plain","computed":true},"public_port":{"type":"number","description":"The public port used in the PAT rule","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"The date and time of the last update of the PAT rule","description_kind":"plain","computed":true},"zone":{"type":"string","description":"The zone you want to attach the resource to","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_vpcs":{"version":0,"block":{"attributes":{"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"VPCs with a name like it are listed.","description_kind":"plain","optional":true},"organization_id":{"type":"string","description":"The organization_id you want to attach the resource to","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project_id you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true},"tags":{"type":["list","string"],"description":"VPCs with these exact tags are listed.","description_kind":"plain","optional":true},"vpcs":{"type":["list",["object",{"created_at":"string","id":"string","is_default":"bool","name":"string","organization_id":"string","project_id":"string","region":"string","tags":["list","string"],"update_at":"string"}]],"description_kind":"plain","computed":true}},"description_kind":"plain"}},"scaleway_webhosting":{"version":0,"block":{"attributes":{"cpanel_urls":{"type":["list",["object",{"dashboard":"string","webmail":"string"}]],"description":"URL to connect to cPanel Dashboard and to Webmail interface","description_kind":"plain","computed":true},"created_at":{"type":"string","description":"Date and time of hosting's creation (RFC 3339 format)","description_kind":"plain","computed":true},"dns_status":{"type":"string","description":"DNS status of the hosting","description_kind":"plain","computed":true},"domain":{"type":"string","description":"The domain name of the hosting","description_kind":"plain","optional":true},"email":{"type":"string","description":"Contact email of the client for the hosting","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"offer_id":{"type":"string","description":"The ID of the selected offer for the hosting","description_kind":"plain","computed":true},"offer_name":{"type":"string","description":"Name of the active offer","description_kind":"plain","computed":true},"option_ids":{"type":["list","string"],"description":"IDs of the selected options for the hosting","description_kind":"plain","computed":true},"options":{"type":["list",["object",{"id":"string","name":"string"}]],"description":"Active options of the hosting","description_kind":"plain","computed":true},"organization_id":{"type":"string","description":"ID of organization the resource is associated to.","description_kind":"plain","optional":true,"computed":true},"platform_hostname":{"type":"string","description":"Hostname of the host platform","description_kind":"plain","computed":true},"platform_number":{"type":"number","description":"Number of the host platform","description_kind":"plain","computed":true},"project_id":{"type":"string","description":"The project ID the resource is associated to","description_kind":"plain","optional":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","computed":true},"status":{"type":"string","description":"The hosting status","description_kind":"plain","computed":true},"tags":{"type":["list","string"],"description":"The tags of the hosting","description_kind":"plain","computed":true},"updated_at":{"type":"string","description":"Date and time of hosting's last update (RFC 3339 format)","description_kind":"plain","computed":true},"username":{"type":"string","description":"Main hosting cPanel username","description_kind":"plain","computed":true},"webhosting_id":{"type":"string","description":"The ID of the Webhosting","description_kind":"plain","optional":true}},"description_kind":"plain"}},"scaleway_webhosting_offer":{"version":0,"block":{"attributes":{"billing_operation_path":{"type":"string","description_kind":"plain","computed":true},"id":{"type":"string","description_kind":"plain","optional":true,"computed":true},"name":{"type":"string","description":"Exact name of the desired offer","description_kind":"plain","optional":true},"offer_id":{"type":"string","description":"ID of the desired offer","description_kind":"plain","optional":true},"price":{"type":"string","description_kind":"plain","computed":true},"product":{"type":["list",["object",{"databases_quota":"number","email_accounts_quota":"number","email_storage_quota":"number","hosting_storage_quota":"number","name":"string","option":"bool","ram":"number","support_included":"bool","v_cpu":"number"}]],"description_kind":"plain","computed":true},"region":{"type":"string","description":"The region you want to attach the resource to","description_kind":"plain","optional":true,"computed":true}},"description_kind":"plain"}}}}}} diff --git a/examples-generated/container/container.yaml b/examples-generated/container/container.yaml index 421558d..54cfea2 100644 --- a/examples-generated/container/container.yaml +++ b/examples-generated/container/container.yaml @@ -23,7 +23,7 @@ spec: testing.upbound.io/example-name: main port: 9997 privacy: private - protocol: h2c + protocol: http1 registryImage: ${scaleway_container_namespace.main.registry_endpoint}/alpine:test secretEnvironmentVariablesSecretRef: key: example-key diff --git a/examples-generated/k8s/cluster.yaml b/examples-generated/k8s/cluster.yaml index 8fe2e4e..52aae0f 100644 --- a/examples-generated/k8s/cluster.yaml +++ b/examples-generated/k8s/cluster.yaml @@ -11,6 +11,9 @@ spec: cni: cilium deleteAdditionalResources: false name: jack + privateNetworkIdSelector: + matchLabels: + testing.upbound.io/example-name: hedy version: 1.24.3 --- @@ -31,3 +34,16 @@ spec: name: john nodeType: DEV1-M size: 1 + +--- + +apiVersion: vpc.scaleway.upbound.io/v1alpha1 +kind: PrivateNetwork +metadata: + annotations: + meta.upbound.io/example-id: k8s/v1alpha1/cluster + labels: + testing.upbound.io/example-name: hedy + name: hedy +spec: + forProvider: {} diff --git a/examples-generated/mnq/credential.yaml b/examples-generated/mnq/credential.yaml deleted file mode 100644 index 7023ff3..0000000 --- a/examples-generated/mnq/credential.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: mnq.scaleway.upbound.io/v1alpha1 -kind: Credential -metadata: - annotations: - meta.upbound.io/example-id: mnq/v1alpha1/credential - labels: - testing.upbound.io/example-name: main - name: main -spec: - forProvider: - name: creed-ns - namespaceIdSelector: - matchLabels: - testing.upbound.io/example-name: main - ---- - -apiVersion: mnq.scaleway.upbound.io/v1alpha1 -kind: MNQNamespace -metadata: - annotations: - meta.upbound.io/example-id: mnq/v1alpha1/credential - labels: - testing.upbound.io/example-name: main - name: main -spec: - forProvider: - name: mnq-ns - protocol: nats diff --git a/examples-generated/mnq/mnqnamespace.yaml b/examples-generated/mnq/mnqnamespace.yaml deleted file mode 100644 index a9be33a..0000000 --- a/examples-generated/mnq/mnqnamespace.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: mnq.scaleway.upbound.io/v1alpha1 -kind: MNQNamespace -metadata: - annotations: - meta.upbound.io/example-id: mnq/v1alpha1/mnqnamespace - labels: - testing.upbound.io/example-name: main - name: main -spec: - forProvider: - name: mnq-ns - protocol: nats - region: fr-par diff --git a/examples-generated/object/policy.yaml b/examples-generated/object/policy.yaml index 3a9ba7e..b4f03ef 100644 --- a/examples-generated/object/policy.yaml +++ b/examples-generated/object/policy.yaml @@ -8,8 +8,43 @@ metadata: name: policy spec: forProvider: - bucket: some-unique-name - policy: some-unique-name + bucket: ${scaleway_object_bucket.bucket.id} + policy: |- + ${jsonencode( + { + Version = "2023-04-17", + Id = "MyBucketPolicy", + Statement = [ + { + Sid = "Delegate access", + Effect = "Allow", + Principal = { + SCW = "application_id:${scaleway_iam_application.main.id}" + }, + Action = "s3:ListBucket", + Resource = [ + "${scaleway_object_bucket.bucket.name}", + "${scaleway_object_bucket.bucket.name}/*" + ] + } + ] + } + )} + +--- + +apiVersion: iam.scaleway.upbound.io/v1alpha1 +kind: Application +metadata: + annotations: + meta.upbound.io/example-id: object/v1alpha1/policy + labels: + testing.upbound.io/example-name: main + name: main +spec: + forProvider: + description: a description + name: My application --- diff --git a/examples-generated/vpc/gatewaynetwork.yaml b/examples-generated/vpc/gatewaynetwork.yaml index b562504..5aa62a0 100644 --- a/examples-generated/vpc/gatewaynetwork.yaml +++ b/examples-generated/vpc/gatewaynetwork.yaml @@ -8,14 +8,12 @@ metadata: name: main spec: forProvider: - cleanupDhcp: true - dhcpIdSelector: - matchLabels: - testing.upbound.io/example-name: dhcp01 enableMasquerade: true gatewayIdSelector: matchLabels: testing.upbound.io/example-name: pg01 + ipamConfig: + - pushDefaultRoute: true privateNetworkIdSelector: matchLabels: testing.upbound.io/example-name: pn01 @@ -23,59 +21,47 @@ spec: --- apiVersion: vpc.scaleway.upbound.io/v1alpha1 -kind: PrivateNetwork +kind: VPC metadata: annotations: meta.upbound.io/example-id: vpc/v1alpha1/gatewaynetwork labels: - testing.upbound.io/example-name: pn01 - name: pn01 + testing.upbound.io/example-name: vpc01 + name: vpc01 spec: forProvider: - name: pn_test_network + name: my vpc --- apiVersion: vpc.scaleway.upbound.io/v1alpha1 -kind: PublicGateway +kind: PrivateNetwork metadata: annotations: meta.upbound.io/example-id: vpc/v1alpha1/gatewaynetwork labels: - testing.upbound.io/example-name: pg01 - name: pg01 + testing.upbound.io/example-name: pn01 + name: pn01 spec: forProvider: - ipIdSelector: + ipv4Subnet: + - subnet: 172.16.64.0/22 + name: pn_test_network + vpcIdSelector: matchLabels: - testing.upbound.io/example-name: gw01 - name: foobar - type: VPC-GW-S + testing.upbound.io/example-name: vpc01 --- apiVersion: vpc.scaleway.upbound.io/v1alpha1 -kind: PublicGatewayDHCP +kind: PublicGateway metadata: annotations: meta.upbound.io/example-id: vpc/v1alpha1/gatewaynetwork labels: - testing.upbound.io/example-name: dhcp01 - name: dhcp01 + testing.upbound.io/example-name: pg01 + name: pg01 spec: forProvider: - pushDefaultRoute: true - subnet: 192.168.1.0/24 - ---- - -apiVersion: vpc.scaleway.upbound.io/v1alpha1 -kind: PublicGatewayIP -metadata: - annotations: - meta.upbound.io/example-id: vpc/v1alpha1/gatewaynetwork - labels: - testing.upbound.io/example-name: gw01 - name: gw01 -spec: - forProvider: {} + name: foobar + type: VPC-GW-S diff --git a/internal/controller/mnq/credential/zz_controller.go b/internal/controller/mnq/credential/zz_controller.go deleted file mode 100755 index 82f2925..0000000 --- a/internal/controller/mnq/credential/zz_controller.go +++ /dev/null @@ -1,62 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package credential - -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/controller/handler" - "github.com/upbound/upjet/pkg/terraform" - ctrl "sigs.k8s.io/controller-runtime" - - v1alpha1 "github.com/scaleway/provider-scaleway/apis/mnq/v1alpha1" - features "github.com/scaleway/provider-scaleway/internal/features" -) - -// Setup adds a controller that reconciles Credential managed resources. -func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.Credential_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, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) - } - eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.Credential_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Credential_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) - opts := []managed.ReconcilerOption{ - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["scaleway_mnq_credential"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), - tjcontroller.WithCallbackProvider(ac), - )), - 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), - } - if o.PollJitter != 0 { - opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) - } - if o.Features.Enabled(features.EnableAlphaManagementPolicies) { - opts = append(opts, managed.WithManagementPolicies()) - } - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Credential_GroupVersionKind), opts...) - - return ctrl.NewControllerManagedBy(mgr). - Named(name). - WithOptions(o.ForControllerRuntime()). - WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.Credential{}, eventHandler). - Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) -} diff --git a/internal/controller/mnq/mnqnamespace/zz_controller.go b/internal/controller/mnq/mnqnamespace/zz_controller.go deleted file mode 100755 index 56cafde..0000000 --- a/internal/controller/mnq/mnqnamespace/zz_controller.go +++ /dev/null @@ -1,62 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by upjet. DO NOT EDIT. - -package mnqnamespace - -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/controller/handler" - "github.com/upbound/upjet/pkg/terraform" - ctrl "sigs.k8s.io/controller-runtime" - - v1alpha1 "github.com/scaleway/provider-scaleway/apis/mnq/v1alpha1" - features "github.com/scaleway/provider-scaleway/internal/features" -) - -// Setup adds a controller that reconciles MNQNamespace managed resources. -func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.MNQNamespace_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, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) - } - eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.MNQNamespace_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.MNQNamespace_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) - opts := []managed.ReconcilerOption{ - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["scaleway_mnq_namespace"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), - tjcontroller.WithCallbackProvider(ac), - )), - 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), - } - if o.PollJitter != 0 { - opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) - } - if o.Features.Enabled(features.EnableAlphaManagementPolicies) { - opts = append(opts, managed.WithManagementPolicies()) - } - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.MNQNamespace_GroupVersionKind), opts...) - - return ctrl.NewControllerManagedBy(mgr). - Named(name). - WithOptions(o.ForControllerRuntime()). - WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.MNQNamespace{}, eventHandler). - Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) -} diff --git a/internal/controller/zz_setup.go b/internal/controller/zz_setup.go index 5cb04be..2c6bf36 100755 --- a/internal/controller/zz_setup.go +++ b/internal/controller/zz_setup.go @@ -55,8 +55,6 @@ import ( iplb "github.com/scaleway/provider-scaleway/internal/controller/lb/ip" lb "github.com/scaleway/provider-scaleway/internal/controller/lb/lb" routelb "github.com/scaleway/provider-scaleway/internal/controller/lb/route" - credential "github.com/scaleway/provider-scaleway/internal/controller/mnq/credential" - mnqnamespace "github.com/scaleway/provider-scaleway/internal/controller/mnq/mnqnamespace" acl "github.com/scaleway/provider-scaleway/internal/controller/object/acl" bucket "github.com/scaleway/provider-scaleway/internal/controller/object/bucket" lockconfiguration "github.com/scaleway/provider-scaleway/internal/controller/object/lockconfiguration" @@ -80,6 +78,7 @@ import ( publicgatewaydhcp "github.com/scaleway/provider-scaleway/internal/controller/vpc/publicgatewaydhcp" publicgatewayip "github.com/scaleway/provider-scaleway/internal/controller/vpc/publicgatewayip" publicgatewaypatrule "github.com/scaleway/provider-scaleway/internal/controller/vpc/publicgatewaypatrule" + vpc "github.com/scaleway/provider-scaleway/internal/controller/vpc/vpc" ) // Setup creates all controllers with the supplied logger and adds them to @@ -132,8 +131,6 @@ func Setup(mgr ctrl.Manager, o controller.Options) error { iplb.Setup, lb.Setup, routelb.Setup, - credential.Setup, - mnqnamespace.Setup, acl.Setup, bucket.Setup, lockconfiguration.Setup, @@ -157,6 +154,7 @@ func Setup(mgr ctrl.Manager, o controller.Options) error { publicgatewaydhcp.Setup, publicgatewayip.Setup, publicgatewaypatrule.Setup, + vpc.Setup, } { if err := setup(mgr, o); err != nil { return err diff --git a/package/crds/cockpit.scaleway.upbound.io_cockpits.yaml b/package/crds/cockpit.scaleway.upbound.io_cockpits.yaml index d6e94ae..52141b7 100644 --- a/package/crds/cockpit.scaleway.upbound.io_cockpits.yaml +++ b/package/crds/cockpit.scaleway.upbound.io_cockpits.yaml @@ -334,20 +334,23 @@ spec: atProvider: properties: endpoints: - description: Endpoints Endpoints + description: Endpoints. Endpoints items: properties: alertmanagerUrl: - description: The alertmanager URL + description: The alertmanager URL. type: string grafanaUrl: - description: The grafana URL + description: The grafana URL. type: string logsUrl: - description: The logs URL + description: The logs URL. type: string metricsUrl: - description: The metrics URL + description: The metrics URL. + type: string + tracesUrl: + description: The traces URL. type: string type: object type: array @@ -358,7 +361,7 @@ spec: plan type: string planId: - description: The ID of the current plan The plan ID of the cockpit + description: The ID of the current plan. The plan ID of the cockpit type: string projectId: description: (Defaults to provider project_id) The ID of the project diff --git a/package/crds/cockpit.scaleway.upbound.io_tokens.yaml b/package/crds/cockpit.scaleway.upbound.io_tokens.yaml index 57932f6..4453c24 100644 --- a/package/crds/cockpit.scaleway.upbound.io_tokens.yaml +++ b/package/crds/cockpit.scaleway.upbound.io_tokens.yaml @@ -67,7 +67,7 @@ spec: forProvider: properties: name: - description: The name of the token The name of the token + description: The name of the token. The name of the token type: string projectId: description: (Defaults to provider project_id) The ID of the project @@ -148,31 +148,37 @@ spec: type: object type: object scopes: - description: Allowed scopes Endpoints + description: Allowed scopes. Endpoints items: properties: queryLogs: - description: (Defaults to false) Query logs Query logs + description: (Defaults to false) Query logs. Query logs type: boolean queryMetrics: - description: (Defaults to false) Query metrics Query metrics + description: (Defaults to false) Query metrics. Query metrics + type: boolean + queryTraces: + description: (Defaults to false) Query traces. Query traces type: boolean setupAlerts: - description: (Defaults to false) Setup alerts Setup alerts + description: (Defaults to false) Setup alerts. Setup alerts type: boolean setupLogsRules: - description: (Defaults to false) Setup logs rules Setup + description: (Defaults to false) Setup logs rules. Setup logs rules type: boolean setupMetricsRules: - description: (Defaults to false) Setup metrics rules Setup + description: (Defaults to false) Setup metrics rules. Setup metrics rules type: boolean writeLogs: - description: (Defaults to true) Write logs Write logs + description: (Defaults to true) Write logs. Write logs type: boolean writeMetrics: - description: (Defaults to true) Write metrics Write metrics + description: (Defaults to true) Write metrics. Write metrics + type: boolean + writeTraces: + description: (Defaults to false) Write traces. Write traces type: boolean type: object type: array @@ -191,34 +197,40 @@ spec: them, like an autoscaler. properties: name: - description: The name of the token The name of the token + description: The name of the token. The name of the token type: string scopes: - description: Allowed scopes Endpoints + description: Allowed scopes. Endpoints items: properties: queryLogs: - description: (Defaults to false) Query logs Query logs + description: (Defaults to false) Query logs. Query logs type: boolean queryMetrics: - description: (Defaults to false) Query metrics Query metrics + description: (Defaults to false) Query metrics. Query metrics + type: boolean + queryTraces: + description: (Defaults to false) Query traces. Query traces type: boolean setupAlerts: - description: (Defaults to false) Setup alerts Setup alerts + description: (Defaults to false) Setup alerts. Setup alerts type: boolean setupLogsRules: - description: (Defaults to false) Setup logs rules Setup + description: (Defaults to false) Setup logs rules. Setup logs rules type: boolean setupMetricsRules: - description: (Defaults to false) Setup metrics rules Setup + description: (Defaults to false) Setup metrics rules. Setup metrics rules type: boolean writeLogs: - description: (Defaults to true) Write logs Write logs + description: (Defaults to true) Write logs. Write logs type: boolean writeMetrics: - description: (Defaults to true) Write metrics Write metrics + description: (Defaults to true) Write metrics. Write metrics + type: boolean + writeTraces: + description: (Defaults to false) Write traces. Write traces type: boolean type: object type: array @@ -397,7 +409,7 @@ spec: id: type: string name: - description: The name of the token The name of the token + description: The name of the token. The name of the token type: string projectId: description: (Defaults to provider project_id) The ID of the project @@ -405,31 +417,37 @@ spec: the resource to type: string scopes: - description: Allowed scopes Endpoints + description: Allowed scopes. Endpoints items: properties: queryLogs: - description: (Defaults to false) Query logs Query logs + description: (Defaults to false) Query logs. Query logs type: boolean queryMetrics: - description: (Defaults to false) Query metrics Query metrics + description: (Defaults to false) Query metrics. Query metrics + type: boolean + queryTraces: + description: (Defaults to false) Query traces. Query traces type: boolean setupAlerts: - description: (Defaults to false) Setup alerts Setup alerts + description: (Defaults to false) Setup alerts. Setup alerts type: boolean setupLogsRules: - description: (Defaults to false) Setup logs rules Setup + description: (Defaults to false) Setup logs rules. Setup logs rules type: boolean setupMetricsRules: - description: (Defaults to false) Setup metrics rules Setup + description: (Defaults to false) Setup metrics rules. Setup metrics rules type: boolean writeLogs: - description: (Defaults to true) Write logs Write logs + description: (Defaults to true) Write logs. Write logs type: boolean writeMetrics: - description: (Defaults to true) Write metrics Write metrics + description: (Defaults to true) Write metrics. Write metrics + type: boolean + writeTraces: + description: (Defaults to false) Write traces. Write traces type: boolean type: object type: array diff --git a/package/crds/domain.scaleway.upbound.io_records.yaml b/package/crds/domain.scaleway.upbound.io_records.yaml index 4fa2451..1175801 100644 --- a/package/crds/domain.scaleway.upbound.io_records.yaml +++ b/package/crds/domain.scaleway.upbound.io_records.yaml @@ -205,8 +205,8 @@ spec: type: string strategy: description: Strategy to return an IP from the IPs list. - Can be random or hashed Strategy to return an IP from - the IPs list + Can be random, hashed or all Strategy to return an IP + from the IPs list type: string url: description: URL to match the must_contain text to validate @@ -353,8 +353,8 @@ spec: type: string strategy: description: Strategy to return an IP from the IPs list. - Can be random or hashed Strategy to return an IP from - the IPs list + Can be random, hashed or all Strategy to return an IP + from the IPs list type: string url: description: URL to match the must_contain text to validate @@ -668,8 +668,8 @@ spec: type: string strategy: description: Strategy to return an IP from the IPs list. - Can be random or hashed Strategy to return an IP from - the IPs list + Can be random, hashed or all Strategy to return an IP + from the IPs list type: string url: description: URL to match the must_contain text to validate diff --git a/package/crds/iam.scaleway.upbound.io_applications.yaml b/package/crds/iam.scaleway.upbound.io_applications.yaml index 95325b0..295b318 100644 --- a/package/crds/iam.scaleway.upbound.io_applications.yaml +++ b/package/crds/iam.scaleway.upbound.io_applications.yaml @@ -71,7 +71,7 @@ spec: of the iam application type: string name: - description: .The name of the iam application. The name of the + description: The name of the iam application. The name of the iam application type: string organizationId: @@ -79,6 +79,12 @@ spec: the organization the application is associated with. ID of organization the resource is associated to. type: string + tags: + description: The tags associated with the application. The tags + associated with the application + items: + type: string + type: array type: object initProvider: description: THIS IS AN ALPHA FIELD. Do not use it in production. @@ -98,7 +104,7 @@ spec: of the iam application type: string name: - description: .The name of the iam application. The name of the + description: The name of the iam application. The name of the iam application type: string organizationId: @@ -106,6 +112,12 @@ spec: the organization the application is associated with. ID of organization the resource is associated to. type: string + tags: + description: The tags associated with the application. The tags + associated with the application + items: + type: string + type: array type: object managementPolicies: default: @@ -289,7 +301,7 @@ spec: description: The ID of the application. type: string name: - description: .The name of the iam application. The name of the + description: The name of the iam application. The name of the iam application type: string organizationId: @@ -297,6 +309,12 @@ spec: the organization the application is associated with. ID of organization the resource is associated to. type: string + tags: + description: The tags associated with the application. The tags + associated with the application + items: + type: string + type: array updatedAt: description: The date and time of the last update of the application. The date and time of the last update of the application diff --git a/package/crds/iam.scaleway.upbound.io_groups.yaml b/package/crds/iam.scaleway.upbound.io_groups.yaml index 4abf09e..ec9de45 100644 --- a/package/crds/iam.scaleway.upbound.io_groups.yaml +++ b/package/crds/iam.scaleway.upbound.io_groups.yaml @@ -166,6 +166,12 @@ spec: the organization the group is associated with. ID of organization the resource is associated to. type: string + tags: + description: The tags associated with the group. The tags associated + with the application + items: + type: string + type: array userIds: description: The list of IDs of the users attached to the group. List of IDs of the users attached to the group @@ -204,6 +210,12 @@ spec: the organization the group is associated with. ID of organization the resource is associated to. type: string + tags: + description: The tags associated with the group. The tags associated + with the application + items: + type: string + type: array userIds: description: The list of IDs of the users attached to the group. List of IDs of the users attached to the group @@ -406,6 +418,12 @@ spec: the organization the group is associated with. ID of organization the resource is associated to. type: string + tags: + description: The tags associated with the group. The tags associated + with the application + items: + type: string + type: array updatedAt: description: The date and time of the last update of the group type: string diff --git a/package/crds/iam.scaleway.upbound.io_policies.yaml b/package/crds/iam.scaleway.upbound.io_policies.yaml index 415daec..0465a28 100644 --- a/package/crds/iam.scaleway.upbound.io_policies.yaml +++ b/package/crds/iam.scaleway.upbound.io_policies.yaml @@ -225,8 +225,7 @@ spec: type: object type: object name: - description: .The name of the iam policy. The name of the iam - policy + description: The name of the iam policy. The name of the iam policy type: string noPrincipal: description: If the policy doesn't apply to a principal. Deactivate @@ -263,6 +262,12 @@ spec: type: array type: object type: array + tags: + description: The tags associated with the iam policy. The tags + associated with the policy + items: + type: string + type: array userId: description: ID of the User the policy will be linked to User id @@ -286,8 +291,7 @@ spec: of the iam policy type: string name: - description: .The name of the iam policy. The name of the iam - policy + description: The name of the iam policy. The name of the iam policy type: string noPrincipal: description: If the policy doesn't apply to a principal. Deactivate @@ -324,6 +328,12 @@ spec: type: array type: object type: array + tags: + description: The tags associated with the iam policy. The tags + associated with the policy + items: + type: string + type: array userId: description: ID of the User the policy will be linked to User id @@ -524,8 +534,7 @@ spec: description: The ID of the policy. type: string name: - description: .The name of the iam policy. The name of the iam - policy + description: The name of the iam policy. The name of the iam policy type: string noPrincipal: description: If the policy doesn't apply to a principal. Deactivate @@ -562,6 +571,12 @@ spec: type: array type: object type: array + tags: + description: The tags associated with the iam policy. The tags + associated with the policy + items: + type: string + type: array updatedAt: description: The date and time of the last update of the policy. The date and time of the last update of the policy diff --git a/package/crds/instance.scaleway.upbound.io_volumes.yaml b/package/crds/instance.scaleway.upbound.io_volumes.yaml index b323894..6085402 100644 --- a/package/crds/instance.scaleway.upbound.io_volumes.yaml +++ b/package/crds/instance.scaleway.upbound.io_volumes.yaml @@ -68,13 +68,8 @@ spec: properties: fromSnapshotId: description: If set, the new volume will be created from this - snapshot. Only one of size_in_gb, from_volume_id and from_snapshot_id - should be specified. Create a volume based on a image - type: string - fromVolumeId: - description: If set, the new volume will be copied from this volume. - Only one of size_in_gb, from_volume_id and from_snapshot_id - should be specified. Create a copy of an existing volume + snapshot. Only one of size_in_gb and from_snapshot_id should + be specified. Create a volume based on a image type: string name: description: The name of the volume. If not provided it will be @@ -86,8 +81,8 @@ spec: the resource to type: string sizeInGb: - description: The size of the volume. Only one of size_in_gb, from_volume_id - and from_snapshot_id should be specified. The size of the volume + description: The size of the volume. Only one of size_in_gb and + from_snapshot_id should be specified. The size of the volume in gigabyte type: number tags: @@ -122,13 +117,8 @@ spec: properties: fromSnapshotId: description: If set, the new volume will be created from this - snapshot. Only one of size_in_gb, from_volume_id and from_snapshot_id - should be specified. Create a volume based on a image - type: string - fromVolumeId: - description: If set, the new volume will be copied from this volume. - Only one of size_in_gb, from_volume_id and from_snapshot_id - should be specified. Create a copy of an existing volume + snapshot. Only one of size_in_gb and from_snapshot_id should + be specified. Create a volume based on a image type: string name: description: The name of the volume. If not provided it will be @@ -140,8 +130,8 @@ spec: the resource to type: string sizeInGb: - description: The size of the volume. Only one of size_in_gb, from_volume_id - and from_snapshot_id should be specified. The size of the volume + description: The size of the volume. Only one of size_in_gb and + from_snapshot_id should be specified. The size of the volume in gigabyte type: number tags: @@ -334,13 +324,8 @@ spec: properties: fromSnapshotId: description: If set, the new volume will be created from this - snapshot. Only one of size_in_gb, from_volume_id and from_snapshot_id - should be specified. Create a volume based on a image - type: string - fromVolumeId: - description: If set, the new volume will be copied from this volume. - Only one of size_in_gb, from_volume_id and from_snapshot_id - should be specified. Create a copy of an existing volume + snapshot. Only one of size_in_gb and from_snapshot_id should + be specified. Create a volume based on a image type: string id: description: The ID of the volume. @@ -363,8 +348,8 @@ spec: with this volume type: string sizeInGb: - description: The size of the volume. Only one of size_in_gb, from_volume_id - and from_snapshot_id should be specified. The size of the volume + description: The size of the volume. Only one of size_in_gb and + from_snapshot_id should be specified. The size of the volume in gigabyte type: number tags: diff --git a/package/crds/k8s.scaleway.upbound.io_clusters.yaml b/package/crds/k8s.scaleway.upbound.io_clusters.yaml index af7583b..6173e3d 100644 --- a/package/crds/k8s.scaleway.upbound.io_clusters.yaml +++ b/package/crds/k8s.scaleway.upbound.io_clusters.yaml @@ -244,6 +244,81 @@ spec: description: The ID of the private network of the cluster. The ID of the cluster's private network type: string + privateNetworkIdRef: + description: Reference to a PrivateNetwork in vpc to populate + privateNetworkId. + 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 + privateNetworkIdSelector: + description: Selector for a PrivateNetwork in vpc to populate + privateNetworkId. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + 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 + type: object projectId: description: (Defaults to provider project_id) The ID of the project the cluster is associated with. The project_id you want to attach @@ -456,10 +531,6 @@ spec: type: string type: object type: array - privateNetworkId: - description: The ID of the private network of the cluster. The - ID of the cluster's private network - type: string projectId: description: (Defaults to provider project_id) The ID of the project the cluster is associated with. The project_id you want to attach diff --git a/package/crds/k8s.scaleway.upbound.io_pools.yaml b/package/crds/k8s.scaleway.upbound.io_pools.yaml index 07860cb..7f0752f 100644 --- a/package/crds/k8s.scaleway.upbound.io_pools.yaml +++ b/package/crds/k8s.scaleway.upbound.io_pools.yaml @@ -188,6 +188,13 @@ spec: attached to. ~> Important: Updates to this field will recreate a new resource. ID of the placement group' type: string + publicIpDisabled: + description: '(Defaults to false) Defines if the public IP should + be removed from Nodes. To use this feature, your Cluster must + have an attached Private Network set up with a Public Gateway. + ~> Important: Updates to this field will recreate a new resource. + Defines if the public IP should be removed from the nodes.' + type: boolean region: description: (Defaults to provider region) The region in which the pool should be created. The region you want to attach the @@ -229,8 +236,8 @@ spec: type: object type: array waitForPoolReady: - description: (Default to false) Whether to wait for the pool to - be ready. Whether to wait for the pool to be ready + description: (Defaults to false) Whether to wait for the pool + to be ready. Whether to wait for the pool to be ready type: boolean zone: description: '(Defaults to provider zone) The zone in which the @@ -296,6 +303,13 @@ spec: attached to. ~> Important: Updates to this field will recreate a new resource. ID of the placement group' type: string + publicIpDisabled: + description: '(Defaults to false) Defines if the public IP should + be removed from Nodes. To use this feature, your Cluster must + have an attached Private Network set up with a Public Gateway. + ~> Important: Updates to this field will recreate a new resource. + Defines if the public IP should be removed from the nodes.' + type: boolean region: description: (Defaults to provider region) The region in which the pool should be created. The region you want to attach the @@ -337,8 +351,8 @@ spec: type: object type: array waitForPoolReady: - description: (Default to false) Whether to wait for the pool to - be ready. Whether to wait for the pool to be ready + description: (Defaults to false) Whether to wait for the pool + to be ready. Whether to wait for the pool to be ready type: boolean zone: description: '(Defaults to provider zone) The zone in which the @@ -604,6 +618,13 @@ spec: attached to. ~> Important: Updates to this field will recreate a new resource. ID of the placement group' type: string + publicIpDisabled: + description: '(Defaults to false) Defines if the public IP should + be removed from Nodes. To use this feature, your Cluster must + have an attached Private Network set up with a Public Gateway. + ~> Important: Updates to this field will recreate a new resource. + Defines if the public IP should be removed from the nodes.' + type: boolean region: description: (Defaults to provider region) The region in which the pool should be created. The region you want to attach the @@ -656,8 +677,8 @@ spec: the pool type: string waitForPoolReady: - description: (Default to false) Whether to wait for the pool to - be ready. Whether to wait for the pool to be ready + description: (Defaults to false) Whether to wait for the pool + to be ready. Whether to wait for the pool to be ready type: boolean zone: description: '(Defaults to provider zone) The zone in which the diff --git a/package/crds/lb.scaleway.upbound.io_lbs.yaml b/package/crds/lb.scaleway.upbound.io_lbs.yaml index 9cff0b3..9ad5169 100644 --- a/package/crds/lb.scaleway.upbound.io_lbs.yaml +++ b/package/crds/lb.scaleway.upbound.io_lbs.yaml @@ -66,6 +66,11 @@ spec: type: string forProvider: properties: + assignFlexibleIp: + description: Defines whether to automatically assign a flexible + public IP to the load-balancer. Defines whether to automatically + assign a flexible public IP to the load balancer + type: boolean description: description: The description of the load-balancer. The description of the lb @@ -197,7 +202,7 @@ spec: type: array type: description: The type of the load-balancer. Please check the migration - section to upgrade the type The type of load-balancer you want + section to upgrade the type. The type of load-balancer you want to create type: string zone: @@ -218,6 +223,11 @@ spec: creation, for example because of an external controller is managing them, like an autoscaler. properties: + assignFlexibleIp: + description: Defines whether to automatically assign a flexible + public IP to the load-balancer. Defines whether to automatically + assign a flexible public IP to the load balancer + type: boolean description: description: The description of the load-balancer. The description of the lb @@ -272,7 +282,7 @@ spec: type: array type: description: The type of the load-balancer. Please check the migration - section to upgrade the type The type of load-balancer you want + section to upgrade the type. The type of load-balancer you want to create type: string zone: @@ -451,6 +461,11 @@ spec: properties: atProvider: properties: + assignFlexibleIp: + description: Defines whether to automatically assign a flexible + public IP to the load-balancer. Defines whether to automatically + assign a flexible public IP to the load balancer + type: boolean description: description: The description of the load-balancer. The description of the lb @@ -530,7 +545,7 @@ spec: type: array type: description: The type of the load-balancer. Please check the migration - section to upgrade the type The type of load-balancer you want + section to upgrade the type. The type of load-balancer you want to create type: string zone: diff --git a/package/crds/mnq.scaleway.upbound.io_credentials.yaml b/package/crds/mnq.scaleway.upbound.io_credentials.yaml deleted file mode 100644 index 8ce1a50..0000000 --- a/package/crds/mnq.scaleway.upbound.io_credentials.yaml +++ /dev/null @@ -1,508 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: credentials.mnq.scaleway.upbound.io -spec: - group: mnq.scaleway.upbound.io - names: - categories: - - crossplane - - managed - - scaleway - kind: Credential - listKind: CredentialList - plural: credentials - singular: credential - 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: Credential is the Schema for the Credentials API. - 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: CredentialSpec defines the desired state of Credential - 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 ManagementPolicies 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: - name: - description: The credential name.. The name of the Credential - type: string - namespaceId: - description: The namespace containing the Credential. The ID of - the Namespace associated to - type: string - namespaceIdRef: - description: Reference to a MNQNamespace to populate namespaceId. - 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 - namespaceIdSelector: - description: Selector for a MNQNamespace to populate namespaceId. - properties: - matchControllerRef: - description: MatchControllerRef ensures an object with the - same controller reference as the selecting object is selected. - type: boolean - matchLabels: - additionalProperties: - type: string - description: MatchLabels ensures an object with matching labels - is selected. - type: object - policy: - description: Policies for selection. - 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 - type: object - natsCredentials: - description: Credentials file used to connect to the NATS service. - credential for NATS protocol - items: - type: object - type: array - region: - description: (Defaults to provider region). The region in which - the namespace should be created. The region you want to attach - the resource to - type: string - sqsSnsCredentials: - description: Credential used to connect to the SQS/SNS service. - The credential used to connect to the SQS/SNS service - items: - properties: - permissions: - description: List of permissions associated to this Credential. - Only one of permissions may be set. The permission associated - to this credential. - items: - properties: - canManage: - description: . Defines if user can manage the associated - resource(s). Allow manage the associated resource - type: boolean - canPublish: - description: . Defines if user can publish messages - to the service. Allow publish messages to the service - type: boolean - canReceive: - description: . Defines if user can receive messages - from the service. Allow receive messages from the - service - type: boolean - type: object - type: array - type: object - type: array - type: object - initProvider: - 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. InitProvider - holds the same fields as ForProvider, with the exception of Identifier - and other resource reference fields. The fields that are in InitProvider - are merged into ForProvider when the resource is created. The same - fields are also added to the terraform ignore_changes hook, to avoid - updating them after creation. This is useful for fields that are - required on creation, but we do not desire to update them after - creation, for example because of an external controller is managing - them, like an autoscaler. - properties: - name: - description: The credential name.. The name of the Credential - type: string - natsCredentials: - description: Credentials file used to connect to the NATS service. - credential for NATS protocol - items: - type: object - type: array - region: - description: (Defaults to provider region). The region in which - the namespace should be created. The region you want to attach - the resource to - type: string - sqsSnsCredentials: - description: Credential used to connect to the SQS/SNS service. - The credential used to connect to the SQS/SNS service - items: - properties: - permissions: - description: List of permissions associated to this Credential. - Only one of permissions may be set. The permission associated - to this credential. - items: - properties: - canManage: - description: . Defines if user can manage the associated - resource(s). Allow manage the associated resource - type: boolean - canPublish: - description: . Defines if user can publish messages - to the service. Allow publish messages to the service - type: boolean - canReceive: - description: . Defines if user can receive messages - from the service. Allow receive messages from the - service - type: boolean - type: object - type: array - type: object - type: array - type: object - managementPolicies: - default: - - '*' - 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. ManagementPolicies - specify the array of actions Crossplane is allowed to take on the - managed and external resources. 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. If both are custom, the DeletionPolicy - field will be ignored. See the design doc for more information: - https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' - items: - description: A ManagementAction represents an action that the Crossplane - controllers can take on an external resource. - enum: - - Observe - - Create - - Update - - Delete - - LateInitialize - - '*' - type: string - type: array - 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 - 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 - status: - description: CredentialStatus defines the observed state of Credential. - properties: - atProvider: - properties: - id: - description: The credential ID. - type: string - name: - description: The credential name.. The name of the Credential - type: string - namespaceId: - description: The namespace containing the Credential. The ID of - the Namespace associated to - type: string - natsCredentials: - description: Credentials file used to connect to the NATS service. - credential for NATS protocol - items: - type: object - type: array - protocol: - description: The protocol associated to the Credential. Possible - values are nats and sqs_sns. The Namespace protocol - type: string - region: - description: (Defaults to provider region). The region in which - the namespace should be created. The region you want to attach - the resource to - type: string - sqsSnsCredentials: - description: Credential used to connect to the SQS/SNS service. - The credential used to connect to the SQS/SNS service - items: - properties: - accessKey: - description: The ID of the key. The key of the credential - type: string - permissions: - description: List of permissions associated to this Credential. - Only one of permissions may be set. The permission associated - to this credential. - items: - properties: - canManage: - description: . Defines if user can manage the associated - resource(s). Allow manage the associated resource - type: boolean - canPublish: - description: . Defines if user can publish messages - to the service. Allow publish messages to the service - type: boolean - canReceive: - description: . Defines if user can receive messages - from the service. Allow receive messages from the - service - type: boolean - type: object - type: array - type: object - type: array - 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/mnq.scaleway.upbound.io_mnqnamespaces.yaml b/package/crds/mnq.scaleway.upbound.io_mnqnamespaces.yaml deleted file mode 100644 index c6da350..0000000 --- a/package/crds/mnq.scaleway.upbound.io_mnqnamespaces.yaml +++ /dev/null @@ -1,366 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: mnqnamespaces.mnq.scaleway.upbound.io -spec: - group: mnq.scaleway.upbound.io - names: - categories: - - crossplane - - managed - - scaleway - kind: MNQNamespace - listKind: MNQNamespaceList - plural: mnqnamespaces - singular: mnqnamespace - 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: MNQNamespace is the Schema for the MNQNamespaces API. - 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: MNQNamespaceSpec defines the desired state of MNQNamespace - 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 ManagementPolicies 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: - name: - description: The unique name of the namespace. The name of the - mnq namespace - type: string - projectId: - description: (Defaults to provider project_id) The ID of the project - the namespace is associated with. The project_id you want to - attach the resource to - type: string - protocol: - description: The protocol to apply on your namespace. Please check - our supported protocols. The Namespace protocol - type: string - region: - description: (Defaults to provider region). The region in which - the namespace should be created. The region you want to attach - the resource to - type: string - type: object - initProvider: - 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. InitProvider - holds the same fields as ForProvider, with the exception of Identifier - and other resource reference fields. The fields that are in InitProvider - are merged into ForProvider when the resource is created. The same - fields are also added to the terraform ignore_changes hook, to avoid - updating them after creation. This is useful for fields that are - required on creation, but we do not desire to update them after - creation, for example because of an external controller is managing - them, like an autoscaler. - properties: - name: - description: The unique name of the namespace. The name of the - mnq namespace - type: string - projectId: - description: (Defaults to provider project_id) The ID of the project - the namespace is associated with. The project_id you want to - attach the resource to - type: string - protocol: - description: The protocol to apply on your namespace. Please check - our supported protocols. The Namespace protocol - type: string - region: - description: (Defaults to provider region). The region in which - the namespace should be created. The region you want to attach - the resource to - type: string - type: object - managementPolicies: - default: - - '*' - 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. ManagementPolicies - specify the array of actions Crossplane is allowed to take on the - managed and external resources. 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. If both are custom, the DeletionPolicy - field will be ignored. See the design doc for more information: - https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 - and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' - items: - description: A ManagementAction represents an action that the Crossplane - controllers can take on an external resource. - enum: - - Observe - - Create - - Update - - Delete - - LateInitialize - - '*' - type: string - type: array - 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 - 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: spec.forProvider.protocol is a required parameter - rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies - || ''Update'' in self.managementPolicies) || has(self.forProvider.protocol) - || (has(self.initProvider) && has(self.initProvider.protocol))' - status: - description: MNQNamespaceStatus defines the observed state of MNQNamespace. - properties: - atProvider: - properties: - createdAt: - description: The date and time the Namespace was created. The - date and time of the creation of the mnq Namespace - type: string - endpoint: - description: The endpoint of the service matching the Namespace - protocol. The endpoint of the service matching the Namespace - protocol - type: string - id: - description: The ID of the namespace - type: string - name: - description: The unique name of the namespace. The name of the - mnq namespace - type: string - projectId: - description: (Defaults to provider project_id) The ID of the project - the namespace is associated with. The project_id you want to - attach the resource to - type: string - protocol: - description: The protocol to apply on your namespace. Please check - our supported protocols. The Namespace protocol - type: string - region: - description: (Defaults to provider region). The region in which - the namespace should be created. The region you want to attach - the resource to - type: string - updatedAt: - description: The date and time the Namespace was updated. The - date and time of the last update of the mnq Namespace - 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/object.scaleway.upbound.io_buckets.yaml b/package/crds/object.scaleway.upbound.io_buckets.yaml index a181ac6..15fafac 100644 --- a/package/crds/object.scaleway.upbound.io_buckets.yaml +++ b/package/crds/object.scaleway.upbound.io_buckets.yaml @@ -550,6 +550,9 @@ spec: description: '(Deprecated) The canned ACL you want to apply to the bucket. ACL of the bucket: either ''public-read'' or ''private''.' type: string + apiEndpoint: + description: The endpoint URL of the bucket API URL of the bucket + type: string corsRule: description: A rule of Cross-Origin Resource Sharing (documented below). diff --git a/package/crds/object.scaleway.upbound.io_policies.yaml b/package/crds/object.scaleway.upbound.io_policies.yaml index e7dc86e..6461031 100644 --- a/package/crds/object.scaleway.upbound.io_policies.yaml +++ b/package/crds/object.scaleway.upbound.io_policies.yaml @@ -67,7 +67,8 @@ spec: forProvider: properties: bucket: - description: The name of the bucket. The bucket name. + description: The name of the bucket. The bucket's name or regional + ID. type: string policy: description: The policy document. This is a JSON formatted string. @@ -97,7 +98,8 @@ spec: them, like an autoscaler. properties: bucket: - description: The name of the bucket. The bucket name. + description: The name of the bucket. The bucket's name or regional + ID. type: string policy: description: The policy document. This is a JSON formatted string. @@ -289,7 +291,8 @@ spec: atProvider: properties: bucket: - description: The name of the bucket. The bucket name. + description: The name of the bucket. The bucket's name or regional + ID. type: string id: description: The ID of the policy, which is the ID of the bucket. diff --git a/package/crds/rdb.scaleway.upbound.io_instances.yaml b/package/crds/rdb.scaleway.upbound.io_instances.yaml index 1b89c4f..5465154 100644 --- a/package/crds/rdb.scaleway.upbound.io_instances.yaml +++ b/package/crds/rdb.scaleway.upbound.io_instances.yaml @@ -83,6 +83,10 @@ spec: description: Disable automated backup for the database instance. Disable automated backup for the database instance type: boolean + disablePublicEndpoint: + description: Disable the default public endpoint Whether the instance + should have a public endpoint if it has a Private Network attached + type: boolean engine: description: Database Instance's engine version (e.g. PostgreSQL-11). Database's engine version id @@ -215,6 +219,10 @@ spec: description: Disable automated backup for the database instance. Disable automated backup for the database instance type: boolean + disablePublicEndpoint: + description: Disable the default public endpoint Whether the instance + should have a public endpoint if it has a Private Network attached + type: boolean engine: description: Database Instance's engine version (e.g. PostgreSQL-11). Database's engine version id @@ -495,6 +503,10 @@ spec: description: Disable automated backup for the database instance. Disable automated backup for the database instance type: boolean + disablePublicEndpoint: + description: Disable the default public endpoint Whether the instance + should have a public endpoint if it has a Private Network attached + type: boolean endpointIp: description: (Deprecated) The IP of the Database Instance. Endpoint IP of the database instance diff --git a/package/crds/rdb.scaleway.upbound.io_readreplicas.yaml b/package/crds/rdb.scaleway.upbound.io_readreplicas.yaml index ffa6b2d..7a42d01 100644 --- a/package/crds/rdb.scaleway.upbound.io_readreplicas.yaml +++ b/package/crds/rdb.scaleway.upbound.io_readreplicas.yaml @@ -174,6 +174,12 @@ spec: the Database read replica should be created. The region you want to attach the resource to type: string + sameZone: + description: (Defaults to false) Defines whether to create the + replica in the same availability zone as the main instance nodes + or not. Defines whether to create the replica in the same availability + zone as the main instance nodes or not. + type: boolean type: object initProvider: description: THIS IS AN ALPHA FIELD. Do not use it in production. @@ -219,6 +225,12 @@ spec: the Database read replica should be created. The region you want to attach the resource to type: string + sameZone: + description: (Defaults to false) Defines whether to create the + replica in the same availability zone as the main instance nodes + or not. Defines whether to create the replica in the same availability + zone as the main instance nodes or not. + type: boolean type: object managementPolicies: default: @@ -470,6 +482,12 @@ spec: the Database read replica should be created. The region you want to attach the resource to type: string + sameZone: + description: (Defaults to false) Defines whether to create the + replica in the same availability zone as the main instance nodes + or not. Defines whether to create the replica in the same availability + zone as the main instance nodes or not. + type: boolean type: object conditions: description: Conditions of the resource. diff --git a/package/crds/tem.scaleway.upbound.io_domains.yaml b/package/crds/tem.scaleway.upbound.io_domains.yaml index 17dda45..0680aab 100644 --- a/package/crds/tem.scaleway.upbound.io_domains.yaml +++ b/package/crds/tem.scaleway.upbound.io_domains.yaml @@ -323,6 +323,10 @@ spec: valid (RFC 3339 format). Date and time the domain was last found to be valid (RFC 3339 format) type: string + mxBlackhole: + description: The Scaleway's blackhole MX server to use if you + do not have one. The Scaleway's blackhole MX server to use + type: string name: description: 'The domain name, must not be used in another Transactional Email Domain. ~> Important: Updates to name will recreate the @@ -343,30 +347,58 @@ spec: the domain should be created. The region you want to attach the resource to type: string + reputation: + description: The domain's reputation. The domain's reputation + items: + properties: + previousScore: + description: The previously-calculated domain's reputation + score. + type: number + previousScoredAt: + description: The time and date the previous reputation score + was calculated. + type: string + score: + description: A range from 0 to 100 that determines your + domain's reputation score. + type: number + scoredAt: + description: The time and date the score was calculated. + type: string + status: + description: The status of the Transaction Email Domain. + type: string + type: object + type: array revokedAt: description: The date and time of the revocation of the domain (RFC 3339 format). Date and time of the revocation of the domain (RFC 3339 format) type: string smtpHost: - description: SMTP host to use to send emails + description: The SMTP host to use to send emails. SMTP host to + use to send emails type: string smtpPort: - description: SMTP port to use to send emails over TLS. (Port 587) + description: The SMTP port to use to send emails over TLS. SMTP + port to use to send emails over TLS. (Port 587) type: number smtpPortAlternative: - description: SMTP port to use to send emails over TLS. (Port 2587) + description: The SMTP port to use to send emails over TLS. SMTP + port to use to send emails over TLS. (Port 2587) type: number smtpPortUnsecure: - description: SMTP port to use to send emails. (Port 25) + description: The SMTP port to use to send emails. SMTP port to + use to send emails. (Port 25) type: number smtpsPort: - description: SMTPS port to use to send emails over TLS Wrapper. - (Port 465) + description: The SMTPS port to use to send emails over TLS Wrapper. + SMTPS port to use to send emails over TLS Wrapper. (Port 465) type: number smtpsPortAlternative: - description: SMTPS port to use to send emails over TLS Wrapper. - (Port 2465) + description: The SMTPS port to use to send emails over TLS Wrapper. + SMTPS port to use to send emails over TLS Wrapper. (Port 2465) type: number spfConfig: description: The snippet of the SPF record that should be registered From c89ef19010bcf1dce34c5f343bcccef1a5908a6d Mon Sep 17 00:00:00 2001 From: Yacine FODIL Date: Thu, 30 Nov 2023 15:27:10 +0100 Subject: [PATCH 4/4] cross reference private_network_id in cluster --- config/k8s/config.go | 4 ++++ examples/k8s/cluster.yaml | 23 ++++++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/config/k8s/config.go b/config/k8s/config.go index 2309f39..378b21c 100644 --- a/config/k8s/config.go +++ b/config/k8s/config.go @@ -10,6 +10,10 @@ func Configure(p *config.Provider) { r.ExternalName = config.IdentifierFromProvider r.ShortGroup = shortGroup r.Kind = "Cluster" + + r.References["private_network_id"] = config.Reference{ + Type: "github.com/scaleway/provider-scaleway/apis/vpc/v1alpha1.PrivateNetwork", + } }) p.AddResourceConfigurator("scaleway_k8s_pool", func(r *config.Resource) { diff --git a/examples/k8s/cluster.yaml b/examples/k8s/cluster.yaml index c10a972..dfeb6c2 100644 --- a/examples/k8s/cluster.yaml +++ b/examples/k8s/cluster.yaml @@ -1,13 +1,34 @@ #file: noinspection YAMLSchemaValidation +apiVersion: vpc.scaleway.upbound.io/v1alpha1 +kind: PrivateNetwork +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/cluster + labels: + testing.upbound.io/example-name: example + name: example +spec: + forProvider: + name: crossplane-private-network + providerConfigRef: + name: default +--- apiVersion: k8s.scaleway.upbound.io/v1alpha1 kind: Cluster metadata: - name: k8s-cluster + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/cluster + labels: + testing.upbound.io/example-name: example + name: example spec: forProvider: name: crossplane-k8s-cluster version: 1.24.7 cni: cilium deleteAdditionalResources: true + privateNetworkIdSelector: + matchLabels: + testing.upbound.io/example-name: example providerConfigRef: name: default